
出色的MCP快速API
基于FastAPI的模型上下文协议(MCP)的强大实现,具有增强的工具注册表功能,利用了成熟的FastAPI生态系统。
概述
Awesome MCP FastAPI是模型上下文协议的生产就绪实现,通过将其与FastAPI的强大生态系统集成,增强和扩展了标准MCP功能。该项目提供了一个改进的工具注册表系统,使创建、管理和记录大型语言模型(LLM)的AI工具变得更加容易。
为什么这比标准MCP更好
虽然模型上下文协议为将AI模型与工具和数据源连接提供了坚实的基础,但我们的实现提供了几个显著的优势:
FastAPI成熟的生态系统
- 生产就绪Web框架:基于FastAPI构建,FastAPI是一个高性能的现代web框架,具有自动生成OpenAPI文档的功能。
- 依赖注入:利用FastAPI强大的依赖注入系统,使代码更易于维护和测试。
- 中间件支持:易于与身份验证、监控和其他中间件组件集成。
- 内置验证:Pydantic集成,用于强大的请求/响应验证和数据建模。
- 异步支持:对高并发应用程序的异步/等待模式的一流支持。
增强的工具注册表
我们的实现通过以下方式改进了标准MCP工具注册表:
- 自动文档生成:工具以MCP格式和OpenAPI规范自动记录。
- 改进的类型提示:增强类型信息提取,以获得更好的工具和IDE支持。
- 更丰富的模式定义:用于工具输入和输出的更具表现力的JSON模式定义。
- 更好的错误处理:带有详细信息的结构化错误响应。
- 增强的Docstring支持:更好地从Python文档字符串中提取文档。
附加功能
- CORS支持:为跨源请求做好准备,使其易于与web应用程序集成。
- 寿命管理:通过FastAPI的生命周期API进行适当的资源初始化和清理。
入门指南
先决条件
- Python 3.10+
安装
# Clone the repository
git clone https://github.com/yourusername/awesome-mcp-fastapi.git
cd awesome-mcp-fastapi
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -e .运行服务器
uvicorn src.main:app --reload访问http://localhost:8000/docs查看OpenAPI文档。
用法
创建工具
from fastapi import FastAPI
from src.utils.tools import auto_tool, bind_app_tools
app = FastAPI()
bind_app_tools(app)
@auto_tool(
name="calculator",
description="Perform basic arithmetic operations",
tags=["math"]
)
@app.post("/api/calculator")
async def calculator(operation: str, a: float, b: float):
"""
Perform basic arithmetic operations.
Parameters:
- operation: The operation to perform (add, subtract, multiply, divide)
- a: First number
- b: Second number
Returns:
The result of the operation
"""
if operation == "add":
return {"result": a + b}
elif operation == "subtract":
return {"result": a - b}
elif operation == "multiply":
return {"result": a * b}
elif operation == "divide":
if b == 0:
return {"error": "Cannot divide by zero"}
return {"result": a / b}
else:
return {"error": f"Unknown operation: {operation}"}通过MCP访问工具
LLM可以通过模型上下文协议发现和使用您的工具。使用Claude的示例:
You can perform calculations using the calculator tool. Try calculating 42 * 13.Claude会自动找到并使用您的计算器工具进行计算。
建筑
我们的应用程序遵循模块化架构:
src/
├── api/ # API endpoints
│ └── v1/ # API version 1
├── core/ # Core functionality
│ └── settings.py # Application settings
├── db/ # Database connections
│ └── models/ # Database models
├── main.py # Application entry point
└── utils/ # Utility functions
└── tools.py # Enhanced tool registryDocker支持
使用Docker构建和运行:
docker build -t awesome-mcp-fastapi .
docker run -p 8000:8000 --env-file .env awesome-mcp-fastapi贡献
欢迎投稿!请随时提交拉取请求。
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
