Token导航 LogoToken导航TokenDH.com
MCPServer.cpp logo
运维云端stdio官方级别未说明来源级核验

MCPServer.cpp

MCP Server

MCPServer.cpp 是一个高性能的C++实现的模型通信协议服务器,支持AI模型与外部工具之间的无缝通信,提供标准化的接口扩展模型能力。

工具数

0

提示词数

0

GitHub Stars

7

资源数

0
C++Docker跨平台

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

caomengxuan666

提供方

caomengxuan666

最后核验

2026/5/17 20:19

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 6666:6666 -v $(pwd)/plugins:/plugins -v $(pwd)/certs:/certs mcp-server

详细介绍

MCPServer.cpp

A high-performance C++ implementation of the Model Communication Protocol server

![C++20](https://en.cppreference.com/w/cpp/20) ![License](LICENSE) ![Build Status](https://github.com/caomengxuan666/MCPServer.cpp/actions)

语言版本

目录

引言

MCPServer.cpp是用现代C++编写的模型通信协议(MCP)的高性能、跨平台服务器实现。它实现了AI模型和外部工具之间的无缝通信,为扩展模型功能提供了标准化的接口。

服务器通过HTTP传输实现JSON-RPC 2.0协议,并支持常规请求响应和服务器发送事件(SSE)流,以进行实时通信。

特性

MCP图元支持矩阵

原始状态注释
工具✅ 完全支持在隔离插件环境中执行工具
提示✅ 基本支持提示模板和管理
资源✅ 基本支持向LLM公开数据和内容
采样🚧 计划基于LLM的采样操作
🚧 计划文件系统访问控制

核心功能

  • 全面实施模型通信协议(MCP)
  • 基于HTTP/HTTPS传输的JSON-RPC 2.0
  • 用于扩展功能的插件系统
  • 内置工具(echo、文件操作、HTTP请求、系统命令)
  • 带有服务器发送事件(SSE)的流式响应
  • 全面的日志记录和错误处理
  • 🚀 高性能:使用C++20构建,并使用mimalloc进行优化,以获得卓越的性能
  • 🔌 插件系统:具有动态插件加载的可扩展架构
  • 🌐 HTTP传输:完全支持HTTP/1.1,具有SSE流媒体功能
  • 📦 JSON-RPC 2.0:完全实现JSON-RPC 2.0规范
  • 🛠️ 内置工具:包括文件操作、HTTP请求和系统命令
  • 🧠 AI模型就绪:专为AI模型集成而设计
  • 🔄 异步I/O:由ASIO提供支持,实现高效并发处理
  • 📊 日志记录:使用spdlog进行全面日志记录
  • 📈 可扩展的:用于处理并发请求的多线程架构
  • 🌍 跨平台:适用于Windows、Linux和macOS
  • 📁 资源管理:通过资源原语向LLM公开数据和内容

建筑

MCPServer.cpp使用模块化架构,组件之间有明确的界限:

┌─────────────────────────────────────────────────────────────┐
│                      MCPServer.cpp                            │
├─────────────────────────────────────────────────────────────┤
│                   Transport Layer                           │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐  │
│  │ HTTP Server │  │  Stdio I/O  │  │   Other Protocols   │  │
│  └─────────────┘  └─────────────┘  └─────────────────────┘  │
├─────────────────────────────────────────────────────────────┤
│                    Protocol Layer                           │
│              ┌──────────────────────┐                       │
│              │    JSON-RPC 2.0      │                       │
│              └──────────────────────┘                       │
├─────────────────────────────────────────────────────────────┤
│                   Business Logic Layer                      │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐  │
│  │ Tool Reg.   │  │  Plugins    │  │ Request Processing  │  │
│  └─────────────┘  └─────────────┘  └─────────────────────┘  │
├─────────────────────────────────────────────────────────────┤
│                      Core Services                          │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐  │
│  │   Logger    │  │ Resources   │  │   Configuration   │  │
│  └─────────────┘  └─────────────┘  └─────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

核心组件

  1. 传输层:处理各种协议(HTTP、stdio等)上的通信
  2. 协议层:实现JSON-RPC 2.0消息解析和格式化
  3. 业务逻辑层:管理工具、插件和请求处理
  4. 核心服务:提供日志记录等基本服务

入门指南

先决条件

  • C++20兼容编译器(MSVC、GCC 10+、Clang 12+)
  • CMake 3.23或更高版本
  • Git

快速开始

  1. 克隆存储库:
   git clone https://github.com/caomengxuan666/MCPServer.cpp.git
   cd MCPServer.cpp
  1. 构建项目:
   mkdir build
   cd build
   cmake ..
   cmake --build .
  1. 运行服务器:
   ./bin/mcp-server++

服务器将在默认端口上启动并加载内置插件。

从源头构建

视窗

mkdir build
cd build
cmake ..
cmake --build . --config Release

Linux/macOS

mkdir build
cd build
cmake ..
make -j$(nproc)

编译选项

选项描述默认值
BUILD_TESTS构建单元测试ON
CMAKE_BUILD_TYPE构建类型(调试、发布等)发布

配置

配置 有关如何配置服务器的详细信息,请参阅第节。

认证

MCPServer++支持身份验证机制,以保护您的服务器免受未经授权的访问。看 作者.md 有关如何配置和使用身份验证的详细信息。

HTTPS和证书生成

MCPServer++支持通过HTTPS进行安全通信。 默认情况下,出于安全原因,HTTPS被禁用,必须在配置文件中手动启用。

要启用HTTPS,请执行以下操作:

  1. enable_https=1 在你的config.ini中
  2. 确保您有有效的SSL证书文件
  3. 配置所需的SSL文件路径

有两种方法可以生成用于开发和测试的SSL/TLS证书:

  1. 使用内置的\[generate_cert\](file:///D:/codespace/MCPServer%2B%2B/tools/generate_cert.cpp#L265-L411)工具(推荐)
  2. 使用OpenSSL命令行工具

有关这两种方法的详细说明,请参阅 HTTPS和证书生成 文档。

插件

MCPServer.cpp支持一个强大的插件系统,允许在不修改核心服务器的情况下扩展功能。插件是实现MCP插件接口的动态库。

官方插件

  • file_plugin:文件系统操作
  • http_plugin:HTTP客户端功能
  • safe_system_plugin:安全执行系统命令
  • example_stream_plugin:流数据示例

Python插件

MCPServer++现在通过新的Python SDK支持Python插件,使插件开发更加直观。Python插件被编译为动态库(DLL/SO),使用pybind11封装Python代码。

创建Python插件

要创建新的Python插件,请使用 plugin_ctl 工具:

./plugin_ctl create -p my_python_plugin

这将生成一个Python插件模板,该模板使用带有装饰器和辅助函数的新Python SDK。

Python插件功能

  • 基于装饰器的工具定义 @tool
  • 自动JSON处理
  • 流媒体工具支持
  • 参数验证助手
  • 易于与MCP协议集成

有关Python插件开发的详细信息,请参阅 Python插件文档.

插件开发

插件/README.md 有关开发自定义插件的详细信息。

api参考

服务器通过HTTP实现JSON-RPC 2.0协议。所有请求应发送至 /mcp 终点。

资源管理

MCPServer++为MCP资源原语提供基本支持,允许向LLM公开数据和内容。可以通过以下JSON-RPC方法访问资源:

  • resources/list:列出可用资源
  • resources/read:阅读特定资源的内容
  • resources/write:将内容写入特定资源(如果允许)

资源请求示例

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "resources/read",
  "params": {
    "name": "example.txt"
  }
}

资源响应示例

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": "This is the content of the example resource.",
    "contentType": "text/plain",
    "lastModified": "2025-05-13T10:00:00Z"
  }
}

