网络MCP后端
此目录包含一个小型FastAPI后端,它封装了一个LLM客户端和一个MCP(多组件进程)会话,以提供一个能够调用MCP服务器公开的工具的网络代理。它旨在作为一个示例/自定义代理实现,使LLM能够通过MCP与外部工具(搜索、浏览器自动化等)进行交互。
特性
- 从环境变量或本地加载API凭据
.env文件。 - 启动MCP客户端会话(通过
mcp.client.stdio)并暴露出a/chat将消息中继到模型并执行模型返回的工具调用的端点。 - CORS已启用,可进行快速本地测试。
快速开始
- 复制或编辑
.env文件,以包含您的API密钥和可选设置(已作为模板包含):
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx
BASE_URL=https://api.deepseek.com
MODEL_NAME=deepseek-chat- 安装依赖项(确保
python-dotenv已安装):
uv pip install -r ../requirements.txt
uv pip install python-dotenv- 运行后端(开发):
# from the network-mcp directory
python backend.py或者通过uvicorn运行类似生产的行为:
uvicorn backend:app --host 0.0.0.0 --port 8000API:/聊天
POST/聊天
请求正文(JSON):
{
"message": "your question here",
"history": []
}答复:
- 如果模型直接回答,你会得到:
{ "response": "..." }. - 如果模型请求工具调用,后端将通过MCP调用工具并继续对话,直到最终回复或超时。
配置
- 支持的环境变量:
- DEEPSEEK_API_KEY, OPENAI_API_KEY,或 API_KEY (使用第一个找到的) - BASE_URL (默认为 https://api.deepseek.com) - MODEL_NAME (默认为 deepseek-chat)
把这些放进去 network-mcp/.env 为了地方发展。不要将生产密钥提交给git。
安全和部署说明
- 将API密钥保密。添加
network-mcp/.env到.gitignore或者在部署平台中管理机密。 - 在生产环境中,更倾向于通过CI/CD或托管提供商设置环境变量,而不是
.env文件夹。
故障排除
- 如果你看到
API key not set启动时,确保.env文件存在并且包含一个真正的密钥,或者在运行之前导出envvar。 - 如果MCP连接失败,请检查MCP服务器(
mcp_tool.py或配置的命令)可用且工作。
延伸
- 为添加更强大的验证
BASE_URL和MODEL_NAME如果您使用多个模型端点。 - 为添加身份验证
/chat端点(如果将其暴露在本地开发之外)。
______________________________________________________________________
针对定制网络代理的简短而集中的README。如果你愿意,我还可以添加一个示例curl请求或一个调用 /chat.
