|
cxxmcp 1.1.6
C++ MCP SDK
|
[
](LICENSE)
-brightgreen.svg) -brightgreen.svg)
生产就绪的 C++17 Model Context Protocol SDK —— 直接在原生 C++ 应用中嵌入 MCP server 和 client,完整覆盖协议能力,通过跨 SDK conformance 验证。
English version: README.md
| 领域 | 状态 |
|---|---|
| Protocol / JSON-RPC | Typed models、序列化、initialize 校验、raw escape hatch |
| Server SDK | tool/prompt/resource registry、typed handler、task-aware call、notification |
| Client SDK | HTTP、stdio、process stdio、async helper、roots、sampling、elicitation、tasks |
| Transports | stdio、process stdio、Streamable HTTP(有状态 session)、legacy SSE 兼容、WebSocket(自动重连) |
| Packaging | CMake find_package、Conan 2、vcpkg overlay、FetchContent / CPM |
| Peer/Service boundary | RMCP 风格 role-aware Peer<Role> 和 Service<Role> |
协议覆盖: tool、prompt、resource、resource template、completion、logging、roots、sampling、elicitation、task lifecycle、progress、cancellation,以及用于 vendor extension 的 raw JSON-RPC escape hatch。
Conformance: 基于官方 modelcontextprotocol/conformance runner(--suite all)验证。
| cxxmcp | RMCP | |
|---|---|---|
| Server | 109/110 (99%) | 48/95 (51%) |
| Client | 448/448 (100%) | — (runner 崩溃) |
完整结果见 conformance evidence。
cxxmcp 是具备完整协议覆盖、跨 SDK conformance 验证和多种 transport 选项的 release-candidate 质量 C++ MCP SDK。详见 conformance evidence 和 ecosystem maturity evidence。
从源码构建:
Quick Start 中的 client 示例使用 Streamable HTTP;如果要从源码构建该 client 路径,还需要加上 -DCXXMCP_ENABLE_HTTP=ON。
包管理器:conanfile.py(Conan 2)、packaging/vcpkg/ports/cxxmcp-sdk(vcpkg overlay)、packaging/xmake/(xmake)。详见 package consumption。
| Option | Default | 说明 |
|---|---|---|
CXXMCP_BUILD_SDK | ON | 构建聚合 SDK 层(protocol + client + server) |
CXXMCP_BUILD_CLIENT | OFF | 构建 MCP client library |
CXXMCP_BUILD_SERVER | OFF | 构建 MCP server library |
CXXMCP_BUILD_EXAMPLES | OFF | 构建示例 |
CXXMCP_BUILD_TESTS | BUILD_TESTING | 构建测试 |
CXXMCP_BUILD_BENCHMARKS | OFF | 构建 benchmark 可执行文件 |
CXXMCP_ENABLE_HTTP | OFF | 构建 HTTP/SSE transport(默认使用 bundled cpp-httplib,CXXMCP_USE_SYSTEM_DEPS=ON 时使用系统包) |
CXXMCP_ENABLE_OPENSSL | OFF | 启用 OpenSSL-backed HTTP/WebSocket TLS 支持 |
CXXMCP_ENABLE_WEBSOCKET | OFF | 构建 WebSocket transport(需要 CXXMCP_ENABLE_HTTP) |
CXXMCP_ENABLE_AUTH | OFF | 构建可选 OAuth 2.1 / DPoP auth target |
| Target | 用途 |
|---|---|
cxxmcp::protocol | MCP 协议模型和 JSON-RPC 序列化 |
cxxmcp::transport | Role-generic transport contract |
cxxmcp::handler | Client/server handler interface |
cxxmcp::peer | Role-aware execution boundary |
cxxmcp::service | Service lifecycle boundary |
cxxmcp::client | 可嵌入 MCP client SDK |
cxxmcp::server | 可嵌入 MCP server SDK |
cxxmcp::auth | 可选 OAuth 2.1 / DPoP contract(CXXMCP_ENABLE_AUTH=ON) |
cxxmcp::auth_openssl | 可选 OpenSSL-backed JOSE/JWT/DPoP helpers(CXXMCP_ENABLE_AUTH=ON,CXXMCP_AUTH_CRYPTO=OpenSSL) |
cxxmcp::sdk | 聚合 public SDK target |
find_package 即用源码树内示例覆盖 server/client peer、auth、tasks、elicitation 和 transport adapter。运行:
完整列表见 examples.md。独立仓库 cxxmcp-examples 通过外部 CMake 项目消费 SDK,覆盖更多高级场景。
cxxmcp 是正在准备 official SDK candidate 证据的社区 C++ MCP SDK。Peer/Service boundary、transport 层和 conformance gates 已接近 release candidate 状态。除非被 MCP maintainers 接受,否则它不是官方 MCP SDK。
MinGW UCRT64 GCC 和 MinGW CLANG64 Clang 作为 provisional、best-effort 编译器兼容性证据进行跟踪。这些目标不是 release-supported。compiler-compat workflow 在它们保持 provisional 期间以 continue-on-error: true 运行。