mcpField
M
MSK MCP Server

MSK MCP Server

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

MSK MCP Server について

Amazon MSK、MirrorMaker2 コネクター、カスタムドメイン、災害復旧を管理する MCP サーバーです。Kafka インフラを運用するチーム向けに、レプリケーション設定から DNS 切り替えまでのツールと状態監視を提供します。

主な機能

  1. 01MirrorMaker2 レプリケーションの構成
  2. 02プラグイン、コネクター、ワーカー設定の管理
  3. 03MSK カスタムドメインの作成
  4. 04Route53 による災害復旧切り替え
  5. 05クラスター、プラグイン、コネクターの状態監視
  6. 06IAM、PLAINTEXT、SCRAM-SHA-512 認証

活用シーン

  1. 01MSK クラスター間の MirrorMaker2 レプリケーション設定
  2. 02クラスター用カスタム DNS ドメインの作成
  3. 03プライマリと災害復旧クラスター間の切り替え
  4. 04コネクターの稼働状態確認

MCP 対応

MSK クラスター、MirrorMaker2、Route53 ドメイン、災害復旧を管理するツール、リソース、プロンプトを MCP クライアントに公開します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

MSK MCP サーバー

MirrorMaker2 コネクター、カスタムドメインの作成、災害復旧操作など、Amazon MSK(Managed Streaming for Apache Kafka)の管理機能を提供する包括的な Model Context Protocol サーバーです。このサーバーにより、LLM は高度な DNS 管理機能と DR 切り替え機能を使用して、MSK インフラストラクチャ全体を作成、構成、管理できます。

注意

このサーバーを使用するには、MSK Connect、S3、Route53、および関連する AWS サービスへのアクセス権限を持つ AWS 認証情報が必要です。この MCP サーバーを使用する際は、適切な AWS セキュリティプラクティスを守るようご注意ください。

このサーバーは、次の 2 つの主要なモジュールを提供します。

  1. MirrorMaker2 モジュール(mm2) - カスタムプラグインの作成、コネクターの構成、ステータスの監視を含む、MM2 パイプライン全体のオーケストレーション
  2. カスタムドメインモジュール(dr) - Route53 との連携による MSK カスタムドメインの作成と、災害復旧の切り替え機能

カスタムドメインモジュールは PLAINTEXT のみをサポートします。MSK MM2 は複数の認証方式(IAM、PLAINTEXT、SCRAM-SHA-512)をサポートし、適切なタイムアウトと再試行によって時間のかかる操作を処理します。

機能

MSK カスタムドメインと災害復旧(dr モジュール)
  • カスタムドメインの作成 - Route53 を使用して MSK クラスター用のカスタム DNS ドメインを作成します
  • 災害復旧の切り替え - プライマリ MSK クラスターとセカンダリ MSK クラスター間の DR フェイルオーバーを自動化します
  • Route53 との連携 - シームレスな切り替えのために DNS レコードと VPC 関連付けを管理します
  • クラスター情報 - MSK クラスターとブローカーの詳細情報を取得します
  • VPC 管理 - クロスリージョンデプロイメント用に VPC を自動検出して関連付けます

msk-dr

MirrorMaker2 のコア管理
  • MM2 パイプライン全体のセットアップ - 3 種類のコネクター(Heartbeat、Checkpoint、Source)を使用して、MirrorMaker2 レプリケーションのセットアップ全体をオーケストレーションします
  • カスタムプラグイン管理 - S3 との自動連携により、MSK Connect カスタムプラグインを作成および管理します
  • 認証のサポート - ソースクラスターとターゲットクラスターの IAM、PLAINTEXT、SCRAM-SHA-512 認証を構成します
  • ステータス監視 - 自動待機機能を備えた、コネクターとプラグインの状態のリアルタイム監視
