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. 04stdioによるプロトコル通信

活用シーン

  1. 01Rust製MCPサーバーのバイナリバンドル化
  2. 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)を使用しています

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。