项目简介
cpp-mcp 框架是 Model Context Protocol (MCP) 协议的 C++ 实现,旨在为 AI 模型和智能代理提供一个标准化的接口,用于访问各种资源、工具和服务。该框架遵循 2024-11-05 版本的 MCP 基础协议规范,实现了 MCP 服务器的核心功能。
主要功能点
- JSON-RPC 2.0 通信: 基于 JSON-RPC 2.0 标准的请求/响应通信机制。
- 资源抽象: 提供文件、API 等资源的标准化接口,方便 LLM 应用访问和管理数据。
- 工具注册: 支持注册和调用外部工具,扩展 LLM 的能力边界。
- 可扩展架构: 框架设计易于扩展,可以方便地添加新的资源类型和工具。
- 多传输协议支持: 支持 HTTP 和标准输入/输出 (stdio) 等多种通信方式。
安装步骤
-
克隆仓库
git clone https://github.com/hkr04/cpp-mcp.git cd cpp-mcp git submodule --init --recursive # 如果需要构建测试 -
使用 CMake 构建
cmake -B build cmake --build build --config Release或者,如果需要构建包含测试的版本:
cmake -B build -DMCP_BUILD_TESTS=ON cmake --build build --config Release构建成功后,在 'build/examples/Release' 目录下可以找到示例服务器 'server_example' 和客户端 'client_example', 'stdio_client_example'。
启动服务器
cpp-mcp 框架本身是一个 C++ 库,你需要基于它构建 MCP 服务器。仓库中提供了示例服务器代码 'examples/server_example.cpp',你可以编译并运行它来启动一个 HTTP MCP 服务器。
-
编译 'server_example.cpp': 按照上述安装步骤编译项目后,'server_example' 可执行文件位于 'build/examples/Release' 目录。
-
运行 'server_example': 在终端中执行该程序,服务器默认监听 'localhost:8888'。
./build/examples/Release/server_example服务器启动后,会输出 "Starting MCP server at localhost:8888..." 等信息,表示服务器已成功启动并等待客户端连接。
MCP 客户端配置
MCP 客户端需要配置服务器的地址和端口才能连接到 cpp-mcp 服务器。以下是 HTTP 客户端连接到 'localhost:8888' 的配置示例 (非JSON格式,仅为配置说明):
服务器地址: localhost 服务器端口: 8888
如果使用 'stdio_client_example' 示例客户端,则需要配置 MCP 服务器的启动命令,例如:
服务器启动命令: "./build/examples/Release/server_example"
注意: cpp-mcp 框架本身不提供开箱即用的可执行 MCP 服务器,你需要使用其提供的库文件,并参考 'examples/server_example.cpp' 自行构建和配置你的 MCP 服务器应用。示例服务器默认注册了一些简单的工具(如时间、计算器等)和文件资源,你可以根据需要修改 'server_example.cpp' 或创建新的服务器程序来注册自定义的工具和资源。
基本使用方法
- 运行服务器: 按照 "启动服务器" 章节的说明运行 'server_example' 或你自定义的 MCP 服务器程序。
- 运行客户端: 编译并运行 'examples/client_example.cpp' 或 'examples/stdio_client_example.cpp' 示例客户端,或者使用任何兼容 MCP 协议的客户端连接到服务器。
- 客户端操作: 客户端程序通常会展示如何初始化连接、获取服务器信息、列出可用工具、调用工具和访问资源等操作。你可以参考示例代码和 MCP 协议文档,根据你的需求进行更复杂的操作。
信息
分类
开发者工具