
FastMCP - FastAPI MCP Framework & Runner
io.github.Manas-makerv0.1.0更新于 Oct 3, 2026
FastAPI-native Model Context Protocol framework and stdio runner.
概览
一个 Python 框架,把带标签的 FastAPI 路由和自定义函数转换为 MCP 工具,并提供连接桌面 AI 客户端的本地 stdio 运行器。
- 功能
- FastMCP 是一个 FastAPI 原生的框架,用于把现有 FastAPI 应用暴露为 MCP 服务器。带有 tags=["mcp"] 标签的路由会被反射为 MCP 工具,Pydantic 模型、路径/查询/请求体参数和文档字符串会转换为输入 schema 与描述;未打标签的路由保持私有。它还支持通过 @mcp.tool 装饰器定义自定义工具、通过 search_tools 元工具进行渐进式工具发现、返回 isError 结果的错误拦截、自定义序列化器,以及位于 /mcp/docs 的内嵌浏览器检查器。stdio 命令行运行器可通过标准输入输出把 Claude Desktop、Cursor 等桌面客户端连接到该应用。
- 适用场景
- 当你已有 FastAPI 后端,希望让 AI 助手直接调用其接口而不必另写一个 MCP 服务器时使用。也适合需要暴露大量工具但不想占满模型上下文,或希望通过本地 stdio 桥接桌面 AI 客户端的团队。
- 运行要求
- 需要 Python 并安装 mcp-fastapi 包(pip 或 uv)。以本地 stdio 进程运行,或挂载到由 uvicorn 提供的 ASGI 应用中。可选环境变量 FASTMCP_LOG_LEVEL 控制日志级别。服务器本身未声明账号或 API 密钥;认证取决于底层 FastAPI 应用的实现。
安装
在 SourceWeft 中
- 打开 控制台中的 FastMCP - FastAPI MCP Framework & Runner,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
fast-mcp
FastAPI-native Model Context Protocol (MCP) framework with automatic route reflection, ASGI scope bridging, dynamic progressive tool discovery, resilient error recovery, and interactive in-chat MCP Apps (SEP-1865).
[PyPI] [Tests] [Documentation] [Python] [FastAPI] [Glama]
Highlights
- ⚡ Hybrid Dual-Citizen ASGI Mount: Mounts directly onto any existing
FastAPIinstance in-process over standard ASGI—zero external proxying, zero hanging subprocesses. - 🔌 Local stdio CLI Runner & Desktop AI Bridge: Run
fast-mcp stdio main:apporpython -m fast_mcp stdio main:appto connect desktop AI clients (Claude Desktop, Cursor) over standard I/O pipes with zero network setup. - 🔍 Route Reflection: Opt-in tags (
tags=["mcp"]) automatically convert FastAPI endpoints, Pydantic models, docstrings, path/query/body parameters into MCP tools. - 🛠️ Custom AI Tools (
@mcp.tool): Define AI-tailored composite tools alongside reflected routes with automatic schema and docstring extraction. - 🔐 ASGI Scope Bridging: Client authorization headers (
Authorization: Bearer <token>, cookies, API keys) captured during the MCP handshake are bridged into an in-memory ASGIRequest, natively resolving FastAPI'sDepends()andSecurity()providers without code changes. - 🧠 Dynamic Progressive Tool Discovery: Protect agent context windows via progressive discovery (
dynamic_discovery=True), thesearch_tools(query: str)meta-tool, and zero-dependencyKeywordTagRouter. - 🛡️ Resilient Error Recovery & Minified JSON: Traps route
HTTPExceptionand Pydantic validation errors into informativeCallToolResult(isError=True)responses so LLMs can self-correct without protocol failures. Output defaults to compact, token-conscious minified JSON with custom@mcp.serializerformatting hooks. - 🖥️ Dual UI & In-Chat MCP Apps (SEP-1865): Embedded browser inspector at
/mcp/docsplus native support for in-chat interactive iframes in desktop AI clients (Claude Desktop, Cursor, VS Code) via_meta.ui.resourceUri, the built-ininspect()tool, and the@mcp.app()decorator.
Installation
Or using uv:
Quickstart
Run with standard ASGI servers:
Core Capabilities
1. Route Reflection
Routes tagged with tags=["mcp"] (configurable via route_tag) are automatically inspected upon mcp.mount():
- Endpoint docstrings (Google, Sphinx, NumPy format) become tool descriptions and parameter docs.
- Pydantic request models, query parameters, and path variables become MCP input schemas.
- Untagged endpoints remain standard HTTP routes and are never leaked to LLMs.
2. Custom AI Tools (@mcp.tool)
Register AI-specialized tools that don't need dedicated REST endpoints:
3. ASGI Scope Bridging & Native Auth
Incoming headers (Authorization: Bearer ..., cookies, API keys) from the MCP client's SSE handshake or message posts are captured into an active request context:
If authorization fails or headers are omitted, fast-mcp unwraps the resulting HTTPException(401) into CallToolResult(is_error=True) so the agent receives an actionable authentication error rather than crashing the transport.
4. Dynamic Progressive Tool Discovery
Prevent LLM context window bloat on large FastAPI applications with hundreds of endpoints:
- When active,
tools/listexposes only baseline tools plus thesearch_tools(query: str)meta-tool. - Calling
search_tools(query="invoice")executes the pluggableToolRouter(defaults to zero-dependencyKeywordTagRouterwith tokenized name/tag/description ranking) and returns matching tool definitions with full JSON schemas.
5. Resilient Error Interception & Custom Serializers
- Exception Traps:
HTTPException(400, 404, 422) and Pydantic validation errors return clean, concise messages withisError=True. - Minified Output: Responses serialize to compact minified JSON (
{"id":1,"name":"widget"}) saving prompt tokens. - Custom Serializers: Format return types into tailored markdown or summaries:
6. Dual UI: Browser Inspector & In-Chat MCP Apps (SEP-1865)
Embedded Browser Inspector
Open http://localhost:8000/mcp/docs in any browser to inspect registered tools, view schemas, and execute test invocations interactively without external Node.js CLIs. (Disable with FastMCP(app, enable_ui=False)).
In-Chat MCP Apps (SEP-1865)
Render rich interactive HTML/JS widgets directly in modern desktop AI clients (Claude Desktop, Cursor, VS Code):
7. Local stdio CLI Runner & Desktop AI Bridge
Connect desktop AI clients (Claude Desktop, Cursor) directly to your FastAPI backend or FastMCP instance over standard input/output (stdio) pipes with zero network setup, port conflicts, or external proxying.
Command-Line Usage
Claude Desktop Configuration (claude_desktop_config.json)
Configure Claude Desktop to launch your FastMCP server directly:
Or using uv to manage the virtual environment automatically:
Programmatic Stdio Runner
You can also run stdio mode programmatically from Python:
Testing & Verification
fast-mcp exercises external behavior across the ASGI Protocol Seam using httpx.AsyncClient with ASGITransport:
Specification & Architectural Documents
- Interactive Documentation Website
- AI Agent Index (llms.txt)
- Specification: fast-mcp Core Framework (V1)
- GLOSSARY.md
- ADR 0001: Architecture Foundation and Hybrid Scope
- ADR 0002: Dual-UI, ASGI Scope Bridging, and Resilient Error Handling
License
MIT
来源:README.md,提交 2fb6e40
工具
0版本历史
1- v0.1.0最新Oct 3, 2026

