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 客户端。
安装步骤
- 确保你的Python环境已安装,推荐使用Python 3.10 或更高版本。
- 推荐使用 'uv' 包管理器安装 FastMCP,以获得更快的安装速度和部署能力。如果尚未安装 'uv',请先安装 'uv' (参考 https://docs.astral.sh/uv/)。
如果不需要部署功能,也可以使用 'pip' 安装:uv pip install fastmcppip 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 密钥、数据库连接信息等。
基本使用方法
- 创建服务器脚本: 创建一个 Python 文件 (例如 'server.py'),并导入 'fastmcp' 库。
- 定义 FastMCP 实例: 创建 'FastMCP' 类的实例,指定服务器名称。
from fastmcp import FastMCP mcp = FastMCP("MyExampleServer") - 添加资源 (Resources): 使用 '@mcp.resource()' 装饰器将函数注册为资源,定义资源URI和返回数据。
@mcp.resource("hello://world") def get_hello_world() -> str: """返回问候语""" return "Hello, world!" - 添加工具 (Tools): 使用 '@mcp.tool()' 装饰器将函数注册为工具,定义工具名称、描述和参数。
@mcp.tool() def calculate_sum(a: int, b: int) -> int: """计算两个数字的和""" return a + b - 添加 Prompt 模板 (Prompts): 使用 '@mcp.prompt()' 装饰器将函数注册为 Prompt 模板,定义 Prompt 名称和内容。
@mcp.prompt() def summarize_text(text: str) -> str: """总结文本内容""" return f"请总结以下文本:\n{text}" - 运行服务器: 在命令行中使用 'fastmcp run 你的服务器脚本.py' 命令启动服务器。
fastmcp run server.py - 集成到 MCP 客户端: 将上面 服务器配置 JSON 内容添加到 MCP 客户端(例如 Claude)的服务器配置中,即可开始使用你的 MCP 服务器。
更多详细用法和示例,请参考仓库中的 'README.md' 文档和 'examples' 目录。
信息
分类
开发者工具