Calculator (Rust Binary) について
Calculator (Rust Binary)は、コンパイル済みRust実行ファイルをMCP Bundleに収めたサンプルサーバーです。Rustプロジェクト向けのbinaryサーバータイプを示します。
主な機能
- 01Rust製バイナリMCPサーバー
- 02加算と減算のツール
- 03MCP Bundleのバイナリパッケージ例
- 04stdioによるプロトコル通信
活用シーン
- 01Rust製MCPサーバーのバイナリバンドル化
- 02MCP経由での計算ツール呼び出しテスト
MCP 対応
stdio経由でMCPクライアントに`sum`と`sub`ツールを公開します。binaryタイプのMCP Bundleとしてパッケージ化されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
Calculator Rust バイナリの例
コンパイル済みの Rust バイナリを、binary サーバータイプを使用して MCP バンドルとしてパッケージングする方法を示します。公式 Rust MCP SDK の電卓の例を基にしています。
バイナリサーバータイプとは?
ソースコードをバンドルしてランタイムで実行する node や uv のサーバータイプとは異なり、binary サーバータイプはコンパイル済みのネイティブ実行ファイルをパッケージングします。これは次のような場合に便利です:
- Rust、Go、C/C++ の MCP サーバー
- パフォーマンスが重視されるワークロード
- ランタイム依存関係のないサーバー
トレードオフとして、バイナリはプラットフォーム固有です。対象の OS やアーキテクチャごとに個別のビルドが必要になります。
構成
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 だけです。
テスト
# 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 — 2 つの数値の合計を計算します
- sub — 2 つの数値の差を計算します
備考
- バイナリサイズ:約 2.5 MB(ストリップ済み、LTO 有効)
Cargo.tomlはedition = "2024"を使用しています(Rust 1.85 以上)- ログは
tracingを介して stderr に書き込まれるため、MCP の stdio トランスポートを妨げません - rmcp クレート(公式 Rust MCP SDK)を使用しています
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。