RabbitMQ Mcp Go について
RabbitMQ MCP Go は、RabbitMQ 向けの Go 製 MCP サーバーです。標準化されたインターフェースでメッセージを送信する LLM アプリケーション向けに、テキストまたは JSON の本文と任意のヘッダーを扱います。
主な機能
- 01キューまたはエクスチェンジへのメッセージ送信
- 02テキストと JSON のコンテンツタイプに対応
- 03JSON 形式のメッセージヘッダーを指定
活用シーン
- 01キューにテキスト通知を送る
- 02エクスチェンジに JSON の注文更新を送る
- 03優先度などのヘッダー付きメッセージを送る
MCP 対応
MCP クライアントに RabbitMQ のメッセージ送信ツールを提供し、接続先は RABBITMQ_URL で設定します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
RabbitMQ MCP Go
RabbitMQ との統合を行う Model Control Protocol(MCP)サーバーの Go 実装です。
このサーバーは、MCP プロトコルを介して RabbitMQ とやり取りする機能を提供し、標準化されたインターフェースを通じて LLM モデルが一般的な RabbitMQ 操作を実行できるようにします。
![]()
概要
RabbitMQ MCP Server は LLM モデルと RabbitMQ の間を仲介し、次のことを可能にします。
- RabbitMQ のキューまたはエクスチェンジにメッセージを公開する
プロジェクト構成
.
├── cmd/ # Application entry points
├── internal/ # Private application code
│ ├── config/ # Configuration management
│ ├── tools/ # MCP tools implementations
│ ├── prompts/ # Prompt templates and configurations
│ └── resources/ # Shared resources and utilities
├── pkg/ # Public library code
├── api/ # API definitions and documentation
└── scripts/ # Build and utility scripts
ディレクトリの概要
内部ディレクトリ構成
- tools/:すべての MCP ツール実装を格納します。各ツールは、MCP ツールインターフェースを実装する個別のパッケージです。
- prompts/:MCP ツールで使用するプロンプトテンプレートと設定を格納します。
- resources/:共有ユーティリティ、ヘルパー関数、再利用可能なコンポーネントを格納します。
- config/:アプリケーションの設定を管理します。
はじめに
- Go 1.24.3 をインストールします:
asdf install golang 1.24.3
- リポジトリをクローンします:
git clone https://github.com/yourusername/rabbitmq-mcp-go.git
cd rabbitmq-mcp-go
- 依存関係をインストールします:
go mod download
- プロジェクトをビルドします:
go build ./cmd/...
MCP クライアントとの統合
基本設定
この設定を MCP クライアントの設定に追加します。
{
"mcpServers": {
"rabbitmq": {
"command": "rabbitmq-mcp-server",
"env": {
"RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
}
}
}
}
Cursor との統合
Cursor で使用するには、~/.cursor/mcp.json を作成または編集します。
{
"mcpServers": {
"rabbitmq": {
"command": "rabbitmq-mcp-server",
"env": {
"RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
}
}
}
}
Claude Desktop との統合
Claude Desktop で使用するには、設定ファイルを編集します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"rabbitmq": {
"command": "rabbitmq-mcp-server",
"env": {
"RABBITMQ_URL": "amqp://guest:guest@localhost:5672/"
}
}
}
}
RabbitMQ Publish ツールの使用
publish ツールを使用すると、MCP インターフェースを通じて RabbitMQ のキューまたはエクスチェンジにメッセージを送信できます。
ツールのパラメーター
queue(string、任意):公開先のキュー名exchange(string、任意):公開先のエクスチェンジ名message(string、必須):公開するメッセージの内容content_type(string、任意):メッセージのコンテンツタイプ- 対応する値:"text/plain"(デフォルト)、"application/json"
headers(string、任意):JSON 形式のメッセージヘッダー
やり取りの例
1. キューへの公開:
User:「キュー 'my_queue' にメッセージ 'Hello World' を送信して」
AI アシスタントは publish ツールを使用します:
{
"queue": "my_queue",
"message": "Hello, World!",
"content_type": "text/plain"
}
応答:
"Message published successfully to my_queue"
2. エクスチェンジへの JSON の公開:
User:「エクスチェンジ 'orders' に注文状況の更新を公開して」
AI アシスタントは publish ツールを使用します:
{
"exchange": "orders",
"message": "{\"order_id\": \"12345\", \"status\": \"completed\"}",
"content_type": "application/json"
}
応答:
"Message published successfully to orders"
1. ヘッダーを指定した公開:
User:「notifications キューに優先度の高いメッセージを送信して」
AI アシスタントは publish ツールを使用します:
{
"queue": "notifications",
"message": "Important system update",
"headers": "{\"priority\": \"high\", \"timestamp\": \"2024-03-20T12:00:00Z\"}"
}
エラー処理
次の場合、ツールはエラーを返します。
- queue も exchange も指定されていない
- 必須の message パラメーターが指定されていない
- content_type が "application/json" の場合に JSON 形式が無効
- RabbitMQ の接続または公開時のエラー
開発
新しい MCP ツールを追加するには:
internal/tools/の下に新しいディレクトリを作成します- MCP ツールインターフェースを実装します
- メインアプリケーションにツールを登録します
- 必要に応じて
internal/prompts/に対応するプロンプトを追加します - tools README にツールを記載します
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。