Skip to main content
Glama
README.md
# toolbox-mcp

一个**工具型 MCP Server**(Tools-only),演示「AI Host → MCP 协议 → 多语言后端」的完整调用链。

三层架构:

| 层 | 语言 | 职责 |
|----|------|------|
| 胶水(协议 + 进程桥) | TypeScript / Node | MCP 协议、工具注册、spawn C++ 子进程 |
| 内核(计算) | C++ | 纯计算内核(如 twoSum 两数之和) |

## 目录结构

```
toolbox-mcp
├── src/            TS 胶水层
│   ├── server.ts   主入口(serveStdio + 6 个 register)
│   ├── pathGuard.ts 路径守卫(限制读写 data/)
│   └── tools/      6 个工具
├── native/         C++ 内核
│   ├── 001.cpp     twoSum 源码
│   └── 001.exe     编译产物(不提交,见下)
├── data/           读写文件工具的操作目录
└── TODO.md         开发计划(#8 Web 面板待办)
```

## 环境要求

- Node.js ≥ 20
- MinGW `g++`(编译 C++ 内核用,仅 `two_sum` 工具需要)

## 安装

```bash
npm i
```

## 编译 C++ 内核

`native/001.exe` 是编译产物,不入库。克隆后需自行编译:

```bash
g++ -O2 -std=c++20 -static-libgcc -static-libstdc++ native/001.cpp -o native/001.exe
```

`-static-libgcc -static-libstdc++` 让 exe 自带运行时,避免依赖 `libstdc++-6.dll`。

## 运行

```bash
npm run dev    # 开发(tsx watch)
npm start      # 运行
npm run typecheck   # 类型检查(tsc --noEmit)
```

## 工具列表

| 工具 | 说明 | 层 |
|------|------|----|
| `echo` | 回显消息 | TS |
| `add` | 两数相加 | TS |
| `reverse` | 反转字符串 | TS |
| `read_file` | 读取 `data/` 内文件 | TS |
| `write_file` | 写入 `data/` 内文件 | TS |
| `two_sum` | 两数之和(spawn C++ 内核) | TS → C++ |

Maintenance

ActivityMaintained
ResponsivenessNo issues