MCP 服务器 · 发布者仓库

FastMCP

面向 Python 的 MCP 应用框架,可用统一 API 构建服务器、客户端和交互式应用,并通过 stdio 或 Streamable HTTP 运行。

27.6k StarsApache-2.0Python1 天前更新
01

项目介绍

FastMCP 是一个面向 Python 开发者的 MCP 应用框架。它把服务器端的工具、资源和提示词声明,客户端连接,以及交互式应用放在同一套 Python API 中。最小服务器只需创建 FastMCP 实例并用装饰器注册函数;本地可用 stdio,远程部署可用 Streamable HTTP。

02

核心功能

01

用 Python 函数定义 MCP 工具、资源和提示词

通过 FastMCP 实例及装饰器将带类型标注的 Python 函数注册为工具,并用相同框架组织资源和提示词。

02

构建可连接本地或远程服务器的 MCP 客户端

Client API 支持进程内连接、stdio 子进程与 HTTP 端点,适合测试或编排多个 MCP 服务。

03

通过中间件、认证、Provider 与 Transform 扩展服务器

服务器文档提供认证、中间件、Provider 和 Transform 等扩展点,用于控制请求、能力来源和暴露方式。

04

为支持的客户端构建交互式 MCP 应用

FastMCP Apps 可为支持该能力的 MCP 客户端提供对话内交互界面。

03

安装与连接

在 Python 3.10 或更高版本的隔离环境中使用 uv 或 pip 安装 FastMCP,然后创建一个最小服务器并用 stdio 启动。

AI AGENT INSTALL

让 AI Agent 帮你安装

把这段话发送给 Codex、Claude Code 或其他可以操作本地环境的 AI Agent。

请帮我安装 FastMCP。项目地址:https://github.com/PrefectHQ/fastmcp。先阅读 README、docs/getting-started/installation.mdx、docs/getting-started/quickstart.mdx 和 pyproject.toml,确认当前 Python 版本至少为 3.10,并优先在隔离环境中按项目文档执行 uv add fastmcp;若项目不用 uv,再使用 pip install fastmcp。生产项目请先说明并建议精确锁定当前兼容版本,不要擅自改写既有锁文件。安装后运行 fastmcp version,再创建官方快速入门的最小 greet 服务器并执行 fastmcp run my_server.py:mcp。请报告安装版本、修改的文件、启动结果和任何未验证项;如需凭据、扩大文件或网络权限、开放 HTTP 端口、覆盖文件或执行高风险操作,先征得我的确认。
01开始前准备
  • Python 3.10 或更高版本
  • uv 或 pip,以及一个隔离的 Python 虚拟环境
  • 能够在本地创建 Python 文件并启动进程
02复制安装命令或配置
uv add fastmcp
03按步骤完成安装
  1. 1
    安装并检查 CLI

    在隔离环境执行 uv add fastmcp,然后运行 fastmcp version。若使用 pip,则按官方替代命令执行 pip install fastmcp。

  2. 2
    创建最小 MCP 服务器

    新建 my_server.py,导入 FastMCP,创建 mcp = FastMCP("My MCP Server"),再用 @mcp.tool 装饰一个接收 name 并返回问候语的 Python 函数。

  3. 3
    通过 stdio 启动

    执行 fastmcp run my_server.py:mcp。stdio 是默认传输,适合本地 MCP 客户端以子进程方式启动。

  4. 4
    按需切换到 HTTP

    远程或自托管场景可执行 fastmcp run my_server.py:mcp --transport http --port 8000。对外开放前先配置认证、错误隐藏和网络访问控制。

如何确认安装成功

先运行 fastmcp version 确认 CLI 可用;再把快速入门示例保存为 my_server.py,执行 fastmcp run my_server.py:mcp。命令保持运行且没有导入或启动错误,才代表最小安装验证通过。

使用前注意
  • 生产环境应精确锁定经过验证的版本;本页核验时最新稳定版为 v4.0.3。
  • 新项目优先使用 stdio 或 Streamable HTTP;SSE 是旧式传输。
  • 只有在需要后台任务时才安装 tasks 可选依赖。
04

使用场景

SCENARIO 01

把内部 Python 能力封装为 MCP 工具

将已有函数的输入输出用类型标注公开给 Agent,同时在服务器进程内保留业务依赖与访问控制。

SCENARIO 02

为 MCP 服务编写自动化客户端

使用 Client API 在测试或编排代码中列出工具、调用工具,并连接进程内、stdio 或 HTTP 服务。

SCENARIO 03

部署可认证的远程 MCP 端点

通过 Streamable HTTP、中间件和认证扩展构建自托管服务,但网络与凭据边界仍由部署者负责。

05

使用评价

FastMCP 的价值在于用一套 Python API 覆盖服务器、客户端和应用开发,并给出从本地 stdio 到 HTTP 部署的清晰路径。它仍是一个拥有业务代码权限的框架,生产采用前应锁定版本、核对传输与认证设置,并针对真实工具做权限审计。

值得一试的地方

  • 最小示例短,普通 Python 函数即可注册为 MCP 工具。
  • 同时覆盖服务器、客户端、Apps、中间件、认证和 Provider。
  • 安装、快速入门和主要 API 文档齐全,仓库保持活跃更新。

使用前要知道

  • 不提供托管服务、默认业务权限隔离或自动安全审计。
  • 生产环境需要自行处理认证、网络暴露、凭据与工具权限。
  • 文档提示生态兼容性可能带来次版本破坏,且 SECURITY.md 的支持版本表当前落后于 v4。
06

README

FastMCP


Overview

面向 Python 的 MCP 应用框架,可用统一 API 构建服务器、客户端和交互式应用,并通过 stdio 或 Streamable HTTP 运行。 🚀 The fast, Pythonic way to build MCP servers and clients.

Getting started

  • 在 Python 3.10 或更高版本的隔离环境中使用 uv 或 pip 安装 FastMCP,然后创建一个最小服务器并用 stdio 启动。
  • 服务器侧可把 Python 函数、资源和提示模板暴露为 MCP 能力,并支持认证、中间件、Provider 与 Transform。
  • 客户端侧可连接内存服务器、stdio 子进程或远程 HTTP 端点,并通过异步 API 列出和调用能力。
  • 先运行 fastmcp version 确认 CLI 可用;再把快速入门示例保存为 my_server.py,执行 fastmcp run my_server.py:mcp。命令保持运行且没有导入或启动错误,才代表最小安装验证通过。

Configuration

uv add fastmcp
在 GitHub 阅读完整 README