FastAPI-MCP服务

将FastAPI端点作为模型上下文协议(MCP)工具暴露,并包含认证功能。

  • by mullicode
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mullicode/fastapi_mcp_contribution

使用说明

Built by Tadata

FastAPI-MCP

Expose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth!

特性

  • 认证 内置,使用您现有的FastAPI依赖项!

  • FastAPI原生: 不仅仅是另一个OpenAPI->MCP转换器

  • 零/最小配置 必需的-只需将其指向您的FastAPI应用程序,即可正常工作

  • 保留架构 您的请求模型和响应模型

  • 保存文档 在所有端点中,就像在Swagger中一样

  • 灵活部署 -将MCP服务器安装到同一应用程序,或单独部署

  • ASGI运输 -直接使用FastAPI的ASGI接口进行高效通信

托管解决方案

如果您更喜欢托管解决方案,请查看 tadata.com 网站.

安装

我们建议使用 紫外线,一个快速的Python包安装程序:

uv add fastapi-mcp

或者,您可以使用pip进行安装:

pip install fastapi-mcp

基本用法

使用FastAPI MCP的最简单方法是将MCP服务器直接添加到您的FastAPI应用程序中:

from fastapi import FastAPI
from fastapi_mcp import FastApiMCP

app = FastAPI()

mcp = FastApiMCP(app)

# Mount the MCP server directly to your FastAPI app
mcp.mount()

就是这样!您的自动生成MCP服务器现在可以在 https://app.base.url/mcp.

文档、示例和高级用法

FastAPI MCP提供 全面的文件此外,请查看 示例目录 用于演示这些功能的代码示例。

FastAPI优先方法

FastAPI-MCP被设计为FastAPI的本地扩展,而不仅仅是从API生成MCP工具的转换器。这种方法具有几个关键优势:

  • 本地依赖关系:使用熟悉的FastAPI保护您的MCP端点 Depends() 用于身份验证和授权

  • ASGI运输:使用其ASGI接口直接与您的FastAPI应用程序通信,消除了从MCP到API的HTTP调用的需要

  • 统一的基础设施:您的FastAPI应用程序不需要与MCP服务器分开运行(不过 单独部署 也支持)

这种设计理念确保在将MCP功能添加到现有的FastAPI服务时,摩擦最小。

发展与贡献

感谢您考虑为FastAPI MCP做出贡献!我们鼓励社区发布问题并创建拉取请求。

在您开始之前,请查看我们的 贡献指南.

社区

加入 MCParty Slack社区 与其他MCP爱好者联系,提出问题,分享您使用FastAPI MCP的经验。

需求

  • Python 3.10+(推荐3.12)
  • 紫外线

许可证

MIT许可证。版权所有(c)2025 Tadata股份有限公司。