mcpField
C
Consul MCP Server

Consul MCP Server

ローカル
github.com/3lokaクラウド・インフラ279 週間前に更新

Consul MCP Server について

Consul MCP Serverは、マイクロサービスの分析やトラブルシューティング向けに、Consulのサービスディスカバリーとサービスメッシュ情報をAIエージェントに提供します。ヘルス、接続、メトリクスを調べ、サービス関係図を生成できます。

主な機能

  1. 01登録済みサービスの一覧と分析
  2. 02ヘルスチェックと異常の確認
  3. 03サービス接続と状態の表示
  4. 04Mermaidによるサービス図の生成
  5. 05サービス分析とメトリクス取得

活用シーン

  1. 01マイクロサービスのヘルスチェック失敗の調査
  2. 02サービス間の接続問題の特定
  3. 03サービスメッシュ関係図の作成
  4. 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 サーバーをインストールして使用するには、次の手順に従います。

  1. Cursor で Settings(⌘+,)を開き、「MCP」タブに移動します。

  2. 「+ Add new MCP server」をクリックします。

  3. 次の内容を入力します。

    • 名前:consul-assistant
    • タイプ:command
    • コマンド:npx -y consul-mcp-server
  4. 「Add」をクリックし、サーバーまでスクロールして「Disabled」をクリックし、サーバーを有効にします。

  5. 必要に応じて Cursor を再起動し、MCP サーバーが正しく読み込まれたことを確認します。

Claude Desktop へのインストール

Claude Desktop にこの MCP サーバーをインストールして使用するには、次の手順に従います。

  1. Claude Desktop で Settings(⌘+,)を開き、「Developer」タブに移動します。

  2. ウィンドウの下部にある「Edit Config」をクリックします。

  3. ファイル(~/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>"
        }
      }
    }
  }
  1. Claude Desktop を再起動し、MCP サーバーが正しく読み込まれたことを確認します。

プロンプトの例

接続したら、Claude に次のプロンプトを試してみてください。

  • 「Consul に登録されているすべてのサービスを表示して」
  • 「ヘルスチェックに失敗しているサービスはどれ?」
  • 「サービスメッシュの接続図を作成して」
  • 「接続の問題が発生しているサービスを分析して」
  • 「マイクロサービスアーキテクチャ全体の健全性はどう?」
  • 「接続のエラー率が高いサービスを表示して」

利用可能な MCP アクション

このサーバーは、次の MCP アクションを実装しています。

アクション説明
consul/get_servicesConsul にあるすべてのサービスの一覧を取得します
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 へのサービス登録
  • サービスメッシュ接続とヘルスチェックのセットアップ

デモの手順

  1. デモ環境を起動します。

    ./scripts/setup-demo.sh
    
  2. MCP サーバーを起動します。

    npm start
    
  3. Claude Desktop または Cursor を MCP サーバーに接続します。

  4. 次のデモシナリオを試します。

    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

コメント

MCP は初めてですか?

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

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