mcpField
C
Calculator (Rust Binary)

Calculator (Rust Binary)

已认证本地服务
github.com/modelcontextprotocol开发工具2.2k27 周前更新

关于 Calculator (Rust Binary)

Calculator (Rust Binary) 是一个将编译后的 Rust 可执行文件打包进 MCP Bundle 的示例服务,展示适用于 Rust 项目的 binary 服务类型。

主要功能

  1. 01Rust 二进制 MCP 服务
  2. 02求和与求差工具
  3. 03MCP Bundle 二进制打包示例
  4. 04通过 stdio 通信

适用场景

  1. 01将 Rust MCP 服务打包为二进制包
  2. 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。