详细介绍
FastAPI-MCP 是一个将 FastAPI 端点作为模型上下文协议(MCP)工具暴露的库,支持灵活部署与 ASGI 传输,并内置身份验证功能。它允许开发者快速将 FastAPI 应用程序集成到 MCP 生态系统中,无需手动编写复杂的代码,即可创建支持身份验证的 MCP 工具。
核心功能
FastAPI-MCP 提供了多项核心功能,使其成为构建模型服务的理想工具:
- 内置身份验证:支持使用现有的 FastAPI 依赖项来保护 MCP 端点,确保服务的安全性。
- FastAPI 原生集成:与 FastAPI 紧密集成,无需额外的 HTTP 调用,实现高效通信。
- 零/最小配置:只需指向 FastAPI 应用即可快速启动,简化部署流程。
- 保留请求和响应模型:自动保留请求和响应的 schema,确保数据结构的一致性。
- 保留文档:完整保留 FastAPI 中的文档和注释,便于开发和维护。
- 灵活部署:支持将 MCP 服务器挂载到同一应用,或独立部署,适应不同场景。
- ASGI 传输:直接使用 FastAPI 的 ASGI 接口进行高效通信,提升性能。
安装方法
FastAPI-MCP 可通过 pip 或 uv 工具进行安装。推荐使用 uv 工具以获得更快的安装体验。
uv add fastapi-mcppip install fastapi-mcp使用方法
使用 FastAPI-MCP 非常简单,只需几行代码即可将 FastAPI 应用转换为 MCP 服务器。
from fastapi import FastAPI
from fastapi_mcp import FastAPI_MCP
app = FastAPI()
mcp = FastAPI_MCP(app)
mcp.mount()上述代码创建了一个 FastAPI 应用,并实例化了 FastAPI_MCP 对象,最后通过 mount() 方法将 MCP 服务器挂载到应用中。
使用示例
以下是一个完整的使用示例,展示如何快速部署 MCP 服务器并集成身份验证。
from fastapi import FastAPI, Depends
from fastapi_mcp import FastAPI_MCP
app = FastAPI()
mcp = FastAPI_MCP(app)
mcp.mount()在另一个示例中,可以使用 FastAPI 的依赖项来保护 MCP 端点:
async def get_current_user():
return {'user': 'admin'}
@router.post('/predict')
async def predict(data: dict, user: dict = Depends(get_current_user)):
return {'result': '预测结果', 'user': user}使用场景
FastAPI-MCP 适用于需要快速部署模型服务的企业和开发者,尤其是在以下场景中:
- 金融领域:用于构建安全、高效的模型服务,支持身份验证和数据保护。
- 医疗领域:快速部署模型服务,确保数据隐私和安全性。
- 科研领域:简化模型服务的开发和部署流程,提高研究效率。
注意事项
在使用 FastAPI-MCP 时,需要注意以下几点:
- 需要一定的 Python 开发基础。
- 可能需要额外的资源监控,以确保服务的稳定性和性能。
- 建议使用 uv 工具进行安装,以获得更快的安装速度。
FastAPI-MCP 通过其强大的功能和灵活的部署方式,为开发者提供了一个高效、安全的模型服务构建工具。