FastMCP:快速构建MCP服务器的Python框架
项目简介
FastMCP是一个Python库,用于快速构建Model Context Protocol (MCP) 服务器。它提供了一套简洁、Pythonic的API,帮助开发者轻松地将数据、工具和Prompt模板暴露给大型语言模型(LLM)客户端,例如Claude。FastMCP旨在简化MCP服务器的开发流程,让开发者专注于定义服务器的功能,而无需关注底层的协议细节。
主要功能点
- 资源管理: 轻松地将Python函数或静态数据暴露为MCP资源,允许LLM客户端安全访问数据。资源可以是动态的,支持参数化URI。
- 工具注册: 通过装饰器简单地将Python函数注册为MCP工具,使LLM客户端能够调用这些工具执行特定任务。支持复杂的输入类型和参数验证。
- Prompt模板: 定义可复用的Prompt模板,支持参数化定制,帮助开发者优化LLM交互模式。
- Context注入: 工具和资源函数可以方便地访问上下文对象,获取请求ID、客户端信息、进行日志记录和进度报告,以及读取其他资源。
- 开发与部署: 提供便捷的开发模式('fastmcp dev')和一键安装到Claude Desktop('fastmcp install')的功能,方便开发和测试。
- 多种数据类型支持: 自动处理文本、JSON、二进制数据和图像等多种数据类型,简化数据交换。
安装步骤
- 确保已安装Python 3.10或更高版本。
- 推荐使用uv进行安装,以获得更好的性能和部署体验:
如果未安装uv,也可以使用pip:uv pip install fastmcppip install fastmcp
服务器配置
MCP客户端(如Claude)需要MCP服务器的配置信息才能建立连接。以下是一个FastMCP服务器的典型配置示例(JSON格式),您需要根据实际情况进行调整:
{ "serverName": "MyFastMCPServer", // MCP服务器的名称,在MCP客户端中显示 "command": "uv", // 启动服务器的命令,通常为uv或python "args": [ // 启动命令的参数列表 "run", // uv run 子命令,用于运行Python脚本 "--with", // uv 的 --with 参数,用于指定依赖 "fastmcp", // 指定 fastmcp 依赖,确保fastmcp库可用 "fastmcp", // 再次指定 fastmcp 命令 "run", // fastmcp 的 run 子命令,用于运行服务器 "server.py" // 你的服务器 Python 脚本文件名,例如 server.py 或 main.py ], "env": {} // 环境变量(可选),如果服务器需要环境变量,可以在这里配置 }
基本使用方法
-
创建服务器脚本: 创建一个Python文件(例如 'server.py'),并使用FastMCP库定义您的MCP服务器、资源、工具和Prompt。参考仓库中的 'examples' 目录获取示例代码。
-
运行开发模式: 在命令行中使用 'fastmcp dev server.py' 命令启动开发服务器。这将启动一个Web界面,您可以在其中测试工具和资源。
-
安装到Claude Desktop: 如果需要将服务器集成到Claude Desktop,可以使用 'fastmcp install server.py' 命令进行安装。安装成功后,您可以在Claude的设置中启用您的MCP服务器。
-
直接运行服务器: 对于高级用户或自定义部署场景,您可以直接运行服务器脚本 'fastmcp run server.py' 或 'python server.py'。
示例代码 (server.py):
from fastmcp import FastMCP mcp = FastMCP("My Server") @mcp.tool() def add(a: int, b: int) -> int: """Add two numbers""" return a + b @mcp.resource("greeting://{name}") def get_greeting(name: str) -> str: """Get a personalized greeting""" return f"Hello, {name}!"
运行示例服务器:
- 将上述代码保存为 'server.py' 文件。
- 打开命令行,切换到 'server.py' 所在的目录。
- 运行 'fastmcp dev server.py' 或 'fastmcp install server.py'。
信息
分类
开发者工具