MSK MCP Server について
Amazon MSK、MirrorMaker2 コネクター、カスタムドメイン、災害復旧を管理する MCP サーバーです。Kafka インフラを運用するチーム向けに、レプリケーション設定から DNS 切り替えまでのツールと状態監視を提供します。
主な機能
- 01MirrorMaker2 レプリケーションの構成
- 02プラグイン、コネクター、ワーカー設定の管理
- 03MSK カスタムドメインの作成
- 04Route53 による災害復旧切り替え
- 05クラスター、プラグイン、コネクターの状態監視
- 06IAM、PLAINTEXT、SCRAM-SHA-512 認証
活用シーン
- 01MSK クラスター間の MirrorMaker2 レプリケーション設定
- 02クラスター用カスタム DNS ドメインの作成
- 03プライマリと災害復旧クラスター間の切り替え
- 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 つの主要なモジュールを提供します。
- MirrorMaker2 モジュール(mm2) - カスタムプラグインの作成、コネクターの構成、ステータスの監視を含む、MM2 パイプライン全体のオーケストレーション
- カスタムドメインモジュール(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 を自動検出して関連付けます

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 - さまざまな規模に応じたパフォーマンス最適化の推奨事項
前提条件
-
AWS アカウントのセットアップ
- 適切な権限を持つ AWS アカウント
- 適切に設定された MSK クラスター(ソースとターゲット)
- MSK Connect 用に設定された VPC サブネットとセキュリティグループ
- MSK Connect 用の IAM サービス実行ロール
-
必要な AWS 権限
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafkaconnect:*", "kafka:*", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "route53:*", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" } ] } -
S3 バケット
- MirrorMaker2 プラグインファイルを保存するための S3 バケット
- MSK Connect がバケットにアクセスするための適切な IAM 権限
-
Route53 ホストゾーン (カスタムドメイン機能を使用する場合)
- カスタムドメイン作成用の Route53 ホストゾーン
- Route53 レコードを管理するための適切な IAM 権限
- プライベートホストゾーン用に設定された VPC 関連付け
-
ネットワーク構成
- ソースとターゲットの両方の 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 ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。