项目简介
本项目 '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++ 编译环境):
-
克隆仓库:
git clone https://github.com/peppemas/mcp_server.git cd mcp_server -
创建 build 目录并进入:
mkdir build cd build -
使用 CMake 生成构建文件:
cmake .. -
编译项目:
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' 等)需要参考插件自身的文档说明。
基本使用方法
-
启动服务器: 在 MCP 客户端中配置好服务器信息后,启动 MCP 客户端,客户端会自动尝试连接并启动 'mcp_server'。或者,你也可以直接在命令行运行编译生成的可执行文件,例如:
./path/to/mcp_server/build/src/Release/mcp_server -n developer-server -l ./logs -p ./plugins -
客户端交互: 一旦服务器成功启动并与客户端建立连接,客户端就可以通过 MCP 协议与服务器进行通信,例如:
- 请求资源列表 ('resources/list')
- 读取特定资源 ('resources/read')
- 请求工具列表 ('tools/list')
- 调用特定工具 ('tools/call')
- 请求 Prompt 列表 ('prompts/list')
- 获取特定 Prompt ('prompts/get')
具体的请求格式和参数需要参考 MCP 协议规范以及各个插件提供的功能说明。
-
查看日志: 服务器运行日志会保存在 '-l' 参数指定的日志目录中,用于监控服务器状态和排查问题。
注意: 此服务器主要通过标准输入输出与客户端通信,启动后通常在后台运行,没有图形界面。你需要使用支持 MCP 协议的客户端(如 Claude Desktop)才能与之交互。
信息
分类
AI与计算