FastMCP 使用说明

项目简介

FastMCP 是一个Python库,用于快速构建符合 Model Context Protocol (MCP) 协议的服务器。MCP 服务器旨在为大型语言模型(LLM)客户端提供标准化的上下文信息和功能,例如数据资源、工具调用和Prompt模板。FastMCP 提供了简洁的Pythonic接口,让开发者可以专注于业务逻辑的实现,而无需深入了解复杂的MCP协议细节。

请注意: 该仓库 FastMCP 已经不再维护,其功能已被集成到官方 MCP Python SDK 中:github.com/modelcontextprotocol/python-sdk。本仓库仅供学习和参考。

主要功能点

  • 快速开发: 使用简洁的Python装饰器,轻松定义资源 (Resources)、工具 (Tools) 和 Prompt 模板 (Prompts)。
  • 简单易用: 高度抽象的API设计,减少了构建 MCP 服务器所需的样板代码。
  • Pythonic: 代码风格贴合Python开发者的习惯,易于理解和使用。
  • 核心MCP功能: 实现了MCP协议的核心功能,包括资源管理、工具注册和Prompt模板渲染。
  • 开发和部署: 提供开发模式 (dev) 和安装模式 (install),方便开发测试和集成到 Claude 等 MCP 客户端。

安装步骤

  1. 确保你的Python环境已安装,推荐使用Python 3.10 或更高版本。
  2. 推荐使用 'uv' 包管理器安装 FastMCP,以获得更快的安装速度和部署能力。如果尚未安装 'uv',请先安装 'uv' (参考 https://docs.astral.sh/uv/)。
    uv pip install fastmcp
    如果不需要部署功能,也可以使用 'pip' 安装:
    pip install fastmcp

服务器配置

MCP 服务器需要配置启动命令 (command) 及其参数 (args) 才能被 MCP 客户端(例如 Claude)识别和连接。以下是使用 FastMCP 构建的 MCP 服务器的典型配置信息(JSON 格式),你需要将其添加到 MCP 客户端的服务器配置中。

{
  "serverName": "你的服务器名称",  // 自定义服务器名称,例如 "My FastMCP Server"
  "command": "uv",               // 启动服务器的命令,这里使用 uv (或 python,如果未使用 uv 安装)
  "args": [                      // 启动命令的参数列表
    "run",                      // uv run 子命令,用于运行 Python 脚本
    "--with",                   // 使用 --with 参数指定依赖,fastmcp 是必须的
    "fastmcp",
    "fastmcp",                  // 实际执行 fastmcp 命令
    "run",                      // fastmcp 的 run 子命令,用于启动服务器
    "你的服务器脚本.py"        // 你的服务器 Python 脚本文件名,例如 "server.py"
  ],
  "env": {                      // (可选) 环境变量配置
    // "API_KEY": "your_api_key"  // 例如,设置 API 密钥
  }
}

参数注释:

  • '"serverName"': 在 MCP 客户端中显示的服务器名称,可以自定义。
  • '"command"': 运行服务器的命令,通常是 'uv' 或 'python'。如果使用 'uv' 安装,推荐使用 'uv';否则使用 'python'。
  • '"args"': 命令参数列表,根据实际情况修改:
    • '"你的服务器脚本.py"': 替换为你的 MCP 服务器 Python 脚本的文件名。
    • '--with fastmcp': 确保 'fastmcp' 库被包含在运行环境中,必须包含
    • 可以根据服务器脚本的依赖,添加额外的 '--with 依赖包名' 参数,例如 '--with pandas'。
  • '"env"': (可选) 服务器运行所需的环境变量,例如 API 密钥、数据库连接信息等。

基本使用方法

  1. 创建服务器脚本: 创建一个 Python 文件 (例如 'server.py'),并导入 'fastmcp' 库。
  2. 定义 FastMCP 实例: 创建 'FastMCP' 类的实例,指定服务器名称。
    from fastmcp import FastMCP
    mcp = FastMCP("MyExampleServer")
  3. 添加资源 (Resources): 使用 '@mcp.resource()' 装饰器将函数注册为资源,定义资源URI和返回数据。
    @mcp.resource("hello://world")
    def get_hello_world() -> str:
        """返回问候语"""
        return "Hello, world!"
  4. 添加工具 (Tools): 使用 '@mcp.tool()' 装饰器将函数注册为工具,定义工具名称、描述和参数。
    @mcp.tool()
    def calculate_sum(a: int, b: int) -> int:
        """计算两个数字的和"""
        return a + b
  5. 添加 Prompt 模板 (Prompts): 使用 '@mcp.prompt()' 装饰器将函数注册为 Prompt 模板,定义 Prompt 名称和内容。
    @mcp.prompt()
    def summarize_text(text: str) -> str:
        """总结文本内容"""
        return f"请总结以下文本:\n{text}"
  6. 运行服务器: 在命令行中使用 'fastmcp run 你的服务器脚本.py' 命令启动服务器。
    fastmcp run server.py
  7. 集成到 MCP 客户端: 将上面 服务器配置 JSON 内容添加到 MCP 客户端(例如 Claude)的服务器配置中,即可开始使用你的 MCP 服务器。

更多详细用法和示例,请参考仓库中的 'README.md' 文档和 'examples' 目录。

信息

分类

开发者工具