Skip to content

mwz-iot/mcp-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCP Server

基于 C++17 实现的 MCP(Model Context Protocol)服务器框架,用于连接 AI 大模型与外部工具、资源和提示词模板。项目实现了 JSON-RPC 2.0 协议栈、HTTP/stdio 双传输层,以及 Tools、Resources、Prompts 三类 MCP 核心能力。

功能特性

  • JSON-RPC 2.0:支持 Request、Response、Error、Notification 等基础协议模型。
  • 双传输层:支持 stdio 和 HTTP 两种通信方式,适配本地进程通信和 Web 服务场景。
  • MCP Server Core:封装 MCP 初始化、工具列表、资源访问、提示词管理等核心流程。
  • Tools 工具系统:支持动态注册工具,内置 echo、calculate、get_time、get_weather、write_file 等示例工具。
  • Resources 资源系统:支持资源注册、列表查询和内容读取。
  • Prompts 提示词模板:支持参数化 Prompt 注册与消息生成。
  • 日志与配置:基于 spdlog 实现日志输出,支持 JSON 配置文件和命令行参数。
  • 工程化构建:使用 CMake + vcpkg 管理依赖。

技术栈

  • C++17
  • JSON-RPC 2.0
  • nlohmann-json
  • spdlog
  • cpp-httplib
  • CMake
  • vcpkg

目录结构

include/
  config/       配置模块
  json_rpc/     JSON-RPC 协议与传输层
  logger/       日志模块
  mcp/          MCP 类型与服务器核心
src/
  config/
  json_rpc/
  logger/
  mcp/
  main.cpp      统一服务入口
config/
  config.json   默认配置示例

构建

cmake -S . -B build
cmake --build build

使用方式

HTTP 模式:

./build/mcp_server --mode http --host 0.0.0.0 --port 8080

stdio 模式:

./build/mcp_server --mode stdio

同时启用 HTTP 和 stdio:

./build/mcp_server --mode both

使用配置文件:

./build/mcp_server --config config/config.json

配置示例

{
  "server": {
    "port": 8080
  },
  "log": {
    "level": "debug",
    "file": "logs/app.log"
  }
}

项目说明

本项目主要用于学习和实践 MCP 协议服务端的工程化实现,重点关注:

  • MCP 三大能力模块的抽象设计
  • JSON-RPC 协议的请求分发与错误处理
  • HTTP/stdio 双传输层的统一封装
  • C++ 项目的模块划分、配置管理、日志记录和构建流程

仓库中不包含任何真实密钥或私有配置。运行时请根据本地环境调整 config/config.json

About

基于 C++17 的 MCP Server,实现 JSON-RPC 2.0、HTTP/stdio 双传输层以及 Tools/Resources/Prompts 核心能力。

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages