关于 Calculator (Rust Binary)
Calculator (Rust Binary) 是一个将编译后的 Rust 可执行文件打包进 MCP Bundle 的示例服务,展示适用于 Rust 项目的 binary 服务类型。
主要功能
- 01Rust 二进制 MCP 服务
- 02求和与求差工具
- 03MCP Bundle 二进制打包示例
- 04通过 stdio 通信
适用场景
- 01将 Rust MCP 服务打包为二进制包
- 02通过 MCP 测试计算器工具调用
MCP 相关
该服务通过 stdio 向 MCP 客户端提供 `sum` 和 `sub` 工具,并以 binary 类型的 MCP Bundle 打包。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
2收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
计算器 Rust 二进制示例
演示如何使用 binary 服务类型将编译后的 Rust 二进制文件打包为 MCP Bundle。基于官方 Rust MCP SDK 计算器示例。
什么是二进制服务类型?
与 node 或 uv 服务类型(源代码被打包并由运行时执行)不同,binary 服务类型打包的是预编译的原生可执行文件。这适用于:
- Rust、Go、C/C++ MCP 服务
- 性能敏感的工作负载
- 没有运行时依赖的服务
代价是二进制文件与平台相关——每个目标操作系统/架构都需要单独构建。
结构
calculator-rust/
├── manifest.json # server.type = "binary"
├── Cargo.toml # Rust project
├── .mcpbignore # Exclude source from bundle
└── src/
└── main.rs # Calculator MCP server (~80 LOC)
构建后,会创建包含编译后二进制文件的 server/ 目录。
构建
需要 Rust 1.85+。
cd examples/calculator-rust
cargo build --release
mkdir -p server
cp target/release/mcp-calculator server/
打包
mcpb pack examples/calculator-rust
.mcpbignore 文件会排除源代码和构建产物——只有 manifest.json 和 server/mcp-calculator 会进入 bundle。
测试
# MCP protocol handshake
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
| ./server/mcp-calculator
# Tool call
(printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}\n'
printf '{"jsonrpc":"2.0","method":"notifications/initialized"}\n'
printf '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"sum","arguments":{"a":3,"b":4}}}\n'
sleep 1) | ./server/mcp-calculator
预期:sum(3, 4) 返回 {"text":"7"}。
工具
- sum — 计算两个数字的和
- sub — 计算两个数字的差
说明
- 二进制大小:约 2.5 MB(已 strip,启用 LTO)
Cargo.toml使用edition = "2024"(Rust 1.85+)- 日志通过
tracing写入 stderr,因此不会干扰 MCP 的 stdio 传输 - 使用 rmcp crate(官方 Rust MCP SDK)
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。