Token导航 LogoToken导航TokenDH.com
mcpcpp (Nlpresearchai) logo
AI代理未说明官方级别未说明来源级核验

mcpcpp (Nlpresearchai)

MCP Server

一个现代的C++实现的模型上下文协议库,用于构建具有外部工具集成的AI应用程序。

工具数

0

提示词数

0

GitHub Stars

6

资源数

0
C++开发工具ClaudeAI工具集成Claude

安装说明

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

作者 / 组织

nlpresearchai

提供方

nlpresearchai

最后核验

2026/5/17 20:19

快速接入

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

详细介绍

mcpcpp-C++模型上下文协议库

![License: MIT](https://opensource.org/licenses/MIT) ![C++17](https://en.cppreference.com/w/cpp/17) ![CMake](https://cmake.org/)

现代C++实现 模型上下文协议(MCP) 用于构建具有外部工具集成的AI驱动应用程序。

🚀 特性

  • 完全支持MCP协议 -基于JSON-RPC 2.0的协议(v2024-11-05)
  • 双重运输 -STDIO和SSE/HTTP模式
  • 工具 -将C++函数注册为AI可调用工具
  • 资源 -提供数据、配置和文件
  • 提示 -提供可重用的提示模板
  • 客户端库 -从C连接到MCP服务器++
  • 动态配置 -从JSON配置文件加载工具
  • 仅标题选项 -易于集成
  • 现代C++17 -类型安全高效

📦 快速开始

安装

git clone https://github.com/nlpresearchai/mcpcpp.git
cd mcpcpp
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .
sudo cmake --install .

基本用法

#include 

int main() {
    // Create server
    mcp::MCPServer server("my-server", "1.0.0");
    
    // Add a tool
    server.add_tool(
        "add",
        "Add two numbers",
        {
            {"type", "object"},
            {"properties", {
                {"a", {{"type", "number"}}},
                {"b", {{"type", "number"}}}
            }},
            {"required", {"a", "b"}}
        },
        [](const json& args) -> json {
            return {{"result", args["a"].get() + args["b"].get()}};
        }
    );
    
    // Run server (STDIO mode)
    server.run_stdio();
    
    return 0;
}

在您的项目中使用

CMakeLists.txt:

find_package(cppmcp REQUIRED)

add_executable(my_server main.cpp)
target_link_libraries(my_server PRIVATE cppmcp::cppmcp)

📚 文档

核心组件

1. MCP 服务器 (mcp_server.hpp)

创建向AI应用程序公开工具、资源和提示的服务器。

mcp::MCPServer server("server-name", "1.0.0");

// Add tool
server.add_tool("tool_name", "description", input_schema, 
    [](const json& args) { return result; });

// Add resource
server.add_resource("uri://resource", "name", "description", "mime-type",
    []() { return "data"; });

// Add prompt
server.add_prompt("prompt_name", "description", arguments,
    [](const json& args) { return prompt; });

// Run
server.run_stdio();  // or server.run_sse(port);

2. MCP客户端 (mcp_client.hpp)

连接到MCP服务器并调用工具。

mcp::MCPClient client("client-name", "1.0.0");

// Connect
client.connect_sse("http://localhost:8080");
client.initialize();

// List and call tools
auto tools = client.list_tools();
auto result = client.call_tool("add", {{"a", 5}, {"b", 3}});

// Read resources
auto resources = client.list_resources();
auto data = client.read_resource("config://app");

3. 动态服务器 (dynamic_mcp_server.hpp)

从JSON文件加载服务器配置。

#include 

dynamic_mcp::ConfigLoader loader("tasks_config.json");
loader.load();

// Server is automatically configured from JSON

📖 例子

请参阅 examples/ 目录:

  • simple_server.cpp -最小MCP服务器
  • server_with_tools.cpp -具有多种工具、资源和提示的服务器
  • dynamic_server.cpp -配置驱动服务器
  • client_example.cpp -MCP客户端使用情况

建筑示例

cd build
cmake .. -DCPPMCP_BUILD_EXAMPLES=ON
cmake --build .
./examples/simple_server stdio
./examples/server_with_tools sse 8080

🏗️ 项目结构

mcpcpp/
├── include/cppmcp/          # Public headers
│   ├── mcp_server.hpp       # Server API
│   ├── mcp_client.hpp       # Client API
│   └── dynamic_mcp_server.hpp  # Dynamic configuration
├── src/                     # Implementation
│   ├── mcp_server.cpp
│   ├── mcp_sse.cpp
│   ├── mcp_client.cpp
│   └── dynamic_mcp_server.cpp
├── examples/                # Usage examples
├── tests/                   # Unit tests
├── docs/                    # Documentation
└── CMakeLists.txt          # Build configuration

🛠️ 建筑

需求

  • C++17 编译器(GCC 7+、Clang 5+、MSVC 2017+)
  • CMake 3.14+
  • libcurl (用于HTTP/SSE支持)

依赖关系(由CMake自动获取):

CMake选项

-DCPPMCP_BUILD_EXAMPLES=ON   # Build examples (default: ON)
-DCPPMCP_BUILD_TESTS=ON      # Build tests (default: ON)
-DCPPMCP_BUILD_SHARED=ON     # Build shared library (default: ON)
-DCPPMCP_BUILD_STATIC=ON     # Build static library (default: ON)

Ubuntu/Debian

sudo apt-get install build-essential cmake libcurl4-openssl-dev

macOS

brew install cmake curl

🧪 测试

cd build
cmake .. -DCPPMCP_BUILD_TESTS=ON
cmake --build .
ctest

🔌 与AI客户端集成

克劳德桌面

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "cppmcp-example": {
      "command": "/path/to/build/examples/simple_server",
      "args": ["stdio"]
    }
  }
}

自定义Python客户端

import httpx
import json

# Connect to SSE server
response = httpx.post(
    "http://localhost:8080/message",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "initialize",
        "params": {
            "protocolVersion": "2024-11-05",
            "capabilities": {},
            "clientInfo": {"name": "python-client", "version": "1.0"}
        }
    }
)
print(response.json())

📊 演出

  • 低延迟 -直接C++执行,无Python开销
  • 高吞吐量 -每秒处理数千个请求
  • 内存效率高 -最小的分配,优化的数据结构
  • 异步就绪 -非阻塞SSE连接

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

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

🔗 相关项目

📬 联系

  • 问题:
  • 讨论:

⭐ 明星历史

如果你觉得这个项目有帮助,请考虑给它一颗星!

______________________________________________________________________

建于❤️ 面向AI和C++社区

目录标签

目录标签

C++开发工具ClaudeAI工具集成本地部署C++库JSON-RPC模型上下文协议

支持客户端

Claude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP