返回 MCP 目录
public公开dns本地运行

nativeMCP

一个基于C++的MCP系统实现,包含host、client和server组件,支持通过命令行与LLM交互并调用各类工具服务。

article

README

🚀 原生MCP系统简介及实现方案说明

本项目致力于实现一个原生的MCP(Multi-Component Platform)系统,该系统基于组件化架构设计,能有效管理各个服务组件,提供统一的交互接口,具备良好的扩展性和可维护性。

🚀 快速开始

要使用本系统,你需要完成以下步骤:

  1. 确保满足编译环境要求。
  2. 按照构建步骤进行编译。
  3. 进行相应的配置。
  4. 启动系统并查看功能演示日志输出。

✨ 主要特性

  • 基于组件化架构设计,包含Native HostClientServer核心模块。
  • MCP Server提供基础服务支持,实现组件间通信机制并定义统一调用规范。
  • 拥有多个Server Components示例,如cpp-timeserver-test
  • 依赖Qt Framework (6.8)cpp-httplib,提供跨平台开发和HTTP接口服务。

📦 安装指南

编译环境要求

  1. CMake
    # 检查cmake版本
    cmake --version
    
  2. Visual Studio 2022 Build Tools
  3. vcpkg依赖管理工具
    # 安装qt6-base和cpp-httplib
    vcpkg install qt6-base cpp-httplib
    

构建步骤

# 在项目根目录执行以下命令:
mkdir build && cd build
cmake ..
cmake --build .

⚠️ 重要提示

编译完成后会在./bin目录生成可执行文件

💻 使用示例

基础用法

启动系统:

# 运行MCP Host服务
bin/native-host --config config.json

高级用法

查看功能演示日志输出:

[2025-03-26T12:29:08.349 INFO] 调用MCP工具[cpp-time::getCurrentTime]:
{
    "datetime": "2025-03-26T12:29:08.346",
    "timezone": "Asia/Shanghai"
}

[2025-03-26T12:29:20.160 INFO] 调用MCP工具[server-test::getAvailableIP]:
{
    "ip_list": [
        "192.168.1.201",
        "192.168.1.202",
        "192.168.1.203"
    ]
}

[2025-03-26T12:30:07.784 INFO] 调用MCP工具[server-test::sendToIP]:
{
    "content": "当前时间为:2025-03-26T12:30:07.784",
    "receiver": "192.168.1.201"
}

[2025-03-26T12:30:07.786 INFO] 调用MCP工具[server-test::sendToIP]:
{
    "content": "当前时间为:2025-03-26T12:30:07.784",
    "receiver": "192.168.1.202"
}

📚 详细文档

系统基本组成

1. MCP Server
  • 职责
    • 提供基础服务支持
    • 实现组件之间的通信机制
    • 定义统一的调用规范
2. Server Components
  • 示例实现
    • cpp-time:提供时间相关服务,包括获取当前时间、等待指定时长等功能。
    • server-test:用于测试网络功能,支持获取可用IP地址和向指定IP发送数据。

配置说明

1. 基础配置
  • Config.json
    {
        "log_level": "info",
        "server_list": [
            {
                "name": "cpp-time",
                "binary_path": "bin/cpp-time-server"
            },
            {
                "name": "server-test",
                "binary_path": "bin/server-test"
            }
        ]
    }
    
2. 自定义服务器配置
  • 格式说明
    {
        "name": "服务器名称",
        "description": "功能描述",
        "methods": [
            {
                "method_name": "方法名",
                "parameters": [],
                "return_type": "返回类型"
            }
        ]
    }
    
  • 示例
    // 添加自定义服务器配置
    {
        "name": "custom-server",
        "binary_path": "bin/custom-server",
        "description": "自定义功能实现",
        "methods": [
            {
                "method_name": "custom_method",
                "parameters": ["param1", "param2"],
                "return_type": "JsonObject"
            }
        ]
    }
    

🔧 技术细节

技术依赖

  • Qt Framework (6.8)

    • 提供跨平台应用开发框架
    • 支持网络通信、线程管理等基础功能
  • cpp-httplib

    • 简单易用的C++ HTTP服务器库
    • 用于快速搭建HTTP接口服务

项目结构

.
├── bin/
│   ├── cpp-time-server
│   └── server-test
├── src/
│   ├── CMakeLists.txt
│   └── native-host.cpp
└── config.json
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端