示例工具请求(现有)

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools",
  "params": {}
}

示例工具响应(现有)

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    {
      "name": "read_file",
      "description": "Read a file",
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Path to the file to read"
          }
        },
        "required": ["path"]
      }
    }
  ]
}

Docker部署

构建并运行

  1. 多阶段构建 (图像大小优化为10-15MB)
   docker build -t mcp-server .
   docker run -p 6666:6666 -v $(pwd)/plugins:/plugins -v $(pwd)/certs:/certs mcp-server
  1. HTTPS配置 (需要安装证书目录)
   # Enable HTTPS by setting enable_https=1 in config.ini
   # Certificate files must be placed in /certs directory inside container
   docker run -p 6667:6667 -v $(pwd)/certs:/certs mcp-server

插件系统

  • 插件路径映射:容器插件目录为 /plugins,建议通过卷映射本地目录
  • 插件加载:支持运行时热加载(确保正确的文件权限)

图像优化

  • 基于最小 gcr.io/distroless/cc-debian12 基本图像
  • 静态链接+调试信息剥离(LTO优化)
  • 国内用户可以配置镜像加速器(见配置示例)

Docker Hub

Docker Hub上提供了预构建的Docker镜像:

您可以直接拉取并运行最新图像:

docker pull mgzy/mcp-server
docker run -p 6666:6666 -v $(pwd)/plugins:/plugins -v $(pwd)/certs:/certs mgzy/mcp-server

CI/CD管道

我们的项目使用GitHub Actions进行持续集成和部署。管道会自动在多个平台上构建和测试服务器:

支持的平台

  • Ubuntu 22.04 (GitHub Actions最新LTS)
  • Ubuntu 24.04 (GitHub Actions最新Ubuntu版本)
  • Windows服务器2022 (GitHub操作最新Windows)

构建变种版本

我们提供两种构建变体以满足不同的需求:

  1. 完整构建:包括所有库和开发标头
  2. 最小构建:仅包含可执行文件和基本文件(没有开发头文件或库)

包装格式

CI/CD管道生成多种格式的包:

  • 视窗:ZIP,NSIS安装程序(EXE)
  • Linux:DEB、RPM、焦油。GZ,ZIP

贡献

我们欢迎社区的贡献!请看 贡献.md 了解如何为这个项目做出贡献的指导方针。

开发设置

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

______________________________________________________________________

Built with ❤️ for the AI community

GitHub | Issues

目录标签

目录标签

C++Docker跨平台本地部署AI模型集成高性能服务器JSON-RPC2.0插件系统

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP