项目简介

本仓库提供了一个非常简单的 MCP (Model Context Protocol) 服务器示例,名为 "simple-mcp"。它演示了如何使用 MCP 协议构建一个可以与 LLM (大型语言模型) 客户端交互的后端服务。这个服务器提供了一个名为 'mood' 的工具,可以回答关于服务器心情的问题,并托管了一个简单的文本资源供客户端访问。

主要功能点

  • 提供工具 (Tools): 实现了一个名为 'mood' 的工具。当客户端调用这个工具并提问关于心情的问题时,服务器会返回预设的开心回复。这模拟了 MCP 服务器提供外部功能的能力。
  • 托管资源 (Resources): 服务器托管了一个名为 'resource1' 的文本资源(内容为“测试”),客户端可以通过 MCP 协议读取这个资源的内容。这展示了 MCP 服务器管理和提供数据访问的能力。
  • 基于标准 MCP 协议: 使用 'mcp' Python 库构建,遵循 MCP 协议规范,可以与任何兼容 MCP 协议的客户端进行通信。
  • 使用 Stdio 传输协议: 服务器和客户端之间通过标准输入输出 (Stdio) 进行通信,简化了部署和运行。

安装步骤

  1. 克隆仓库

    git clone https://github.com/badboyf/simple-mcp.git
    cd simple-mcp
  2. 安装必要的 Python 库

    虽然示例代码中直接使用了 'mcp' 库,但通常来说,为了确保环境,建议创建一个虚拟环境并安装 'mcp' 库。

    # (可选) 创建虚拟环境
    python -m venv venv
    source venv/bin/activate  # 或 venv\Scripts\activate (Windows)
    
    # 安装 mcp 库 (如果尚未安装)
    pip install model-context-protocol

服务器配置

MCP 客户端需要配置 MCP 服务器的启动信息才能连接。对于 'simple-mcp' 示例,你需要在 MCP 客户端的配置中指定以下信息。这个配置通常是一个 JSON 格式的配置段,用于描述如何启动和连接到 MCP 服务器。

以下是针对 'simple-mcp' 服务器的 MCP 客户端配置示例:

{
  "mcpServers": {
    "mood": {  // 服务器名称,客户端用此名称引用
      "command": "python", // 启动服务器的命令
      "args": ["server.py"] // 启动服务器命令的参数,这里指定运行 server.py 文件
    }
  }
}

配置参数说明:

  • 'mcpServers': 定义可用的 MCP 服务器列表。
  • '"mood"': 服务器名称 (server name)。这是一个自定义的名称,用于在客户端配置中唯一标识这个 MCP 服务器。客户端在需要调用此服务器的功能时,会使用这个名称。例如,在 'main.py' 的配置中,'"mood"' 就是 'server_name'。
  • 'command': 启动命令 (command)。指定用于启动 MCP 服务器的可执行命令。对于 'simple-mcp' 来说,由于服务器是 Python 脚本 'server.py',所以启动命令是 'python'。
  • 'args': 命令参数 (args)。一个字符串数组,包含了启动命令需要的参数。对于 'simple-mcp',参数是 '["server.py"]',表示要执行的 Python 脚本文件是 'server.py'。

如何配置到MCP客户端:

具体的配置方法取决于你使用的 MCP 客户端。通常,客户端会读取一个配置文件(例如 'config.py' 中的 'mcp_hub' 变量),你需要在客户端的配置文件中添加或修改 'mcpServers' 部分,将上述 JSON 配置信息添加到客户端的配置中。

基本使用方法

  1. 启动 MCP 服务器: 在仓库根目录下,运行 'server.py' 脚本以启动 MCP 服务器。

    python server.py

    服务器启动后,会在控制台中保持运行状态,等待客户端连接和请求。

  2. 运行 MCP 客户端: 仓库中的 'main.py' 文件是一个简单的 MCP 客户端示例。你需要先配置 'config.py' 文件,例如设置 OpenAI API 相关的配置 (如果需要使用 LLM 功能),然后运行 'main.py'。

    # (可选) 配置 config.py 文件,例如设置 api_key, api_base, model 等 (如果 main.py 中使用了 LLM 功能)
    python main.py

    'main.py' 客户端会读取 'config.py' 中的 'mcp_hub' 配置,并尝试连接并使用 'mood' 服务器提供的工具和资源。你可以根据 'main.py' 的提示进行交互,例如输入 "你好吗" 来测试 'mood' 工具。

注意: 'main.py' 客户端示例使用了 Langchain 和 OpenAI,如果运行 'main.py' 遇到问题,请确保已经正确配置了 OpenAI API 并且安装了 'langchain_openai' 等相关库。本示例的核心是 'server.py' 提供的 MCP 服务器实现。

信息

分类

开发者工具