FastAPI MCP

FastAPI MCP

FastAPI-MCP 是 FastAPI 的一个强大扩展。它可以轻松地将您的 FastAPI 应用的端点暴露为模型上下文协议(MCP)工具。它通过把现有的端点转化为 MCP 工具,实现 FastAPI API 与 LLM 驱动的代理或工作流的无缝、安全集成。设置简单,提供 MCP 原生认证、模式保留和原生文档,同时利用您现有的 FastAPI 依赖和部署基础设施。

Author: tadata-org


查看协议

什么是 FastAPI-MCP?

FastAPI-MCP 是 FastAPI 框架的原生扩展。它将您的 API 端点暴露为 MCP 工具,MCP 兼容的 LLM 代理可以动态发现和调用这些工具。与传统的转换器不同,FastAPI-MCP 深度集成 FastAPI 的 ASGI 栈,支持内置的认证和文档保留,并实现统一和分离部署模式,提供更大的灵活性。

如何配置 FastAPI-MCP

  1. 使用您喜欢的包管理器安装 FastAPI-MCP:
    • 使用 uv: uv add fastapi-mcp
    • 使用 pip: pip install fastapi-mcp
  2. 导入 FastAPI-MCP 并在您的 FastAPI 应用实例中初始化它。
  3. 使用 .mount() 方法暴露您的 MCP 服务器,该方法将根据您现有的 FastAPI 路由自动生成 MCP 工具端点。
  4. 可选择使用 FastAPI 的依赖注入配置认证(例如,Depends()),并根据您的要求自定义文档或部署。

如何使用 FastAPI-MCP

  1. 在您的 FastAPI 应用中添加以下内容:
    from fastapi import FastAPI
    from fastapi_mcp import FastApiMCP
    
    app = FastAPI()
    mcp = FastApiMCP(app)
    mcp.mount()
    
  2. 一旦挂载,您的 MCP 服务器将在您的应用基础 URL 的 /mcp 下可用。
  3. 所有兼容的 FastAPI 端点将自动成为 MCP 工具,准备被 MCP 客户端(包括 LLM 代理)发现和调用。
  4. 端点保留其原始模式、验证和认证逻辑,您对 FastAPI 应用的任何更改将反映在 MCP 工具中。
  5. fastapi-mcp.tadata.com 查看文档,并参考 示例 进行实际演示。

关键特性

  • 认证集成: 重用 FastAPI 现有的依赖和安全模型为 MCP 端点提供支持。
  • 最小配置: 通过一个方法调用立即将所有 FastAPI 端点暴露为 MCP 工具。
  • 原生 FastAPI 支持: 利用 ASGI 传输实现高效和直接的通信。
  • 模式和文档保留: 保持 OpenAPI 文档、模型和字段验证。
  • 灵活部署: 将 MCP 服务器作为嵌入应用或独立服务进行部署。
  • 全面的生态系统: 容易与 LLM 和外部 MCP 兼容工具集成。

使用案例

  • 立即将您业务的 REST API 转换为可安全访问的 LLM 工具,支持智能代理工作流程。
  • 通过让 LLM 调用您的 FastAPI 端点作为 MCP 工具来构建自定义工作流自动化。
  • 原型设计和分享新的 AI 驱动功能,避免手动端点封装或重复。
  • 将企业数据和外部 API 连接到统一的、模型可访问的工具集。

常见问题

问1: 我需要修改我的 FastAPI 代码来使用 FastAPI-MCP 吗?
答: 不需要,您可以通过简单地初始化和挂载 FastAPI-MCP,将现有端点作为 MCP 工具暴露,几乎不需要修改。

问2: 我可以在 MCP 工具中使用 FastAPI 的认证和依赖吗?
答: 可以,FastAPI-MCP 完全支持通过 FastAPI 的 Depends() 进行认证和依赖注入,因此您的安全模型不会受到影响。

问3: 我可以将 MCP 服务器单独部署在我的 FastAPI 应用之外吗?
答: 可以,FastAPI-MCP 支持统一和单独的部署模式,您可以在应用内或作为独立 ASGI 服务挂载 MCP 服务器。

问4: 请求和响应模式如何处理?
答: 所有端点的模式和文档都将被保留,确保通过 MCP 工具进行一致的输入验证和发现。