利用可能なツール
MSK カスタムドメインと災害復旧
  • get_msk_cluster_info - MSK クラスターの詳細情報を取得します
  • get_msk_broker_info - MSK クラスターのブローカー情報とブートストラップアドレスを取得します
  • get_vpc_for_msk_cluster - MSK クラスターのネットワーク用 VPC 情報を検出します
  • get_route53_hosted_zone_info - Route53 ホストゾーンの詳細を取得します
  • create_msk_custom_domain - Route53 との連携により、MSK クラスター用のカスタム DNS ドメインを作成します
  • list_route53_resource_record_sets - Route53 ホストゾーン内のすべての DNS レコードを一覧表示します
  • perform_dr_switch - プライマリクラスターと DR クラスター間の災害復旧の切り替えを実行します
プラグイン管理
  • create_empty_plugin_zip - 空の MirrorMaker2 プラグイン ZIP ファイルを作成して S3 にアップロードします
  • create_custom_plugin - S3 に保存された ZIP ファイルから MSK Connect カスタムプラグインを作成します
  • check_plugin_status - カスタムプラグインの現在のステータスを確認します
  • wait_for_plugin_ready - タイムアウトを処理しながら、プラグインが ACTIVE 状態になるまで待機します
コネクター管理
  • create_mirror_heartbeat_connector - クラスター監視用の MirrorHeartbeatConnector を作成します
  • create_mirror_checkpoint_connector - オフセット追跡用の MirrorCheckpointConnector を作成します
  • create_mirror_source_connector - データレプリケーション用の MirrorSourceConnector を作成します
  • check_connector_status - コネクターの稼働ステータスを監視します
  • wait_for_connector_ready - コネクターが RUNNING 状態になるまで待機します
ワーカー構成
  • create_worker_configuration - MSK Connect ワーカー構成を作成します
  • describe_worker_configuration - ワーカー構成の詳細を取得します
  • delete_worker_configuration - ワーカー構成を削除します
高レベルの操作
  • create_complete_mm2_setup - MirrorMaker2 のエンドツーエンドのセットアップをオーケストレーションします
  • update_connector - 既存のコネクター設定を更新します
  • delete_connector - コネクターを安全に削除します
  • list_connectors - すべての MSK Connect コネクターを一覧表示します
  • describe_connector - コネクターの詳細情報を表示します
利用可能なリソース
  • msk://clusters - すべての MSK クラスターを詳細情報とともに一覧表示します
  • msk://clusters/{cluster_name} - 特定の MSK クラスターの詳細情報を表示します
  • msk://route53/zones - すべての Route53 ホストゾーンを一覧表示します
  • msk://route53/zones/{zone_name}/records - 特定のホストゾーンの DNS レコードを表示します
  • msk://connectors - すべての MSK Connect コネクターを一覧表示します
  • msk://plugins - すべてのカスタムプラグインを一覧表示します
  • msk://worker-configs - すべてのワーカー設定を一覧表示します
  • msk://connector-status/{connector_name} - コネクターのリアルタイムのステータス情報を表示します
利用可能なプロンプト
  • setup_msk_custom_domain - Route53 を使用して MSK クラスターのカスタムドメインを作成するためのガイダンス
  • configure_msk_disaster_recovery - プライマリクラスターとセカンダリクラスター間で DR をセットアップする手順
  • perform_msk_dr_failover - ディザスターリカバリーのフェイルオーバー操作を実行する手順
  • setup_complete_mm2_replication - クラスター間で完全な MirrorMaker2 レプリケーションをセットアップするためのガイダンス
  • troubleshoot_connector - コネクターの問題に関するトラブルシューティングのガイダンス
  • optimize_mm2_performance - さまざまな規模に応じたパフォーマンス最適化の推奨事項

前提条件

  1. AWS アカウントのセットアップ

    • 適切な権限を持つ AWS アカウント
    • 適切に設定された MSK クラスター(ソースとターゲット)
    • MSK Connect 用に設定された VPC サブネットとセキュリティグループ
    • MSK Connect 用の IAM サービス実行ロール
  2. 必要な AWS 権限

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kafkaconnect:*",
            "kafka:*",
            "s3:GetObject",
            "s3:PutObject",
            "s3:ListBucket",
            "route53:*",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcs"
          ],
          "Resource": "*"
        }
      ]
    }
    
  3. S3 バケット

    • MirrorMaker2 プラグインファイルを保存するための S3 バケット
    • MSK Connect がバケットにアクセスするための適切な IAM 権限
  4. Route53 ホストゾーン (カスタムドメイン機能を使用する場合)

    • カスタムドメイン作成用の Route53 ホストゾーン
    • Route53 レコードを管理するための適切な IAM 権限
    • プライベートホストゾーン用に設定された VPC 関連付け
  5. ネットワーク構成

    • ソースとターゲットの両方の MSK クラスターからアクセス可能な VPC サブネット
    • MSK Connect とクラスター間の通信を許可するセキュリティグループ

