article
README
🚀 MCP FastAPI 优秀项目
本项目是一个基于 FastAPI 的强大 Model Context Protocol (MCP) 实现,结合增强工具注册表功能,充分利用了成熟的 FastAPI 生态系统,为相关开发提供了高效、便捷的解决方案。
🚀 快速开始
先决条件
- Python 3.10+
安装
# 克隆仓库
git clone https://github.com/yourusername/awesome-mcp-fastapi.git
cd awesome-mcp-fastapi
# 创建虚拟环境
python -m venv .venv
source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate
# 安装依赖项
pip install -e .
运行服务器
uvicorn src.main:app --reload
访问 http://localhost:8000/docs 查看 OpenAPI 文档。
✨ 主要特性
比标准 MCP 更具优势
尽管 Model Context Protocol 提供了连接 AI 模型与工具和数据源的良好基础,但本项目的实现提供了几个显著优势:
FastAPI 的成熟生态系统
- 生产就绪的 Web 框架:基于 FastAPI,一个高性能、现代的 Web 框架,带有自动 OpenAPI 文档生成。
- 依赖注入支持:利用 FastAPI 强大的依赖注入系统实现更易维护和测试的代码。
- 中间件支持:轻松集成身份验证、监控和其他中间件组件。
- 内置验证:通过 Pydantic 实现强大的请求/响应验证和数据建模。
- 异步支持:对 async/await 模式的顶级支持,适合高并发应用。
增强的工具注册表
本项目的实现通过以下方式改进了标准 MCP 工具注册表:
- 自动文档生成:工具会自动生成 MCP 格式和 OpenAPI 规范的文档。
- 改进的类型提示:增强的类型信息提取,提升工具支持和 IDE 体验。
- 更丰富的模式定义:更具表达性的 JSON Schema 定义工具输入和输出。
- 更好的错误处理:结构化的错误响应,带有详细的信息。
- 增强的文档字符串支持:更好地从 Python 文档字符串中提取信息。
额外功能
- CORS 支持:准备支持跨域请求,便于与 Web 应用程序集成。
- 生命周期管理:通过 FastAPI 的生命周期 API 实现资源的初始化和清理。
💻 使用示例
基础用法
创建工具
from fastapi import FastAPI
from src.utils.tools import create_tool
app = FastAPI()
my_tool = create_tool(...)
app.include_router(my_tool.router)
请求格式
发送 POST 请求到 /tools/your-tool-id,请求体如下:
{
"inputs": {
"param1": "value1",
"param2": "value2"
},
"options": {
"timeout": 3000,
"some_option": true
}
}
📚 详细文档
架构
项目使用模块化架构:
app:主应用入口。tools:工具定义和注册。routers:路由配置。models:数据模型和验证。
awesome-mcp-fastapi/
├── app.py
├── models/
│ └── __init__.py
├── routers/
│ └── __init__.py
└── tools/
└── __init__.py
Docker 支持
构建和运行:
docker build -t awesome-mcp-fastapi .
docker run -p 8000:8000 --env-file .env awesome-mcp-fastapi
🤝 贡献
欢迎贡献!请随时提交 Pull Request。
📄 许可证
本项目在 MIT License 下许可,详情请参见 LICENSE 文件。
扫码联系在线客服