使用说明

项目简介

本项目是一个基于Python实现的Model Context Protocol (MCP) 服务器演示,使用了Stdio作为传输协议。它展示了如何构建一个简单的MCP服务器,该服务器可以注册和执行工具,并与MCP客户端进行通信。此演示旨在帮助开发者理解MCP服务器的基本概念和实现方式。

主要功能点

  • 工具注册与执行: 服务器注册了两个示例工具:'calculator'(计算器)和 'weather'(天气查询)。客户端可以调用这些工具来执行相应的操作。
  • Stdio传输协议: 使用标准输入输出 (Stdio) 作为MCP客户端和服务器之间的通信通道,方便本地开发和调试。
  • JSON-RPC通信: 服务器和客户端之间通过JSON-RPC协议进行结构化数据交换,符合MCP协议规范。
  • 资源更新通知 (部分实现): 客户端代码中包含资源更新回调的注册和处理逻辑,尽管在服务器端此演示中资源管理功能可能较为基础。

安装步骤

  1. 克隆仓库: 首先,你需要克隆 GitHub 仓库到本地:
    git clone https://github.com/aws-samples/Sample-Model-Context-Protocol-Demos.git
  2. 进入目录: 导航到 Stdio 演示示例的目录:
    cd Sample-Model-Context-Protocol-Demos/modules/converse-client-server-stdio-demo-local
  3. 安装依赖 (如果需要): 虽然此示例可能依赖较少,但通常 Python 项目需要安装依赖。检查目录下是否有 'requirements.txt' 文件,如有则运行:
    pip install -r requirements.txt
    如果缺少 'mcp' 库,可能需要手动安装,例如 'pip install model-context-protocol-sdk' (请根据实际情况调整)。

服务器配置

MCP客户端需要配置连接到MCP服务器的信息。对于此 Stdio 演示,配置信息主要指定服务器的启动命令和参数。以下是客户端 ('app.py') 中使用的 'StdioServerParameters' 配置,你需要将其转换为 MCP 客户端所需的配置格式 (通常是 JSON 格式,但具体格式取决于 MCP 客户端实现):

{
  "serverName": "Demo Server",
  "transport": "stdio",
  "command": "python",
  "args": ["mcp_server.py"],
  "description": "使用 Python Stdio 启动的 MCP 服务器,提供计算器和天气查询工具。"
}

参数注释:

  • 'serverName': 服务器的名称,用于标识。
  • 'transport': 指定传输协议为 "stdio"。
  • 'command': 启动服务器的命令,这里是 'python',假设你的环境中可以直接运行 'python' 命令。
  • 'args': 传递给 'python' 命令的参数,这里指定运行 'mcp_server.py' 文件,即 MCP 服务器的 Python 脚本。
  • 'description': 对该服务器配置的简要描述,方便客户端用户理解。

注意: 实际 MCP 客户端的配置格式可能略有不同,上述 JSON 仅为示例,你需要根据你使用的 MCP 客户端的具体文档进行调整。关键是将 'command' 和 'args' 正确配置,以便客户端能够启动并连接到 'mcp_server.py'。

基本使用方法

  1. 启动 MCP 服务器: 在 'modules/converse-client-server-stdio-demo-local' 目录下,无需手动启动 'mcp_server.py'。客户端 'app.py' 会自动启动它。

  2. 运行 MCP 客户端: 在同一目录下,运行客户端程序 'app.py':

    python app.py
  3. 与 AI 助手对话: 程序启动后,你将在终端看到欢迎信息和可用的工具列表。你可以开始与 AI 助手进行对话。例如:

    • 你可以直接提问,如 "What is the weather in London?",AI 助手可能会调用 'weather' 工具来尝试回答。
    • 你可以要求进行计算,如 "Calculate 123 + 456",AI 助手可能会调用 'calculator' 工具。
    • 输入 'quit' 或 'exit' 可以退出程序。
  4. 观察工具调用: 在对话过程中,你可以观察终端输出,了解 AI 助手是否以及如何调用注册的工具。服务器端的日志 ('mcp_server.log' 和标准错误输出) 也会记录工具的调用信息,有助于理解服务器的运行情况。

提示:

  • 此演示中的 'weather' 工具和 'calculator' 工具都是模拟实现,'weather' 工具返回固定的天气信息,'calculator' 工具执行简单的数学运算。
  • 客户端 ('app.py') 使用了 'ConverseAgent' 和 'ConverseToolManager' 等类,展示了如何构建一个可以使用工具的对话 Agent。
  • 你可以修改 'mcp_server.py' 文件来添加或修改工具,并修改客户端代码来扩展 Agent 的功能。

信息

分类

开发者工具