使用说明
项目简介
Sprout MCP Server Demo 是一个基于 Model Context Protocol (MCP) 的服务器示例,它是 Sprout Recipes 食谱分享平台的一部分。此 MCP 服务器旨在向 LLM (大型语言模型) 客户端提供食谱数据和天气信息等上下文信息和功能。它展示了如何使用 MCP 框架来管理资源、注册工具和定义 Prompt 模板,从而支持 LLM 应用进行上下文感知的交互。服务器包含用于获取天气预警和预报的工具,以及用于访问食谱详细信息的资源。
主要功能点
- 资源管理: 公开食谱 Schema 和数据作为资源 (Resources),允许 MCP 客户端查询食谱字段信息和食谱数据。
- 工具执行: 提供工具 (Tools) 以从国家气象局 API 获取实时的天气预警和天气预报信息。
- Prompt 模板: 包含用于分析食谱数据的 Prompt 模板 (Prompts),支持定制化的 LLM 交互模式。
- JSON-RPC 通信: 使用 JSON-RPC 协议通过 Stdio 传输协议与 MCP 客户端进行通信。
安装步骤
- 克隆仓库: 使用以下命令克隆 GitHub 仓库到本地:
git clone https://github.com/PoliteVincent/sprout_demo.git - 进入 mcpServer 目录: 导航到仓库中的 'mcpServer' 目录:
cd sprout_demo/mcpServer - 安装依赖: 如果需要,安装项目依赖。根据代码中的 import 语句,可能需要安装 'fastmcp' 和 'httpx' 库(尽管提供的代码看起来像是自包含的,使用了 'fastmcp' 框架):
pip install fastmcp httpx
服务器配置
为了使 MCP 客户端能够连接到此服务器,需要配置服务器的启动命令。由于此服务器使用 'stdio' 传输协议,客户端的 MCP 服务器配置信息(JSON 格式)应如下所示:
{ "serverName": "sprout_recipe_mcp_server", "command": "python", "args": ["recipe.py"] }
或 (如果使用天气工具):
{ "serverName": "sprout_weather_mcp_server", "command": "python", "args": ["weather.py"] }
配置说明:
- 'serverName': MCP 服务器的自定义名称,客户端使用此名称来标识和管理服务器实例 (例如: "sprout_recipe_mcp_server" 或 "sprout_weather_mcp_server")。
- 'command': 执行服务器脚本的命令,此处为 'python',表示使用 Python 解释器来运行脚本。
- 'args': 传递给命令的参数列表。
- '["recipe.py"]': 运行 'recipe.py' 脚本,启动提供食谱相关资源和工具的 MCP 服务器。
- '["weather.py"]': 运行 'weather.py' 脚本,启动提供天气相关工具的 MCP 服务器。 注意: 你需要根据需要的功能选择运行 'recipe.py' 或 'weather.py' 作为 MCP 服务器。如果需要同时使用食谱和天气功能,则需要配置并运行两个独立的 MCP 服务器实例,每个实例分别对应一个脚本。
基本使用方法
- 启动 MCP 服务器: 在 MCP 客户端配置中,根据上述 “服务器配置” 部分设置命令和参数。客户端启动时,将执行配置的命令(例如 'python recipe.py' 或 'python weather.py'),从而启动 MCP 服务器。
- 客户端发送请求: MCP 客户端通过 stdio 向服务器发送 JSON-RPC 请求,以访问资源、调用工具或获取 Prompt 模板。
- 示例:
- 要使用 'recipe.py' 中的 'get_recipe_by_id' 工具,客户端需要构造一个符合 JSON-RPC 规范的请求,指定工具名称 ('get_recipe_by_id') 和参数 (例如 'id' 和 'fields'),并通过 stdio 发送给服务器。
- 同样,要访问 'recipe.py' 中定义的 'schema://recipe' 资源,客户端需要发送资源请求到服务器。
信息
分类
网页与API