feat(ohos-native-mcp): native MCP protocol stack prototype with transport/context/security layers.
Host-verifiable C++ prototype for OpenHarmony Track 1 (native MCP protocol stack):
- Transport: MCP-over-IPC on Unix domain sockets with connection pooling; JSON-RPC 2.0 (initialize/tools/list/tools/call, batch, notifications). p50 latency down 67-91% vs a per-connection TCP baseline.
- Context efficiency: zstd compression + content-addressed LRU cache; 90-98.6% wire-byte reduction on realistic repeated-context workloads (worst case ~0%, reported honestly).
- Security: AES-256-GCM authenticated encryption (identity + confidentiality) plus HMAC scoped capability tokens; rejects unknown/forged/tampered/over-scope agents.
- CMake build, ctest suites, reproducible benchmark harness (demo/bench.txt), design and OHOS integration docs.
Signed-off-by: 林晨 (Leo Cheng) leo-cheng@vip.qq.com
Native MCP protocol stack prototype for the ubiquitous OS (OpenHarmony): MCP-over-IPC transport, context compression/caching, and built-in AEAD security.
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
ohos-native-mcp
原生 MCP 协议栈原型 —— 面向泛在操作系统(OpenHarmony)的 Model Context Protocol 传输/上下文/安全三层实现。
本仓库是 OpenHarmony 开源任务挑战赛「赛题一:泛在操作系统原生的 MCP 协议栈设计」的初赛源代码交付物,配套设计文档见
docs/(另有赛道设计文档MCP协议栈设计.md)。为什么要 OS 原生 MCP
MCP 把「语义层(JSON-RPC 2.0 的
initialize/tools/list/tools/call…)」与「传输层(stdio / SSE / Streamable-HTTP)」刻意解耦。现状传输在端侧多 Agent 同机互调场景下不划算:即便本机也要走 loopback TCP + HTTP 报文解析 + 每会话建连,大上下文还要反复 JSON 编解码与memcpy。本原型保持语义层与生态兼容,只把传输层换成 OS 原生信道(此处用 Unix domain socket + 连接池化作为 OpenHarmony IPC/Binder 的宿主机等价物),并叠加上下文效率层与安全层。三层与赛题指标对应
src/transport.cpp:UDS/TCP + 长度前缀分帧 + 连接池化(对照「每调用新建连接」的 HTTP 基线)src/context.cpp:zstd 压缩 + 内容寻址 LRU 缓存(重复上下文只传 16B 引用)src/security.cpp:AES-256-GCM 认证加密(身份+机密性一体)+ HMAC 能力令牌(逐工具授权)src/broker.cpp:JSON-RPC 2.0 派发(initialize/tools/list/tools/call/批量/通知)目录结构(按 System Ability 组织)
构建与运行(宿主机,Linux)
依赖:CMake ≥ 3.16、C++17 编译器、
libzstd-dev、libssl-dev。端到端演示(两个终端):
一键复现全部基准并写入
demo/bench.txt:基准方法学(诚实边界)
bench/run_bench.sh在本机真实编译真实运行产出,见demo/bench.txt与docs/TEST_REPORT.md。与 OpenHarmony 的关系
宿主机原型用 UDS 作为 OpenHarmony IPC 的等价物验证机理;落到 OpenHarmony 时,传输绑定替换为
MessageParcel+SendRequest+ Ashmem 零拷贝,Broker 注册为 SAMgr 系统能力,安全层对接 AccessToken/ATM。接口已按此切分(Transport/SecurityContext/McpBroker可独立替换实现)。详见docs/OHOS_INTEGRATION.md。许可
Apache-2.0(见
LICENSE/NOTICE)。第一方源码原创;仅在构建期链接系统库 zstd(BSD-3)与 OpenSSL(Apache-2.0),不内嵌其源码。