Consul MCP Server について
Consul MCP Serverは、マイクロサービスの分析やトラブルシューティング向けに、Consulのサービスディスカバリーとサービスメッシュ情報をAIエージェントに提供します。ヘルス、接続、メトリクスを調べ、サービス関係図を生成できます。
主な機能
- 01登録済みサービスの一覧と分析
- 02ヘルスチェックと異常の確認
- 03サービス接続と状態の表示
- 04Mermaidによるサービス図の生成
- 05サービス分析とメトリクス取得
活用シーン
- 01マイクロサービスのヘルスチェック失敗の調査
- 02サービス間の接続問題の特定
- 03サービスメッシュ関係図の作成
- 04サービスメトリクスとリソース利用状況の確認
MCP 対応
MCPクライアントに、Consulサービス一覧、ヘルスチェック、接続確認、図の生成、サービス分析、メトリクス取得のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Consul MCP サーバー
HashiCorp Consul のサービスディスカバリーとサービスメッシュを操作するための Model Control Protocol(MCP)サーバーです。この実装は Anthropic の MCP 仕様に準拠しており、Claude が自然言語でやり取りしながら、マイクロサービスアーキテクチャを分析し、図を作成し、問題を特定して、推奨事項を提示できるようにします。
Model Control Protocol とは?
Model Control Protocol(MCP) は、Claude などの AI モデルが外部のツールや API とやり取りできるようにするため、Anthropic が開発した仕様です。この実装により、AI エージェントを Consul インフラストラクチャに接続し、自然言語を使ってサービスを管理、分析できます。
機能
- Consul に登録されているサービスの一覧表示と分析
- ヘルスチェックの失敗の特定と診断
- サービスメッシュのアーキテクチャ図の生成
- サービスの接続問題の検出と推奨事項の提示
- サービスの負荷分散とリソース使用状況に関する AI の分析情報の取得
要件
- Node.js 18+
- npm または yarn
- 稼働中の Consul インスタンス(ローカルまたはリモート)
- Claude との連携機能を備えた Claude Desktop または Cursor IDE
インストール
# Clone the repository
git clone https://github.com/3loka/consul-mcp-server.git
cd consul-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
設定
ルートディレクトリに .env ファイルを作成し、次の変数を設定します。
CONSUL_HTTP_ADDR=http://localhost:8500
CONSUL_HTTP_TOKEN=your-consul-token
PORT=3000
USE_HTTP=true
CONSUL_HTTP_ADDR:Consul サーバーのアドレスCONSUL_HTTP_TOKEN:Consul サーバーの ACL トークンPORT:HTTP サーバーのポートUSE_HTTP:HTTP モードにするには「true」に設定します。stdio モードの場合は省略します
インストール
Cursor へのインストール
Cursor にこの MCP サーバーをインストールして使用するには、次の手順に従います。
-
Cursor で Settings(⌘+,)を開き、「MCP」タブに移動します。
-
「+ Add new MCP server」をクリックします。
-
次の内容を入力します。
- 名前:consul-assistant
- タイプ:command
- コマンド:npx -y consul-mcp-server
-
「Add」をクリックし、サーバーまでスクロールして「Disabled」をクリックし、サーバーを有効にします。
-
必要に応じて Cursor を再起動し、MCP サーバーが正しく読み込まれたことを確認します。
Claude Desktop へのインストール
Claude Desktop にこの MCP サーバーをインストールして使用するには、次の手順に従います。
-
Claude Desktop で Settings(⌘+,)を開き、「Developer」タブに移動します。
-
ウィンドウの下部にある「Edit Config」をクリックします。
-
ファイル(
~/Library/Application Support/Claude/claude_desktop_config.json)を編集して次のコードを追加し、ファイルを保存します。
{
"mcpServers": {
"consul-assistant": {
"command": "npx",
"args": ["-y", "consul-mcp-server"]
}
}
}
サーバーがローカルホストでない場合、または ACL が有効になっている場合は、代わりに以下の設定を使用します。
{
"mcpServers": {
"consul-assistant": {
"command": "npx",
"args": ["-y", "consul-mcp-server"],
"env": {
"CONSUL_HTTP_ADDR": "http://<host/ip>:8500",
"CONSUL_HTTP_TOKEN": "<ACL Token>"
}
}
}
}
- Claude Desktop を再起動し、MCP サーバーが正しく読み込まれたことを確認します。
プロンプトの例
接続したら、Claude に次のプロンプトを試してみてください。
- 「Consul に登録されているすべてのサービスを表示して」
- 「ヘルスチェックに失敗しているサービスはどれ?」
- 「サービスメッシュの接続図を作成して」
- 「接続の問題が発生しているサービスを分析して」
- 「マイクロサービスアーキテクチャ全体の健全性はどう?」
- 「接続のエラー率が高いサービスを表示して」
利用可能な MCP アクション
このサーバーは、次の MCP アクションを実装しています。
| アクション | 説明 |
|---|---|
consul/get_services | Consul にあるすべてのサービスの一覧を取得します |
consul/get_health_checks | ヘルスチェックを取得します。失敗したチェックによる絞り込みもできます |
consul/get_service_connections | サービスの接続とそのステータスを取得します |
consul/create_service_diagram | サービスの関係を示す Mermaid 図を作成します |
consul/analyze_service | 特定のサービスを分析して問題を特定します |
consul/get_service_metrics | 特定のサービスの詳細なメトリクスを取得します |
デモ環境の実行
テスト目的で、Consul に複数のマイクロサービスを登録したローカルのデモ環境をセットアップできます。
# Run the setup script (requires Docker and Docker Compose)
chmod +x ./demo/setup-demo.sh
./demo/setup-demo.sh
これにより、次のものが起動します。
- Consul サーバー
- 複数のデモ用マイクロサービス
- Consul へのサービス登録
- サービスメッシュ接続とヘルスチェックのセットアップ
デモの手順
-
デモ環境を起動します。
./scripts/setup-demo.sh -
MCP サーバーを起動します。
npm start -
Claude Desktop または Cursor を MCP サーバーに接続します。
-
次のデモシナリオを試します。
a. サービスの概要を取得します。
Show me all the services registered in my Consul instance.b. 失敗しているヘルスチェックを確認します。
Are any services experiencing health issues? What might be causing them?c. サービスメッシュの図を作成します。
Create a diagram showing the connections between my services.d. 接続の問題を分析します。
Which services are having trouble connecting to each other?e. 推奨事項を取得します。
Based on my service mesh setup, what improvements would you recommend?
開発
プロジェクト構成
src/index.ts:メインエントリーポイントsrc/resources/:Consul API との連携コードsrc/tools/:図の生成などのヘルパー機能src/server/:MCP サーバーのコンポーネントsrc/mcp/:MCP アクションの定義とハンドラーsrc/prompts/:AI とのやり取りに使用するテンプレートの管理src/tests/:テストスイート
テストの実行
npm test
ビルド
npm run build
貢献
貢献を歓迎します。お気軽にプルリクエストを送信してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。