🔍 Rust MCP Server + Inspector Example: SSE Transport with an Add Tool について
このRustの例は、SSEで通信するMCPサーバーとクライアント、および2つの数値を加算するツールを示します。RIGエージェントによるツール利用と、MCP Inspectorでのテスト方法も紹介します。
主な機能
- 01SSEトランスポートでMCPサーバーを構築
- 022つの数値を加算するツールを登録
- 03MCPクライアントでツール一覧を取得
- 04RIGエージェントからツールを利用
- 05MCP Inspectorでサーバーを検査
活用シーン
- 01SSEを使うMCPサーバー構成を学習
- 02エージェントで加算ツールをテスト
- 03InspectorでMCP接続を確認
MCP 対応
この例では、加算ツールをSSE経由で公開するMCPサーバーと、ツールを一覧表示して利用するMCPクライアントを構築します。テストにはMCP Inspectorを接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🔍 Rust MCP サーバー + Inspector の例:Add ツールを使った SSE トランスポート
クレジット:https://dev.to/joshmo_dev/using-model-context-protocol-with-rig-m7o
このプロジェクトでは、Server-Sent Events(SSE)を使って通信する MCP(Model Context Protocol)サーバーとクライアントのセットアップ方法を紹介します。2 つの数値を加算するシンプルなツールが含まれており、LLM のプロンプトに RIG エージェントを統合しています。
🚀 はじめに
このリポジトリをクローンして、次のコマンドを実行します。
cargo run
別のターミナルで、次のコマンドを実行して MCP Inspector を起動します。
npx @modelcontextprotocol/inspector sse http://127.0.0.1:3001/sse
次のような出力が表示されます。
Starting MCP inspector...
Proxy server listening on port 3000
New SSE connection
Query parameters: { transportType: 'sse', url: 'http://localhost:3001/sse' }
SSE transport: url=http://localhost:3001/sse, headers=
Connected to SSE transport
Connected MCP client to backing server transport
Created web app transport
Set up MCP proxy
🔍 MCP Inspector is up and running at http://localhost:5173 🚀
http://localhost:5173 でウェブインターフェースを表示できます。
🛠️ 機能
- ✅
ServerSseTransportを使ってカスタム MCP サーバーをセットアップします - ✅ MCP クライアントをサーバーに接続します
- ✅ 2 つの数値を加算するカスタムツール
AddToolを登録します - ✅ MCP 経由で登録済みのツールを一覧表示します
- ✅ RIG と統合し、ツールを使って LLM エージェントにプロンプトを送信します
🧠 コードの概要
#[tool(
name = "Add",
description = "Adds two numbers together.",
params(a = "The first number to add", b = "The second number to add")
)]
async fn add_tool(a: f64, b: f64) -> Result<ToolResponseContent> {
Ok(tool_text_content!((a + b).to_string()))
}
これは、MCP サーバーに登録される Add ツールを定義しています。
メイン関数では、次のセットアップを行います。
- トレーシング
- MCP サーバーとトランスポート(SSE)
- 利用可能なツールを初期化して一覧表示する MCP クライアント
- MCP ツールを使用する、OpenAI バックエンドを備えた RIG エージェント
次に、エージェントは次のプロンプトを実行します。
let response = agent.prompt("Add 10 + 10").await;
🧪 出力例
正常に実行されると、次のようなログが表示されます。
Initialized: Ok(...)
Tools: Ok([...])
Building RIG agent
Prompting RIG agent
Agent response: Some("20")
🧰 技術スタック
- 🦀 tokio を使った Rust
- 📡
mcp_coreの SSE トランスポート - 🔧 MCP サーバー/クライアントのアーキテクチャ
- 🤖 OpenAI モデルを使う RIG エージェント
- 🌐 MCP Inspector のウェブインターフェース
📦 依存関係
Cargo.toml に次の項目があることを確認してください。
[dependencies]
tokio = { version = "1", features = ["full"] }
anyhow = "1"
serde_json = "1"
mcp_core = "..."
mcp_core_macros = "..."
rig = "..."
...は、環境に応じた適切なバージョンに置き換えてください。
📍 Inspector GUI
http://localhost:5173 にアクセスすると、MCP Inspector の UI を表示して操作できます。
✅ テストログの例
Query parameters: { transportType: 'sse', url: 'http://localhost:3001/sse' }
Connected to SSE transport
Connected MCP client to backing server transport
Set up MCP proxy
Received message for sessionId cdd4a8be-57e2-44e3-9b81-3df300e86f22
📬 質問やフィードバックはありますか?
お気軽に issue を作成するか、ディスカッションを始めてください!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。