项目简介

本项目 'mcp_server' 是一个用 C++ 编写的 Model Context Protocol (MCP) 服务器实现。它旨在为大型语言模型(LLM)客户端提供一个标准化的上下文服务后端。通过插件化的架构,服务器可以轻松扩展资源管理、Prompt模板和工具执行等功能,满足多样化的应用需求。

主要功能点

  • 资源 (Resources) 管理: 支持通过插件动态扩展和管理各种类型的数据资源,并向客户端提供数据访问接口。
  • Prompt 模板 (Prompts) 定义: 允许插件注册和管理 Prompt 模板,支持客户端请求特定 Prompt 以进行定制化的 LLM 交互。
  • 工具 (Tools) 注册与执行: 支持插件注册外部工具,并允许客户端通过服务器调用这些工具,扩展 LLM 的功能边界。
  • 插件化架构: 采用模块化设计,功能通过插件动态加载,易于扩展和维护。资源、Prompt 和工具均以插件形式提供。
  • 标准输入输出 (Stdio) 传输: 使用 Stdio 作为默认通信协议,简化部署和集成。
  • 命令行配置: 支持通过命令行参数配置服务器名称、插件目录和日志目录。

安装步骤

由于 'mcp_server' 是一个 C++ 项目,你需要先进行编译才能运行。以下是基本的编译步骤(假设你已安装 CMake 和 C++ 编译环境):

  1. 克隆仓库:

    git clone https://github.com/peppemas/mcp_server.git
    cd mcp_server
  2. 创建 build 目录并进入:

    mkdir build
    cd build
  3. 使用 CMake 生成构建文件:

    cmake ..
  4. 编译项目:

    cmake --build . --config Release

    编译成功后,可执行文件 'mcp_server' (Windows 下为 'mcp_server.exe') 将会在 'build/src/Release' (或 'build/src/Debug' 如果使用 Debug 模式编译) 目录下生成。

服务器配置

MCP 服务器主要通过命令行参数进行配置。以下是一个配置示例,展示了如何在 MCP 客户端(如 Claude Desktop)中配置 'mcp_server':

{
  "mcpServers": {
    "developer-server": {  // 服务器名称,客户端用以识别和连接
      "command": "path/to/mcp_server/build/src/Release/mcp_server", // MCP 服务器可执行文件的路径
      "args": [  // 启动参数
        "-n", "developer-server",  // 指定服务器名称为 "developer-server"
        "-l", "path/to/mcp_server/logs",  // 指定日志文件存储目录
        "-p", "path/to/mcp_server/plugins"  // 指定插件目录
      ],
      "env": {  // 环境变量 (可选,根据插件需求配置)
        "CUSTOM_API_KEY_1": "your-api-key-here",
        "CUSTOM_API_KEY_2": "your-api-key-here",
        "SAVE_DIR": "/path/to/save/directory"
      }
    }
  }
}

参数说明:

  • 'command': MCP 服务器可执行文件的绝对路径。请根据你的实际编译输出路径进行修改。
  • 'args': 传递给服务器的命令行参数,包括:
    • '-n <服务器名称>': 设置服务器的名称,客户端会使用此名称来连接。
    • '-l <日志目录>': 指定服务器日志文件存放的目录。
    • '-p <插件目录>': 指定服务器加载插件的目录。

插件配置:

插件通常放置在 '-p' 参数指定的插件目录中。'mcp_server' 会在启动时自动加载这些插件,从而扩展服务器的功能。具体的插件配置(如环境变量 'env' 中的 'CUSTOM_API_KEY_1' 等)需要参考插件自身的文档说明。

基本使用方法

  1. 启动服务器: 在 MCP 客户端中配置好服务器信息后,启动 MCP 客户端,客户端会自动尝试连接并启动 'mcp_server'。或者,你也可以直接在命令行运行编译生成的可执行文件,例如:

    ./path/to/mcp_server/build/src/Release/mcp_server -n developer-server -l ./logs -p ./plugins
  2. 客户端交互: 一旦服务器成功启动并与客户端建立连接,客户端就可以通过 MCP 协议与服务器进行通信,例如:

    • 请求资源列表 ('resources/list')
    • 读取特定资源 ('resources/read')
    • 请求工具列表 ('tools/list')
    • 调用特定工具 ('tools/call')
    • 请求 Prompt 列表 ('prompts/list')
    • 获取特定 Prompt ('prompts/get')

    具体的请求格式和参数需要参考 MCP 协议规范以及各个插件提供的功能说明。

  3. 查看日志: 服务器运行日志会保存在 '-l' 参数指定的日志目录中,用于监控服务器状态和排查问题。

注意: 此服务器主要通过标准输入输出与客户端通信,启动后通常在后台运行,没有图形界面。你需要使用支持 MCP 协议的客户端(如 Claude Desktop)才能与之交互。

信息

分类

AI与计算