15 分钟
FastAPI-MCP
这篇笔记聚焦 fastapi-mcp 在 FastAPI 与大模型工具调用之间的衔接方式,说明它如何把现有 API 端点转换为符合 MCP 的工具描述,让 Coze、通义、百川、智谱等平台更容易识别接口能力。内容先给出服务端示例:使用 FastApiMCP 挂载到 /mcp,接口通过 Pydantic 模型定义请求体,并显式设置 operation_id,同时可额外暴露 openapi.json 供客户端读取。文章强调 operation_id 是外部调用时定位接口的唯一标识,不能依赖 FastAPI 自动生成的冗长默认值;请求方法、请求体结构、description、summary 等信息也会影响大模型是否能准确理解参数。随后它拆解 MCPClient 的实际工作流程:先获取 openapi.json,根据 operation_id 找到路径和方法,再组装并发送普通 HTTP 请求,因此 MCP 并不是替代 HTTP 的新传输协议,而是面向大模型的 OpenAPI 子集和调用约定。后半部分用 OpenAI 兼容的 tool call 示例说明,大模型通常只生成函数名和参数,不会自动替开发者请求本地接口。要形成完整闭环,仍需要中转层或代理服务负责执行 HTTP 调用、把工具结果写回 messages,并再次请求模型生成最终回复;LangChain、Flowise 或自建代理可以承担这类自动执行逻辑。
fastapimcp