在构建大模型应用时,Anthropic 推出的 MCP 协议能让 AI 代理与应用程序之间的对话更顺畅。FastAPI 基于 Starlette 和 Uvicorn,采用异步编程模型,处理高并发请求的能力很强,尤其适合大模型与外部系统的实时交互场景,性能接近 Node.js 和 Go。

FastAPI 基础准备
先安装核心依赖:
pip install uvicorn fastapi
写一个简单的服务代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"data": "Hello MCP!"}
启动服务:
uvicorn server:app --reload
这里 server 指的是你的 Python 文件名(例如 server.py),app 是实例名。
开发 MCP Server
为了简化开发,可以使用 fastapi-mcp 库。它能把 FastAPI 端点直接暴露为 MCP 工具,无需手动编写转换逻辑。
特点:
- 零配置集成:直接挂载到 FastAPI 应用中。
- 自动转换:端点自动变为 MCP 工具。
- 灵活扩展:支持自定义工具与自动生成工具混用。
- 文档友好:保留原有的 API 文档结构。
安装依赖
pip install fastapi-mcp
编写服务代码
下面是一个调用天气 API 的示例,展示了如何将业务逻辑封装为 MCP 工具:
from fastapi import FastAPI
from fastapi_mcp import add_mcp_server
from typing import Any
import 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)







