厨房MCP
Kitchen MCP是一个后端服务器,旨在将Gemini Pro等大型语言模型连接到厨房助手应用程序的“真相来源”。它使用 FastMCP 该框架公开了一组工具,允许人工智能与包含食谱、配料和成本信息的Supabase数据库进行交互。
这座桥使对话式人工智能能够准确回答问题,管理厨房库存,计算配方成本,并根据结构化的实时数据扩展生产计划。
特性
服务器公开了以下工具供AI使用:
check_connection:验证与Supabase数据库的连接。add_ingredient:将新配料添加到厨房目录中。update_ingredient_price:更新现有成分的成本。create_full_recipe:使用配料列表创建新配方。scale_recipe:计算多份食谱的总成分和成本。calculate_recipe_cost:计算单个配方的总生产成本。
设置
按照以下步骤使服务器在本地运行。
1.先决条件
- Python 3.13 或更新。
- 紫外线:此项目使用
uv用于包管理。您可以使用安装pip install uv. - Supabase凭据:您必须有权访问Supabase项目。服务器需要
SUPABASE_URL和一个SUPABASE_SERVICE_ROLE_KEY。请咨询您的项目管理员以获取这些信息。
2.安装
首先,将存储库克隆到本地计算机:
git clone https://github.com/javieroc/kitchen-mcp.git
cd kitchen-mcp创建虚拟环境并安装依赖项:
uv sync
source .venv/bin/activate3.配置
服务器是使用环境变量配置的。创建一个 .env 项目根目录中的文件:
touch .env将您的Supabase凭据添加到此文件。 不要将此文件提交到版本控制。
# .env
SUPABASE_URL="your-supabase-project-url"
SUPABASE_SERVICE_ROLE_KEY="your-supabase-service-role-key"运行服务器
此存储库现在有两个运行时:
- MCP服务器(
mcp_server/main.py)这暴露了Supabase工具。 - FastAPI服务器(
app/main.py)只有一个经过身份验证的POST /chat终点。
在单独的端口上运行它们:
# Terminal 1
uv run python mcp_server/main.py
# Terminal 2
PORT=8001 uv run uvicorn app.main:app --host 0.0.0.0 --port 8001所需的环境变量:
SUPABASE_URL="..."
SUPABASE_SERVICE_ROLE_KEY="..." # MCP server
SUPABASE_ANON_KEY="..." # FastAPI auth validation (preferred)
MCP_SERVER_URL="http://127.0.0.1:8000/mcp"
LLM_MODEL="gemini/gemini-2.5-flash" # default, provider/model via LiteLLM format
LLM_TEMPERATURE="0.2" # optional
GEMINI_API_KEY="..." # for Gemini models
OPENAI_API_KEY="..." # for OpenAI models
ANTHROPIC_API_KEY="..." # for Anthropic models健康终点:
- FastAPI:
GET /health - MCP服务器:
GET /health
对话端点(已验证):
POST /chats创建新的聊天线程GET /chats列出用户的聊天线程GET /chats/{chat_id}获取一个线程+完整的消息历史记录POST /chats/{chat_id}/messages添加用户消息,生成代理回复,并保持两者
铁路部署(2项服务)
从同一存储库部署两个Railway服务:
fastapi-api(公众)mcp-server(私人/内部)
服务1: mcp-server (仅限私人)
- 启动命令:
uv run fastmcp run mcp_server/main.py:mcp --transport http --host 0.0.0.0 --port $PORT --path /mcp- 必需的环境变量:
- SUPABASE_URL - SUPABASE_SERVICE_ROLE_KEY
- 不要为此服务公开公共域。
服务2: fastapi-api (公众)
- 启动命令:
uv run uvicorn app.main:app --host 0.0.0.0 --port $PORT- 必需的环境变量:
- SUPABASE_URL - SUPABASE_ANON_KEY - MCP_SERVER_URL 设置为MCP私有URL(例如 http://:/mcp) - LLM_MODEL 和提供程序API密钥: GEMINI_API_KEY 或 OPENAI_API_KEY 或 ANTHROPIC_API_KEY - 可选: LLM_TEMPERATURE
网络
- FastAPI通过铁路专用网络调用MCP。
- 保持FastAPI公开,保持MCP私有。
4.VS代码集成
要在GitHub Copilot Chat或VS Code中的Gemini扩展中直接使用这些工具:
确保MCP服务器正在运行(uv run python mcp_server/main.py).
在项目根目录中,创建一个名为.vscode的目录(如果它不存在)。
在.vcode文件夹中创建一个名为mcp.json的文件:
{
"servers": {
"kitchen-orchestator": {
"url": "http://127.0.0.1:8000/mcp ",
"type": "http"
}
},
"inputs": []
}打开副驾驶聊天面板。
单击工具(扳手图标),确保厨房编排器已启用。
你现在可以问这样的问题:“做一个玛格丽塔披萨要花多少钱?”
