FastAPI+MCP服务器示例
此存储库演示了在Python中创建MCP(模型上下文协议)服务器的两种不同方法:
- FastAPI MCP (
fastapimcp.py)-既可作为FastAPI web应用程序又可作为MCP服务器的混合服务器 - FastMCP (
fastmcp.py)-使用FastMCP v2的独立MCP服务器
🚀 快速开始
先决条件
- Python 3.13+
- pip或uv包管理器
安装g
- 克隆此存储库:
git clone
cd fmcp- 安装依赖项:
pip install -e .或使用紫外线:
uv sync📋 可用工具
这两种实现都提供了相同的核心功能:
- 总数 -将两个整数相加
- 问候用户 -生成个性化问候
- 翻译文本 -使用谷歌翻译在语言之间翻译文本
- 天气警报 -获取美国各州的活跃天气警报
🔧 用法
选项1:FastAPI MCP(混合服务器)
这 fastapimcp.py 文件创建了一个服务器 两者 web API和MCP服务器。
作为Web API运行:
python fastapimcp.py- 访问web界面:http://127.0.0.1:8000
- API文件:http://127.0.0.1:8000/docs
- MCP端点:http://127.0.0.1:8000/mcp
测试API终点:
# Sum two numbers
curl -X POST "http://127.0.0.1:8000/sum" \
-H "Content-Type: application/json" \
-d '{"a": 5, "b": 3}'
# Greet user
curl -X POST "http://127.0.0.1:8000/greet" \
-H "Content-Type: application/json" \
-d '{"name": "Alice"}'
# Translate text
curl -X POST "http://127.0.0.1:8000/translate" \
-H "Content-Type: application/json" \
-d '{"text": "Hello world", "target_lang": "es"}'
# Get weather alerts
curl -X POST "http://127.0.0.1:8000/alerts" \
-H "Content-Type: application/json" \
-d '{"state": "CA"}'用作MCP服务器:
将MCP客户端连接到: http://127.0.0.1:8000/mcp
选项2:FastMCP(独立MCP服务器)
这 fastmcp.py 该文件使用FastMCP v2创建了一个专用的MCP服务器。
运行MCP服务器:
python fastmcp.py服务器将于启动 http://127.0.0.1:8000 并提供MCP协议端点。
🔌 MCP客户端集成
Claude桌面配置
添加到您的Claude Desktop配置文件中:
{
"mcpServers": {
"fastapi-mcp": {
"command": "python",
"args": ["path/to/fastapimcp.py"],
"env": {}
},
"fastmcp": {
"command": "python",
"args": ["path/to/fastmcp.py"],
"env": {}
}
}
}其他MCP客户端
这两个服务器都公开了与任何MCP兼容客户端一起工作的标准MCP协议端点。
📁 项目结构
fmcp/
├── fastapimcp.py # FastAPI + MCP hybrid server
├── fastmcp.py # Standalone FastMCP v2 server
├── weather_helper.py # Weather API utilities
├── pyproject.toml # Project dependencies
└── README.md # This file🛠️ 主要区别
| 功能 | FastAPI MCP | FastMCP |
|---|---|---|
| Web API | ✅ 完整REST API | ❌ 仅限MCP |
| MCP服务器 | ✅ 通过整合 | ✅ 原住民 |
| 文档 | ✅ Swagger/OpenAPI | ❌ 仅MCP模式 |
| HTTP端点 | ✅ 自定义路线 | ❌ 仅限MCP协议 |
| 复杂性 | 较高 | 较低 |
| 用例 | 两用应用程序 | 以MCP为中心的工具 |
🔍 学习资源
了解FastAPI MCP
- 将FastAPI的web框架与MCP功能相结合
- 自动将FastAPI路由转换为MCP工具
- 当您需要web API和MCP功能时很有用
了解FastMCP v2
- 专为MCP协议构建
- 更简单的基于装饰器的方法
- 支持工具和资源
- 非常适合专用MCP服务器
🐛 故障排除
常见问题
- 端口已在使用中:更改相应文件中的端口
- 缺少依赖项:运行
pip install -e .安装所有要求 - 天气API错误:NWS API需要正确的User-Agent标头(已配置)
- 翻译错误:确保Google Translate API的互联网连接
调试模式
向任一服务器添加调试日志记录:
import logging
logging.basicConfig(level=logging.DEBUG)📝 许可证
本项目按原样提供,用于教育和示范目的。
🤝 贡献
请随时提交问题和增强请求!
