mcpField
C
CPP MCP-SERVER

CPP MCP-SERVER

本地服务
github.com/peppemas开发工具5136 周前更新

关于 CPP MCP-SERVER

CPP MCP-SERVER 是一个用 C++ 实现的 MCP 服务,采用可插拔的模块架构,通过动态加载插件扩展功能。它适合需要在 C++ 环境中构建或扩展 MCP 服务的开发者。

主要功能

  1. 01从目录动态加载插件
  2. 02支持 Stdio、SSE 和 HttpStream 传输
  3. 03支持 Prompts 与 Tools 能力
  4. 04命令行配置服务名、插件与日志目录

适用场景

  1. 01在 C++ 项目中提供 MCP 服务
  2. 02通过插件扩展自定义工具
  3. 03在 Claude Code 或 Claude Desktop 中接入本地服务

MCP 相关

该服务作为 MCP 服务端,通过 Resources、Prompts 和 Tools 等能力向 MCP 客户端提供功能,部分资源模板尚不支持。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

CPP MCP-SERVER

采用可插拔模块架构的 Model Context Protocol 服务 C++ 实现。

服务资源提示词工具采样通知根目录征询
MCP-SERVER✅*✅✅❌✅**❌❌

* 暂不支持资源模板

** 部分支持

Claude Code 配置

claude mcp add --transport http cpp_mcp_server http://localhost:8080/mcp

日志目录设置

默认情况下,MCP 服务会将日志写入 ./logs 目录(必须已存在) 你可以使用 -l 命令行选项将日志重定向到首选目录。

支持的传输方式

传输方式支持授权
Stdio✅❌
SSE✅❌
HttpStream✅❌

支持的平台

平台支持编译器
Windows✅MINGW64
Ubuntu Linux✅GCC
Mac OS✅GCC

如何编译

在本地计算机上克隆仓库

git clone https://github.com/peppemas/mcp_server.git

编译

cd mcp_server
mkdir build
cd build
cmake ..
make

MCP 服务架构

MCP 服务旨在实现 Model Context Protocol,提供模块化且可扩展的架构。以下是项目架构概览:

核心组件
  1. 服务核心:
    服务的核心组件,负责初始化和管理所有主要功能,包括与客户端通信、日志记录和插件管理。

  2. 命令行界面:
    提供用于配置的命令行参数:

    • -n:指定要向客户端公开的服务名称。(可选)
    • -p:设置插件目录的路径,以便搜索插件(也会搜索子目录)。
    • -l:设置日志目录的路径。
  3. 插件系统:
    服务旨在从指定目录(-p 参数)动态加载插件。每个插件都会扩展服务的功能,无需修改核心代码库即可支持未来的扩展。

  4. 日志模块:
    日志由集中管理,并存储在 -l 参数指定的目录中。这有助于调试和监控服务活动。

执行流程
  1. 初始化:

    • 服务启动时会解析命令行参数,以配置服务名称、插件目录和日志目录。
    • 初始化日志,并准备插件系统。
  2. 加载插件:

    • 识别指定目录中的插件并动态加载。
    • 初始化每个插件,并将其注册到服务。
  3. 处理客户端请求:

    • 服务监听传入的客户端连接。
    • 服务根据已实现的 Model Context Protocol 处理请求,并依赖已注册的插件扩展功能。
  4. 错误处理:

    • 启动或运行期间发生的错误会记录在日志目录中,确保服务运行尽可能不受影响。
插件扩展性

MCP 服务通过插件系统实现扩展,开发者无需修改核心逻辑即可扩展服务功能。插件是动态加载的库,可根据操作系统以不同方式实现:

  • 在 Windows 上:插件编译为 .dll 文件。
  • 在 Linux/MacOS 上:插件编译为 .so 或 .dylib(共享对象)文件。
示例插件
  1. Weather Plugin:
    Weather 插件允许服务端提供与天气相关的功能。该插件可以处理与天气数据相关的请求,例如当前气温、天气预报和其他气象信息。插件从第三方 API 获取数据,以确保信息准确且及时。它展示了如何扩展 MCP 服务,以提供需要集成外部数据的服务。

  2. Sleep Plugin:
    Sleep 插件在服务端的处理流水线中加入延迟或“休眠”功能。这有助于模拟响应延迟,或管理协议中的定时操作。开发者可以利用此插件构建和测试与基于时间的操作相关的功能,而无需更改服务端的核心行为。它展现了自定义插件如何满足特定的小众用例。

  3. Code Review Plugin:
    Code Review 插件旨在协助开发者进行自动化代码审查。该插件会分析提交到服务端的代码,并提供有用的反馈,例如识别潜在错误、代码异味和优化机会。它遵循标准编码实践,并可配置为执行特定的风格指南(例如 Google C++ Style Guide)。此外,它支持多语言检查,确保兼容各种编程语言。该插件可以与版本控制系统集成,直接获取代码变更以供评估,因此是协作开发工作流中的实用工具。

Claude Desktop 配置

{
  "mcpServers": {
    "mcp-server": {
      "command": "C:\\mcp-server\\mcp_server.exe",
      "args": [
        "-n","developer-server",
        "-l","C:\\mcp-server\\logs",
        "-p","C:\\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"
      }      
    }
  }
}

注意:在 "env" 块中,你可以向插件传递参数 e

待办事项

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。