内容
<p align="center">
<img src="assets/tsar-banner.jpg" width="750" alt="TSAR-MCP Cliff Edge AI Banner">
</p>
# TSAR-MCP:面向边缘AI的零依赖C框架
**TSAR** 代表 *"Tools Slightly Above the Runtime."* 秉承这一理念,该项目为在边缘、嵌入式和企业系统上直接构建模型上下文协议(MCP)服务器提供了一种超轻量级、零依赖的C框架。
尽管大多数AI代理生态系统依赖于重量级运行时环境(Node.js、Python),但 **TSAR-MCP** 专注于极端效率。它编译为原生二进制文件,几乎消耗零空闲内存,并使用标准操作系统流(`stdio` 通过 SSH)进行安全、即时的LLM与系统通信。
## 入门指南
### 💡 "顿悟"时刻:赋予AI以操作能力
可以将MCP服务器视为赋予AI思维一套"手臂",以便与物理世界交互。LLM通常仅限于其聊天窗口,而MCP服务器允许它延伸并执行操作,例如读取本地文件、查询安全数据库或检查系统硬件。
**为什么选择C(或者说正统的C++)?为什么它实际上很容易?**
使用原生C构建集成可能听起来令人生畏,但结合现代AI的这个框架使得它变得非常简单。您甚至不需要编写样板代码。
**用4步构建您自己的自定义MCP服务器:**
1. **获取编译器:** 使用 `g++`(Linux上原生可用)或Visual Studio Community Edition(Windows上免费)。
2. **获取Git:** 从 [git-scm.com](https://git-scm.com) 下载或使用包管理器(例如,`sudo apt install git`)。
3. **克隆仓库:** 将TSAR-MCP框架拉取到本地机器。
```bash
git clone https://github.com/IBM/tsar-mcp.git
```
4. **让AI编写代码:** 打开您喜欢的LLM(Claude、ChatGPT、Gemini),附加 **[`mcp/doc/MCPServer_AspectGuide.md`](./mcp/doc/MCPServer_AspectGuide.md)** 文件(TSAR-MCP的设计使得LLM和人类可以轻松地共同编写方面),并提示它为您编写所需的内容:
> *"请阅读本指南,并为我编写一个新的MCP方面,以从任何文本文件中读取指定数量的行并将其返回给客户端。"*
LLM将无缝读取架构规则并生成您需要的确切 `.cpp` 文件。将它放入目录,运行 `make`,您的AI现在拥有了一套全新的操作能力。
---
### 🔌 连接到您的AI客户端
一旦您编译了MCP服务器,就需要将其连接到AI客户端(例如Claude Desktop或VSCode)。由于TSAR-MCP使用严格的零依赖 `stdio` 传输模型,您可以在本地或通过SSH隧道安全地在全球范围内运行服务器。
阅读 **[MCPServer Wiring & Transport Guide](./mcp/doc/MCPServer_WiringGuide.md)**,了解如何轻松配置您的 `mcp.json` 以进行本地、OpenSSH或PuTTY/Plink连接。
---
### 手动构建MCP框架
如果您更喜欢手动搭建工具或编译包含的基准示例,该框架的核心设计为易于扩展。您通过创建**方面**(一个 `.cpp` 文件,定义工具的个性(名称、参数和执行逻辑),同时插入底层原生引擎)来构建新的AI功能。核心框架自动处理所有JSON-RPC解析、内存管理和标准I/O。
要了解如何快速搭建、构建和测试您自己的自定义工具,请阅读 **[MCPServer Aspect Guide](./mcp/doc/MCPServer_AspectGuide.md)**。
导航到 `mcp/` 目录。该框架使用源代码外构建系统,将编译后的二进制文件放入 `build/Release` 或 `build/Debug` 目录中。
**Linux / macOS(GNU Make):**
```bash
cd mcp
make # 构建所有方面(Release模式)
make CFG=Debug # 构建所有方面(Debug模式)
make helloWorld # 仅构建helloWorld方面
make cleanall # 删除整个构建目录
```
**Windows**
```bash
cd mcp
nmake -f Makefile.nmake # 构建所有方面(Release模式)
nmake -f Makefile.nmake CFG=Debug # 构建所有方面(Debug模式)
nmake -f Makefile.nmake helloWorld # 仅构建helloWorld方面
nmake -f Makefile.nmake cleanall # 删除整个构建目录
```
## 核心架构
TSAR-MCP利用一个经过实战检验、清洁室设计的C运行时和解析引擎来原生处理JSON-RPC 2.0流量:
* **零依赖传输:** 通过 `ssh -batch` 与LLM客户端安全通信。无需套接字,无需开放的Web端口,也无需自定义网络代码——只需操作系统级别的加密 `stdin/stdout` 流。
* **`CommonC` 基础:** 一个健壮、经过遗产验证的C运行时,处理内存管理和字符串操作,无需外部库膨胀。
* **原生BNF解析:** 高性能、编译的解析引擎(`JSONParser`),以极高的速度和安全性处理LLM有效载荷。
## 包含的示例和路线图
该仓库包含核心框架以及针对特定目标的MCP服务器实现,以演示架构的可扩展性:
* **WordArt生成器([`wordArt`](./mcp/servers/wordArt/MCPServer_wordArt.cpp)):** 演示**双向LLM代码集成**(MCP采样)。该方面不是依赖原生C字符串操作,而是动态提示客户端的LLM(`sampling/createMessage`)生成样式化的ASCII艺术——展示了TSAR-MCP如何以简单的方式桥接原生C运行时的绝对确定安全性与现代AI的动态认知推理。
* **Hello World & 端口扫描([`helloWorld`](./mcp/servers/helloWorld/MCPServer_helloWorld.cpp), [`portScan`](./mcp/servers/portScan/MCPServer_portScan.cpp)):** 基本实现,演示如何将标准I/O绑定到原生JSON-RPC解析引擎,以及如何顺序交互本地网络套接字。
* **异步线程([`setReminder`](./mcp/servers/setReminder/MCPServer_setReminder.cpp)):** 演示框架的原生非阻塞线程模型。通过启动一个后台计时器,触发延迟的服务器到客户端通知,该方面证明了C运行时如何轻松处理长时间运行的异步任务,而不会冻结AI客户端。
**企业路线图:** 由于该框架编译为高效的原生二进制文件,未来的里程碑将引入重型企业方面。这包括 **SAP Control (`sapControl`)** 等模块,允许LLM使用原生命令监控进程和编辑SAP环境中的配置文件,完全消除了对重量级SOAP网关或第三方代理的需求。
## 🗺️ 探索此仓库(学习路径)
该仓库的结构是一个按时间顺序的速成课程,用于构建基于零依赖C运行时的MCP服务器。由于 `main` 分支包含高级异步和线程模型,**我们强烈建议按时间顺序探索我们的里程碑标签,以了解核心架构:**
1. **标签:** `mcp/teaching/v1.0.0` - 零依赖顺序MCP基线。
2. **标签:** `mcp/aspects/v1.1.0` - 介绍简单、生产就绪的方面模型。**查看此教学版本以了解方面的构建和连接本质。**
3. **标签:** `mcp/async/v2.0.0` - 高级线程和异步运行时。
请参阅 **[ARCHITECTURE_MILESTONES.md](./ARCHITECTURE_MILESTONES.md)** 以获取有关如何查看这些历史基线的详细说明。
## 基础和未来
该仓库建立在 **TSAR** C运行时之上 - 一个遗产验证的基础,最初于2012年设计用于高频SQL处理(此处包含为 `QueryTool`)。通过利用这个经过实战检验的基础,现代MCP AI方面继承了企业级的内存管理、原生BNF解析引擎和极高的执行速度,同时为未来的裸金属实用程序留下了架构的完全开放。
### 🏛️ 遗产起源:SourceForge查询工具
对于有兴趣探索原始2012年架构的人,在MCP AI集成之前,原始初始导入已保存在项目历史记录中。
请参阅 **[ARCHITECTURE_MILESTONES.md](./ARCHITECTURE_MILESTONES.md)**(标签:`db/querytool/v1.0.0`)。
## License & Authorship
Copyright (c) 2026 International Business Machines
由Eric Kass设计和编写
在 [MIT License](./LICENSE) 下授权。