使用说明
项目简介
本项目 'MCP_Demo' 仓库包含一个基于 Model Context Protocol (MCP) 的时间工具服务器示例。该服务器名为 'mcp-time',通过 MCP 协议向客户端提供两个主要的时间相关工具:
- 获取当前时间 (get_current_time): 允许客户端查询指定时区的当前时间。
- 时区转换 (convert_time): 允许客户端将指定时间从一个时区转换为另一个时区。
此服务器旨在演示如何使用 MCP 框架构建工具服务器,并与 LLM 客户端进行交互,使其具备时间相关的外部功能。
主要功能点
- 提供时间工具: 实现了获取当前时间和时区转换两个实用工具。
- MCP 协议支持: 完全遵循 MCP 协议规范,使用 JSON-RPC 进行通信。
- Stdio 传输: 使用标准输入输出 (Stdio) 作为传输协议,简化部署和运行。
- 易于理解的示例: 代码结构清晰,注释完善,适合学习和理解 MCP 服务器的实现方式。
安装步骤
- 克隆仓库: 将 'MCP_Demo' 仓库克隆到本地。
git clone https://github.com/LaynePeng/MCP_Demo.git cd MCP_Demo - 安装 Python 依赖: 服务器端和客户端都使用 Python 开发,需要安装依赖库。请确保你的 Python 环境中已安装 'tzdata' 包,可以通过以下命令安装:
如果提示 'tzdata' 已安装,则无需重复安装。pip install tzdata pip install -r requirements.txt
服务器配置
MCP 客户端需要配置服务器的启动信息才能连接到 'mcp-time' 服务器。配置信息通常在客户端的 'config.json' 文件中 (例如本仓库的 'config.json')。 你需要在 'mcp_servers' 列表中添加或修改服务器配置。
以下是一个 'mcp_servers' 配置示例,用于连接到 'mcp-time' 服务器:
{ "mcp_servers": [ { "name": "time_server", // 服务器名称,客户端用以标识和引用 "command": "python", // 启动服务器的命令,这里使用 python 解释器 "args": ["mcp_server_time/server.py"], // 启动命令的参数,指向服务器脚本 server.py "env": {} // 环境变量,默认为空 } ] }
配置参数说明:
- name: 服务器的名称,可以自定义,客户端通过此名称引用服务器。例如,可以设置为 "time_server" 或 "my_time_tools"。
- command: 启动服务器程序的可执行命令。对于 Python 服务器,通常是 'python' 或 'python3',确保该命令在你的系统 PATH 环境变量中。
- args: 一个字符串数组,包含传递给 'command' 的命令行参数。对于 'mcp-time' 服务器,需要指定服务器脚本的路径 'mcp_server_time/server.py'。
- env: 一个 JSON 对象,用于设置服务器程序运行时的环境变量。如果不需要特殊环境变量,可以留空 '{}'。
注意: 请根据你的实际 Python 环境和脚本路径,调整 'command' 和 'args' 配置。
基本使用方法
-
启动 MCP 时间服务器: 无需手动启动 'mcp-time' 服务器。当客户端程序 (例如 'client.py' 或 'main.py') 运行时,它会自动根据 'config.json' 中的配置启动 'mcp-time' 服务器。
-
运行 MCP 客户端: 在终端中,导航到仓库根目录 ('MCP_Demo'),然后运行 'client.py' 或 'main.py' 客户端程序。 例如,运行 'client.py':
python client.py或者运行 'main.py':
python main.py -
与客户端交互: 客户端启动后,会显示 "MCP Client Started!" 提示符,你可以输入自然语言查询。客户端会将查询发送给 LLM 模型,并根据需要调用 'mcp-time' 服务器提供的工具来获取时间信息。
例如,在客户端中输入查询:
Query: 现在纽约时间几点?客户端会调用 'mcp-time' 服务器的 'get_current_time' 工具,并将时区设置为 "America/New_York",然后将工具返回的结果整合到 LLM 的回复中,最终输出纽约的当前时间。
你也可以尝试其他查询,例如时区转换:
Query: 下午3点伦敦时间是东京几点?输入 'quit' 可以退出客户端程序。
代码修改提示 (README 中提及):
仓库的 'README.md' 提到 "调用写死了,记得改" 以及 "都是拿已有开源的魔改的"。 这意味着 'client.py' 和 'main.py' 中的某些配置或调用可能需要根据你的实际使用场景进行调整。 例如,'config.json' 中的模型 ('model')、API 密钥 ('api_key')、基础 URL ('base_url') 以及系统提示 ('system_prompt') 需要替换为你自己的 OpenAI 或其他 LLM 服务的配置。
尽管代码是实验性质的,但它清晰地演示了 MCP 客户端如何与 MCP 服务器交互,并利用服务器提供的工具来增强 LLM 的能力。
信息
分类
AI与计算