mcpField
🔍
🔍 Rust MCP Server + Inspector Example: SSE Transport with an Add Tool

🔍 Rust MCP Server + Inspector Example: SSE Transport with an Add Tool

ローカル
github.com/RGGH開発ツール881 週間前に更新

🔍 Rust MCP Server + Inspector Example: SSE Transport with an Add Tool について

このRustの例は、SSEで通信するMCPサーバーとクライアント、および2つの数値を加算するツールを示します。RIGエージェントによるツール利用と、MCP Inspectorでのテスト方法も紹介します。

主な機能

  1. 01SSEトランスポートでMCPサーバーを構築
  2. 022つの数値を加算するツールを登録
  3. 03MCPクライアントでツール一覧を取得
  4. 04RIGエージェントからツールを利用
  5. 05MCP Inspectorでサーバーを検査

活用シーン

  1. 01SSEを使うMCPサーバー構成を学習
  2. 02エージェントで加算ツールをテスト
  3. 03InspectorでMCP接続を確認

MCP 対応

この例では、加算ツールをSSE経由で公開するMCPサーバーと、ツールを一覧表示して利用するMCPクライアントを構築します。テストにはMCP Inspectorを接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"rig": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@modelcontextprotocol/inspector

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Rust

🔍 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

2025-04-07 23-22-21 のスクリーンショット


📬 質問やフィードバックはありますか?

お気軽に issue を作成するか、ディスカッションを始めてください!

コメント

MCP は初めてですか?

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

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