インストール

uv を使用する場合(推奨)

uv を使用する場合、特別なインストールは必要ありません。msk-mcp-server を直接実行するには、uvx を使用します。

PIP を使用する場合

または、pip を使用して msk-mcp-server をインストールできます。

pip install msk-mcp-server

インストール後、次のようにスクリプトとして実行できます。

python -m mcp_server_msk_mm2

設定

Claude.app 用の設定

Claude の設定に追加します。

最新バージョンを uvx で使用

{
  "mcpServers": {
    "msk-mcp-server": {
      "command": "uvx",
      "args": ["msk-mcp-server@latest"],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_PROFILE": "your-aws-profile",
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

uvx を使用(簡易版)

{
  "mcpServers": {
    "msk-mm2": {
      "command": "uvx",
      "args": ["msk-mcp-server"],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_PROFILE": "your-aws-profile"
      }
    }
  }
}

pip でインストールした場合

{
  "mcpServers": {
    "msk-mm2": {
      "command": "python",
      "args": ["-m", "mcp_server_msk_mm2"],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_PROFILE": "your-aws-profile"
      }
    }
  }
}
VS Code 用の設定

手動でインストールする場合は、次の JSON ブロックを VS Code のユーザー設定(JSON)ファイルに追加します。Ctrl + Shift + P を押して Preferences: Open User Settings (JSON) と入力すると設定できます。

必要に応じて、ワークスペース内の .vscode/mcp.json というファイルに追加することもできます。これにより、設定を他のユーザーと共有できます。

mcp.json ファイルを使用する場合は、mcp キーが必要です。

最新バージョンを uvx で使用

{
  "mcp": {
    "servers": {
      "msk-mcp-server": {
        "command": "uvx",
        "args": ["msk-mcp-server@latest"],
        "env": {
          "AWS_REGION": "us-east-1",
          "AWS_PROFILE": "your-aws-profile",
          "FASTMCP_LOG_LEVEL": "ERROR"
        },
        "disabled": false,
        "autoApprove": []
      }
    }
  }
}

uvx を使用(簡易版)

{
  "mcp": {
    "servers": {
      "msk-mm2": {
        "command": "uvx",
        "args": ["msk-mcp-server"],
        "env": {
          "AWS_REGION": "us-east-1",
          "AWS_PROFILE": "your-aws-profile"
        }
      }
    }
  }
}

環境変数

AWS の設定
  • AWS_REGION - MSK Connect の操作に使用する AWS リージョン(デフォルト:AWS SDK のデフォルトを使用)
  • AWS_PROFILE - 認証に使用する AWS プロファイル
  • AWS_ACCESS_KEY_ID - AWS アクセスキー(プロファイルを使用しない場合)
  • AWS_SECRET_ACCESS_KEY - AWS シークレットキー(プロファイルを使用しない場合)
タイムアウトの設定
  • AWS_READ_TIMEOUT - AWS 操作の読み取りタイムアウト(秒)(デフォルト:300)
  • AWS_CONNECT_TIMEOUT - AWS 操作の接続タイムアウト(秒)(デフォルト:60)

使用例

MSK カスタムドメインの作成

MSK クラスター用のカスタム DNS ドメインを作成します。

{
  "tool": "create_msk_custom_domain",
  "arguments": {
    "region": "us-east-1",
    "cluster_name": "my-msk-cluster", 
    "zone_name": "kafka.example.com.",
    "vpc_id": "vpc-12345678"
  }
}
災害復旧の切り替え

プライマリクラスターとセカンダリクラスター間で DR フェイルオーバーを実行します。

{
  "tool": "perform_dr_switch",
  "arguments": {
    "primary_region": "us-east-1",
    "primary_cluster_name": "primary-cluster",
    "dr_region": "us-west-2", 
    "dr_cluster_name": "dr-cluster",
    "zone_name": "kafka.example.com.",
    "activate_dr": true
  }
}
MSK クラスター情報の取得

クラスターとブローカーの詳細情報を取得します。

{
  "tool": "get_msk_cluster_info",
  "arguments": {
    "region": "us-east-1",
    "cluster_name": "my-msk-cluster"
  }
}
MirrorMaker2 の完全なセットアップ

サーバーには、完全なセットアップを実行する高レベルのオーケストレーションツールが用意されています。

{
  "tool": "create_complete_mm2_setup",
  "arguments": {
    "plugin_name": "my-mm2-plugin",
    "s3_bucket": "my-kafka-plugins",
    "s3_key": "mm2/mirrormaker2.zip",
    "source_bootstrap_servers": "source-cluster.kafka.us-east-1.amazonaws.com:9092",
    "target_bootstrap_servers": "target-cluster.kafka.us-east-1.amazonaws.com:9092",
    "service_execution_role_arn": "arn:aws:iam::123456789012:role/MSKConnectRole",
    "vpc_subnets": ["subnet-12345", "subnet-67890"],
    "vpc_security_groups": ["sg-abcdef"],
    "source_auth_type": "iam",
    "target_auth_type": "iam"
  }
}
コネクターのステータスを監視
{
  "tool": "check_connector_status",
  "arguments": {
    "connector_arn": "arn:aws:kafkaconnect:us-east-1:123456789012:connector/my-connector/abc-123"
  }
}

認証方法

IAM 認証
{
  "source_auth_type": "iam",
  "source_role_arn": "arn:aws:iam::123456789012:role/MSKSourceRole"
}
SCRAM-SHA-512 認証
{
  "source_auth_type": "scram-sha-512",
  "source_username": "kafka-user",
  "source_password": "kafka-password"
}
PLAINTEXT 認証
{
  "source_auth_type": "plaintext",
  "source_username": "kafka-user",
  "source_password": "kafka-password"
}

デバッグ

MCP インスペクターを使用してサーバーをデバッグできます。

uvx を使用してインストールした場合:

npx @modelcontextprotocol/inspector uvx msk-mcp-server

または、特定のディレクトリにパッケージをインストールした場合や、パッケージを開発している場合:

cd path/to/msk-mcp-server
npx @modelcontextprotocol/inspector python -m mcp_server_msk_mm2

アーキテクチャ

このサーバーはモジュール式アーキテクチャで構築されています。

コアフレームワーク:

  • FastMCP フレームワーク - 依存関係管理に対応した最新の MCP サーバー実装
  • モジュール式設計 - MSK 管理機能ごとにモジュールを分割
  • 統合インターフェース - サブモジュールをマウントした単一のサーバーインスタンス

モジュール構成:

  • mm2 モジュール - MirrorMaker2 コネクターの完全な管理
  • dr モジュール - カスタムドメインの作成と災害復旧操作

技術的な機能:

  • 同期操作 - 信頼性を高めるため、すべての操作を同期処理で実行
  • 包括的なエラー処理 - AWS エラーコードを含む詳細なエラーメッセージ
  • ステータス監視 - 長時間実行される操作の組み込みポーリング
  • 再試行ロジック - 一時的な障害に対する指数バックオフ
  • リソースの検証 - パラメーターの検証と状態の確認

コントリビューション

msk-mcp-server の拡張と改善に役立つコントリビューションを歓迎します。新しいツールの追加、既存機能の強化、ドキュメントの改善など、皆様の貢献は大切です。

ほかの MCP サーバーの例や実装パターンについては、以下をご覧ください。 https://github.com/modelcontextprotocol/servers

プルリクエストを歓迎します。新しいアイデア、バグ修正、機能強化をぜひお寄せいただき、msk-mcp-server をさらに強力で便利なものにしてください。

ライセンス

msk-mcp-server は MIT ライセンスのもとでライセンスされています。つまり、MIT ライセンスの利用規約に従うことを条件に、このソフトウェアを自由に使用、変更、配布できます。詳しくは、プロジェクトリポジトリ内の LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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