本文将介绍如何使用 FastAPI 构建 MCP 服务器。Anthropic 推出的 MCP 协议旨在让 AI 代理与应用程序之间的对话更顺畅、清晰。FastAPI 基于 Starlette 和 Uvicorn,采用异步编程模型,可轻松处理高并发请求,尤其适合 MCP 场景下大模型与外部系统的实时交互需求,其性能接近 Node.js 和 Go,在数据库查询、文件操作等 I/O 密集型任务中表现卓越。

FastAPI 基础知识
安装依赖
pip install uvicorn fastapi
FastAPI 服务代码示例
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"data": "Hello MCP!"}
uvicorn 启动 server
uvicorn server:app --reload
接下来,我们将基于 FastAPI 来开发 MCP 服务器。

FastAPI 开发 MCP Server
FastAPI-MCP 是一个零配置工具,用于自动将 FastAPI 端点暴露为模型上下文协议(MCP)工具。其特点在于简洁性和高效性,主要特点如下:
- 直接集成:不需要复杂的设置,直接集成到 FastAPI 应用中。
- 自动转换:无需手动编写代码,自动将 FastAPI 端点转换为 MCP 工具。
- 灵活性:支持自定义 MCP 工具,与自动生成的工具一同使用。
- 性能:基于 Python 3.10+ 和 FastAPI,保证了高性能的 API 服务。
- 文档友好:保持了原有的 API 文档,方便开发者使用和理解。
安装依赖
pip install fastapi-mcp
MCP 服务代码示例
fastapi FastAPI
fastapi_mcp add_mcp_server
typing
httpx
NWS_API_BASE =
USER_AGENT =
app = FastAPI()
mcp_server = add_mcp_server(
app,
mount_path=,
name=,
describe_all_responses=,
describe_full_response_schema=
)
() -> [, ] | :
headers = {
: USER_AGENT,
:
}
httpx.AsyncClient() client:
:
response = client.get(url, headers=headers, timeout=)
response.raise_for_status()
response.json()
Exception:
() -> :
points_url =
points_data = make_nws_request(points_url)
points_data:
forecast_url = points_data[][]
forecast_data = make_nws_request(forecast_url)
forecast_data:
periods = forecast_data[][]
forecasts = []
period periods[:]:
forecast =
forecasts.append(forecast)
.join(forecasts)






