使用说明
项目简介
本项目 'servers' 是一个示例仓库,展示了如何使用 'FastMCP' 框架构建 MCP (Model Context Protocol) 服务器。它包含多个工具示例,涵盖了不同的应用场景,如:
- example/tools.py: 基础工具示例,包含 BMI 计算和天气查询。
- podcast_maker/tools.py: 播客制作工具,可以根据标题和文章生成播客视频。
- pr-reviewer/tools.py: GitHub Pull Request 评审工具,可以对 PR 进行代码评审。
这些示例旨在帮助开发者理解如何利用 MCP 服务器向 LLM 客户端提供工具能力,扩展 LLM 的功能。
主要功能点
- 工具注册与执行: 使用 '@mcp.tool()' 装饰器轻松注册 Python 函数为 MCP 工具,并通过 JSON-RPC 协议供 LLM 客户端调用。
- 标准输入/输出 (stdio) 传输: 示例服务器使用 stdio 作为传输协议,方便快速启动和测试。
- 异步工具支持: 使用 'async def' 定义异步工具,处理耗时操作,提高服务器性能。
- 环境变量配置: 部分工具(如播客制作和 PR 评审)依赖环境变量进行配置,例如 API 密钥和外部服务地址,体现了 MCP 服务器的灵活性和可配置性。
安装步骤
-
安装 Python 依赖: 确保你的 Python 环境中安装了必要的库,可以通过 pip 安装:
pip install httpx python-dotenv mcp-server # 假设 mcp-server 库可用,实际可能需要根据 mcp 框架的安装方式来定注意: 'mcp-server' 库的具体安装方式需要参考 'FastMCP' 框架的文档。如果 'FastMCP' 是项目的一部分,可能不需要单独安装,只需确保 'mcp' 目录在 Python 路径中。
-
配置环境变量 (可选): 'podcast_maker' 和 'pr-reviewer' 工具需要环境变量。你需要创建 '.env' 文件,并根据工具的需求配置以下环境变量。例如,对于 'podcast_maker/tools.py',你需要在 '.env' 文件中配置 'MAKER_ENDPOINT', 'LLM_ENDPOINT', 'LLM_APIKEY', 'TTS_ENDPOINT', 'SPEAKER_1', 'SPEAKER_2' 等。 对于 'pr-reviewer/tools.py',需要配置 'FLOWS_ENDPOINT', 'LLM_ENDPOINT', 'LLM_APIKEY', 'LLM_CTX_SIZE'。 具体环境变量的含义请参考工具代码中的注释或相关文档。
服务器配置
MCP 客户端需要配置服务器的启动命令和参数才能连接到 MCP 服务器。以下是针对每个示例工具的服务器配置信息(JSON 格式):
1. 基础工具示例 (example/tools.py)
{ "server_name": "example-tools-server", "command": "python", "args": ["example/tools.py", "<OpenWeatherMap_API_Key>"], "description": "提供 BMI 计算和天气查询工具的示例服务器。", "transport": "stdio" }
参数注释:
- 'example/tools.py': 工具服务器脚本的路径。
- '<OpenWeatherMap_API_Key>': 需要替换为你的 OpenWeatherMap API 密钥。天气查询工具 'fetch_weather' 需要此 API 密钥才能访问天气数据。
2. 播客制作工具 (podcast_maker/tools.py)
{ "server_name": "podcast-maker-server", "command": "python", "args": ["podcast_maker/tools.py"], "description": "提供播客制作工具的服务器。需要配置环境变量。", "transport": "stdio" }
参数注释:
- 'podcast_maker/tools.py': 播客制作工具服务器脚本的路径。
- 环境变量: 此服务器依赖环境变量进行配置,请确保在运行前已配置好 '.env' 文件。
3. PR 评审工具 (pr-reviewer/tools.py)
{ "server_name": "pr-reviewer-server", "command": "python", "args": ["pr-reviewer/tools.py"], "description": "提供 GitHub PR 评审工具的服务器。需要配置环境变量。", "transport": "stdio" }
参数注释:
- 'pr-reviewer/tools.py': PR 评审工具服务器脚本的路径。
- 环境变量: 此服务器依赖环境变量进行配置,请确保在运行前已配置好 '.env' 文件。
基本使用方法
- 启动服务器: 在 MCP 客户端中,根据上述配置信息启动相应的 MCP 服务器。 例如,对于 'example-tools-server',客户端会执行命令 'python example/tools.py <Your_API_Key>'。
- 客户端调用工具: 客户端通过 JSON-RPC 协议向 MCP 服务器发送请求,调用已注册的工具。 例如,要调用 'calculate_bmi' 工具,客户端需要发送包含工具名 'calculate_bmi' 和参数 'weight_kg' 和 'height_m' 的 JSON-RPC 请求。 具体请求格式请参考 MCP 协议文档。
- 接收响应: MCP 服务器执行工具后,会将结果通过 JSON-RPC 响应返回给客户端。
示例工具调用 (假设使用 MCP 客户端 CLI 工具):
-
BMI 计算:
mcp-client call calculate_bmi --server-name example-tools-server --weight_kg 70 --height_m 1.75 -
天气查询:
mcp-client call fetch_weather --server-name example-tools-server --city London -
播客制作:
mcp-client call make_podcast --server-name podcast-maker-server --title "My First Podcast" --article "This is the article content for my first podcast." -
PR 评审:
mcp-client call review --server-name pr-reviewer-server --pr_url "https://github.com/owner/repo/pull/123"
注意: 以上 'mcp-client call' 命令仅为示例,实际 MCP 客户端的命令和使用方式可能有所不同,请参考你使用的 MCP 客户端的文档。
信息
分类
开发者工具