🚀 Kafka Schema Registry MCP Server
このプロジェクトは包括的なMessage Control Protocol (MCP)サーバーで、Claude Desktopやその他のMCPクライアントにKafka Schema Registry操作のためのツールを提供します。高度なスキーマコンテキストサポート、マルチレジストリ管理、包括的なスキーマエクスポート機能を備えています。

|
|
🎯 真正なMCP実装: 最新のFastMCP 2.8.0+フレームワークを使用し、完全にMCP 2025-06-18仕様に準拠しています。Claude Desktopやstdioを介したJSON-RPCを使用する他のMCPクライアントと完全互換です。
最新バージョン: v2.0.7 | Docker: aywengo/kafka-schema-reg-mcp:stable
|
🚀 クイックスタート
1. Dockerで実行(推奨)
docker pull aywengo/kafka-schema-reg-mcp:stable
docker run -e SCHEMA_REGISTRY_URL=http://localhost:8081 -e SLIM_MODE=true aywengo/kafka-schema-reg-mcp:stable
docker run -e SCHEMA_REGISTRY_URL=http://localhost:8081 aywengo/kafka-schema-reg-mcp:stable
2. Claude Desktopを設定
から使用可能な設定をコピーします。
cp config-examples/claude_desktop_stable_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
cp config-examples/claude_desktop_stable_config.json ~/.config/claude-desktop/config.json
3. Claudeで使用を開始
Claude Desktopを再起動し、以下のプロンプトを試してみましょう。
- "すべてのスキーマコンテキストをリストする"
- "本番環境のコンテキストにあるサブジェクトを表示する"
- "id、name、emailフィールドを持つ新しいユーザースキーマを登録する"
✨ 主な機能
- 🤖 Claude Desktopとの統合 - 自然言語インターフェースを備えた直接的なMCP統合
- 🏢 マルチレジストリサポート - 最大8つのSchema Registryインスタンスを同時に管理
- 📋 スキーマコンテキスト - 本番/ステージング環境の分離のための論理的なグループ化
- 🔄 スキーママイグレーション - バックアップと検証を伴うクロスレジストリマイグレーション
- 📊 包括的なエクスポート - バックアップとドキュメントのためのJSON、Avro IDL形式
- 🔒 本番環境の安全性 - VIEWONLYモードとレジストリごとのアクセス制御
- 🔐 OAuth 2.1認証 - スコープベースの権限を持つエンタープライズグレードのセキュリティ
- 📈 リアルタイム進捗 - 進捗追跡とキャンセルを伴う非同期操作
- 🔗 リソースリンク - 強化されたツール応答を持つHATEOASナビゲーション
- 🧪 完全なMCP準拠 - MCP 2025-06-18仕様に従った57+のツール
- 🚀 SLIM_MODE - LLMのパフォーマンス向上のために、ツールのオーバーヘッドを57+から~9の必須ツールに削減
📖 詳細な機能説明: docs/api-reference.md
📦 インストール
オプションA: Docker(推奨)
docker pull aywengo/kafka-schema-reg-mcp:stable
docker pull aywengo/kafka-schema-reg-mcp:latest
docker pull aywengo/kafka-schema-reg-mcp:2.0.7
SLIM_MODEで実行
LLMのオーバーヘッドを削減するために、SLIM_MODEを有効にして実行します。
docker run -e SCHEMA_REGISTRY_URL=http://localhost:8081 -e SLIM_MODE=true aywengo/kafka-schema-reg-mcp:stable
💡 SLIM_MODEの利点:
- ツール数を53+から~15の必須ツールに削減
- LLMの応答時間を大幅に高速化
- トークン使用量を削減し、コストを抑える
- 本番環境の読み取り専用操作に最適
- 完全なリモートデプロイメントサポートを維持
オプションB: ローカルPython
git clone https://github.com/aywengo/kafka-schema-reg-mcp
cd kafka-schema-reg-mcp
pip install -r requirements.txt
python kafka_schema_registry_unified_mcp.py
オプションC: Docker Compose
docker-compose up -d
📖 詳細なインストールガイド: docs/deployment.md
⚙️ 設定
シングルレジストリモード
export SCHEMA_REGISTRY_URL="http://localhost:8081"
export SCHEMA_REGISTRY_USER=""
export SCHEMA_REGISTRY_PASSWORD=""
export VIEWONLY="false"
export SLIM_MODE="false"
マルチレジストリモード(最大8つのレジストリ)
export SCHEMA_REGISTRY_NAME_1="development"
export SCHEMA_REGISTRY_URL_1="http://dev-registry:8081"
export VIEWONLY_1="false"
export SCHEMA_REGISTRY_NAME_2="production"
export SCHEMA_REGISTRY_URL_2="http://prod-registry:8081"
export VIEWONLY_2="true"
Claude Desktopの設定
に事前設定された例が用意されています。
| 設定 |
使用例 |
ファイル |
| 本番環境 |
安定したDockerデプロイメント |
|
| マルチ環境 |
DEV/STAGING/PRODレジストリ |
|
| ローカル開発 |
Pythonのローカル実行 |
|
| 読み取り専用安全性 |
安全性を持つ本番環境 |
|
📖 完全な設定ガイド: config-examples/README.md
SLIM_MODE設定(パフォーマンス最適化)
SLIM_MODEは、公開されるMCPツールの数を57+から~9の必須ツールに削減し、LLMのオーバーヘッドを大幅に削減し、応答時間を改善します。
💡 推奨事項: SLIM_MODEは、最適なパフォーマンスですべての必須スキーマ管理機能を提供するため、ほとんどの使用例に推奨されます。
SLIM_MODEを使用する場合(推奨)
- ほとんどのユーザーや日常の操作のデフォルト選択
- ツールが多すぎるためにLLMの応答が遅い場合
- 読み取り専用操作に重点を置いた本番環境の場合
- 基本的なスキーマ管理機能のみが必要な場合
- トークン使用量を削減し、パフォーマンスを向上させる場合
非SLIMモードを使用する場合
- 長時間実行される操作を行う管理者またはSREチームの場合
- 次のような高度な操作が必要な場合:
- レジストリ間のスキーママイグレーション
- 一括スキーマ削除とクリーンアップ操作
- 複雑なバッチ操作とワークフロー
- 複雑なタスクのためのインタラクティブなガイド付きウィザード
- 包括的なエクスポート/インポート操作
SLIM_MODEを有効にする
export SLIM_MODE="true"
SLIM_MODEで利用可能なツール
必須の読み取り専用ツール:
ping - サーバーのヘルスチェック
set_default_registry, get_default_registry - レジストリ管理
count_contexts, count_schemas, count_schema_versions - 統計
基本的な書き込み操作:
register_schema - 新しいスキーマを登録
check_compatibility - スキーマの互換性チェック
create_context - 新しいコンテキストを作成
必須のエクスポート操作:
export_schema - 単一のスキーマをエクスポート
export_subject - すべてのサブジェクトバージョンをエクスポート
利用可能なリソース(すべてのモード):
- すべての19個のリソースはSLIM_MODEでも利用可能です
registry://, schema://, subject:// リソースURI
- リソース優先アプローチによる完全な読み取りアクセス
SLIM_MODEで隠されるツール:
- すべてのマイグレーションツール (
migrate_schema, migrate_context)
- すべてのバッチ操作 (
clear_context_batch)
- 高度なエクスポート/インポートツール (
export_context, export_global)
- すべてのインタラクティブ/誘導ツール (
*_interactive バリアント)
- 非同期操作を伴う重い統計ツール
- タスク管理とワークフローツール
- 設定更新ツール
- 削除操作
注意: SLIM_MODE=falseで再起動することで、すべての57+のツールにアクセスできます。
📊 MCPツールとリソース
このセクションでは、Kafka Schema Registry MCP Serverによって公開されるすべてのMCPツールとリソースの包括的な分析を提供します。
下位互換性ラッパーツール
これらのツールは、既存のクライアントとの下位互換性のために維持されています。内部的には効率的な実装を使用していますが、"Tool not listed"エラーを防ぐためにツールとして公開されています。パフォーマンス向上のために、対応するリソースに移行することを検討してください。
| ツール名 |
SLIM_MODE |
スコープ |
推奨リソース |
説明 |
list_registries |
✅ |
読み取り |
registry://names |
すべての構成されたレジストリをリストする |
get_registry_info |
✅ |
読み取り |
registry://info/{name} |
レジストリ情報を取得する |
test_registry_connection |
✅ |
読み取り |
registry://status/{name} |
レジストリの接続をテストする |
test_all_registries |
✅ |
読み取り |
registry://status |
すべてのレジストリの接続をテストする |
list_subjects |
✅ |
読み取り |
registry://{name}/subjects |
すべてのサブジェクトをリストする |
get_schema |
✅ |
読み取り |
schema://{name}/{context}/{subject} |
スキーマ内容を取得する |
get_schema_versions |
✅ |
読み取り |
schema://{name}/{context}/{subject}/versions |
スキーマバージョンを取得する |
get_global_config |
✅ |
読み取り |
registry://{name}/config |
グローバル構成を取得する |
get_mode |
✅ |
読み取り |
registry://mode |
レジストリモードを取得する |
list_contexts |
✅ |
読み取り |
registry://{name}/contexts |
すべてのコンテキストをリストする |
get_subject_config |
✅ |
読み取り |
subject://{name}/{context}/{subject}/config |
サブジェクト構成を取得する |
get_subject_mode |
✅ |
読み取り |
subject://{name}/{context}/{subject}/mode |
サブジェクトモードを取得する |
コアMCPツール
| カテゴリ |
名前 |
タイプ |
SLIM_MODE |
スコープ |
説明 |
| コア |
ping |
ツール |
✅ |
読み取り |
MCPのping/pongヘルスチェック |
| レジストリ管理 |
set_default_registry |
ツール |
✅ |
管理者 |
デフォルトのレジストリを設定する |
| レジストリ管理 |
get_default_registry |
ツール |
✅ |
読み取り |
現在のデフォルトのレジストリを取得する |
| スキーマ操作 |
register_schema |
ツール |
✅ |
書き込み |
新しいスキーマバージョンを登録する |
| スキーマ操作 |
check_compatibility |
ツール |
✅ |
読み取り |
スキーマの互換性をチェックする |
| コンテキスト管理 |
create_context |
ツール |
✅ |
書き込み |
新しいコンテキストを作成する |
| コンテキスト管理 |
delete_context |
ツール |
❌ |
管理者 |
コンテキストを削除する |
| サブジェクト管理 |
delete_subject |
ツール |
❌ |
管理者 |
サブジェクトとバージョンを削除する |
| 構成 |
update_global_config |
ツール |
❌ |
管理者 |
グローバル構成を更新する |
| 構成 |
update_subject_config |
ツール |
❌ |
管理者 |
サブジェクト構成を更新する |
| モード管理 |
update_mode |
ツール |
❌ |
管理者 |
レジストリモードを更新する |
| モード管理 |
update_subject_mode |
ツール |
❌ |
管理者 |
サブジェクトモードを更新する |
| 統計 |
count_contexts |
ツール |
✅ |
読み取り |
コンテキストをカウントする |
| 統計 |
count_schemas |
ツール |
✅ |
読み取り |
スキーマをカウントする |
| 統計 |
count_schema_versions |
ツール |
✅ |
読み取り |
スキーマバージョンをカウントする |
| 統計 |
get_registry_statistics |
ツール |
❌ |
読み取り |
包括的なレジストリ統計を取得する |
| エクスポート |
export_schema |
ツール |
✅ |
読み取り |
単一のスキーマをエクスポートする |
| エクスポート |
export_subject |
ツール |
✅ |
読み取り |
すべてのサブジェクトバージョンをエクスポートする |
| エクスポート |
export_context |
ツール |
❌ |
読み取り |
すべてのコンテキストサブジェクトをエクスポートする |
| エクスポート |
export_global |
ツール |
❌ |
読み取り |
すべてのコンテキスト/スキーマをエクスポートする |
| エクスポート |
export_global_interactive |
ツール |
❌ |
読み取り |
インタラクティブなグローバルエクスポート |
| マイグレーション |
migrate_schema |
ツール |
❌ |
管理者 |
レジストリ間でスキーマをマイグレートする |
| マイグレーション |
migrate_context |
ツール |
❌ |
管理者 |
レジストリ間でコンテキストをマイグレートする |
| マイグレーション |
migrate_context_interactive |
ツール |
❌ |
管理者 |
インタラクティブなコンテキストマイグレーション |
| マイグレーション |
list_migrations |
ツール |
❌ |
読み取り |
マイグレーションタスクをリストする |
| マイグレーション |
get_migration_status |
ツール |
❌ |
読み取り |
マイグレーションの状態を取得する |
| 比較 |
compare_registries |
ツール |
❌ |
読み取り |
2つのレジストリを比較する |
| 比較 |
compare_contexts_across_registries |
ツール |
❌ |
読み取り |
レジストリ間でコンテキストを比較する |
| 比較 |
find_missing_schemas |
ツール |
❌ |
読み取り |
欠落しているスキーマを見つける |
| バッチ操作 |
clear_context_batch |
ツール |
❌ |
管理者 |
バッチ操作でコンテキストをクリアする |
| バッチ操作 |
clear_multiple_contexts_batch |
ツール |
❌ |
管理者 |
複数のコンテキストをクリアする |
| インタラクティブ |
register_schema_interactive |
ツール |
❌ |
書き込み |
インタラクティブなスキーマ登録 |
| インタラクティブ |
check_compatibility_interactive |
ツール |
❌ |
読み取り |
インタラクティブな互換性チェック |
| インタラクティブ |
create_context_interactive |
ツール |
❌ |
書き込み |
インタラクティブなコンテキスト作成 |
| リソース探索 |
list_available_resources |
ツール |
✅ |
読み取り |
すべての利用可能なリソースをリストする |
| リソース探索 |
suggest_resource_for_tool |
ツール |
✅ |
読み取り |
ツールのためのリソースマイグレーションの提案を取得する |
| リソース探索 |
generate_resource_templates |
ツール |
✅ |
読み取り |
リソースURIテンプレートを生成する |
| タスク管理 |
get_task_status |
ツール |
❌ |
読み取り |
タスクの状態を取得する |
| タスク管理 |
get_task_progress |
ツール |
❌ |
読み取り |
タスクの進捗を取得する |
| タスク管理 |
list_active_tasks |
ツール |
❌ |
読み取り |
アクティブなタスクをリストする |
| タスク管理 |
cancel_task |
ツール |
❌ |
管理者 |
実行中のタスクをキャンセルする |
| タスク管理 |
list_statistics_tasks |
ツール |
❌ |
読み取り |
統計タスクをリストする |
| タスク管理 |
get_statistics_task_progress |
ツール |
❌ |
読み取り |
統計タスクの進捗を取得する |
| 誘導 |
submit_elicitation_response |
ツール |
❌ |
書き込み |
誘導応答を送信する |
| 誘導 |
list_elicitation_requests |
ツール |
❌ |
読み取り |
誘導要求をリストする |
| 誘導 |
get_elicitation_request |
ツール |
❌ |
読み取り |
誘導要求の詳細を取得する |
| 誘導 |
cancel_elicitation_request |
ツール |
❌ |
管理者 |
誘導要求をキャンセルする |
| 誘導 |
get_elicitation_status |
ツール |
❌ |
読み取り |
誘導システムの状態を取得する |
| ワークフロー |
list_available_workflows |
ツール |
❌ |
読み取り |
利用可能なワークフローをリストする |
| ワークフロー |
get_workflow_status |
ツール |
❌ |
読み取り |
ワークフローの状態を取得する |
| ワークフロー |
guided_schema_migration |
ツール |
❌ |
管理者 |
スキーママイグレーションウィザードを開始する |
| ワークフロー |
guided_context_reorganization |
ツール |
❌ |
管理者 |
コンテキスト再編成ウィザードを開始する |
| ワークフロー |
guided_disaster_recovery |
ツール |
❌ |
管理者 |
災害復旧ウィザードを開始する |
| ユーティリティ |
get_mcp_compliance_status_tool |
ツール |
❌ |
読み取り |
MCP準拠状態を取得する |
| ユーティリティ |
get_oauth_scopes_info_tool |
ツール |
❌ |
読み取り |
OAuthスコープ情報を取得する |
| ユーティリティ |
test_oauth_discovery_endpoints |
ツール |
❌ |
読み取り |
OAuthディスカバリエンドポイントをテストする |
| ユーティリティ |
get_operation_info_tool |
ツール |
❌ |
読み取り |
操作メタデータを取得する |
| ユーティリティ |
check_viewonly_mode |
ツール |
❌ |
読み取り |
レジストリがVIEWONLYモードかどうかをチェックする |
| RESOURCES |
registry://status |
リソース |
✅ |
読み取り |
全体的なレジストリ接続状態 |
| RESOURCES |
registry://info |
リソース |
✅ |
読み取り |
詳細なサーバー構成 |
| RESOURCES |
registry://mode |
リソース |
✅ |
読み取り |
レジストリモード検出 |
| RESOURCES |
registry://names |
リソース |
✅ |
読み取り |
構成されたレジストリ名のリスト |
| RESOURCES |
registry://status/{name} |
リソース |
✅ |
読み取り |
特定のレジストリ接続状態 |
| RESOURCES |
registry://info/{name} |
リソース |
✅ |
読み取り |
特定のレジストリ構成 |
| RESOURCES |
registry://mode/{name} |
リソース |
✅ |
読み取り |
特定のレジストリモード |
| RESOURCES |
registry://{name}/subjects |
リソース |
✅ |
読み取り |
レジストリのサブジェクトをリストする |
| RESOURCES |
registry://{name}/contexts |
リソース |
✅ |
読み取り |
レジストリのコンテキストをリストする |
| RESOURCES |
registry://{name}/config |
リソース |
✅ |
読み取り |
レジストリのグローバル構成 |
| RESOURCES |
schema://{name}/{context}/{subject} |
リソース |
✅ |
読み取り |
コンテキスト付きのスキーマ内容 |
| RESOURCES |
schema://{name}/{subject} |
リソース |
✅ |
読み取り |
デフォルトコンテキストのスキーマ内容 |
| RESOURCES |
schema://{name}/{context}/{subject}/versions |
リソース |
✅ |
読み取り |
コンテキスト付きのスキーマバージョン |
| RESOURCES |
schema://{name}/{subject}/versions |
リソース |
✅ |
読み取り |
デフォルトコンテキストのスキーマバージョン |
| RESOURCES |
subject://{name}/{context}/{subject}/config |
リソース |
✅ |
読み取り |
コンテキスト付きのサブジェクト構成 |
| RESOURCES |
subject://{name}/{subject}/config |
リソース |
✅ |
読み取り |
デフォルトコンテキストのサブジェクト構成 |
| RESOURCES |
subject://{name}/{context}/{subject}/mode |
リソース |
✅ |
読み取り |
コンテキスト付きのサブジェクトモード |
| RESOURCES |
subject://{name}/{subject}/mode |
リソース |
✅ |
読み取り |
デフォルトコンテキストのサブジェクトモード |
| RESOURCES |
elicitation://response/{request_id} |
リソース |
❌ |
書き込み |
誘導応答の処理 |
💻 使用例
スキーマ管理
"id、name、emailフィールドを持つユーザースキーマを登録する"
"更新したスキーマが互換性があるかどうかを確認する"
"ステージングコンテキストからすべてのスキーマをエクスポートする"
"本番環境のコンテキストにあるサブジェクトをリストする"
マルチレジストリ操作
"開発環境と本番環境のレジストリを比較する"
"ユーザーイベントスキーマをステージングから本番環境にマイグレートする"
"すべてのレジストリへの接続をテストする"
"レジストリの統計を表示する"
バッチ操作
"テストコンテキストからすべてのスキーマをクリアする"
"バックアップのためにグローバルスキーマをエクスポートする"
"すべてのコンテキストでスキーマをカウントする"
📖 詳細な使用例: examples/ | 📖 ユースケース: docs/use-cases.md
🔒 認証とセキュリティ
OAuth 2.1サポート(オプション)
export ENABLE_AUTH=true
export AUTH_ISSUER_URL="https://your-oauth-provider.com"
export AUTH_AUDIENCE="your-client-id"
サポートされるプロバイダー: Azure AD、Google OAuth、Keycloak、Okta、GitHub
権限スコープ:
read - スキーマ、構成を表示する
write - スキーマを登録し、構成を更新する(readを含む)
admin - サブジェクトを削除し、完全なコントロールを行う(write + readを含む)
本番環境の安全性機能
- VIEWONLYモード - 本番環境での誤った変更を防止する
- URL検証 - 構成可能なローカルホストアクセスを持つSSRF保護
- スコープベースの承認 - 細かいツールレベルの権限
- レジストリごとのコントロール - 独立した安全設定
📖 セキュリティガイド: docs/deployment.md#security
📚 ドキュメント
| ガイド |
説明 |
| APIリファレンス |
サンプル付きの完全なツールドキュメント |
| ユースケース |
実際のシナリオと実装パターン |
| デプロイメントガイド |
Docker、Kubernetes、クラウドプラットフォーム、CI/CD |
| IDE統合 |
VS Code、Claude Code、Cursorの設定 |
| 設定例 |
すぐに使えるClaude Desktopの設定 |
| テストガイド |
包括的なテストセットアップ |
| 変更履歴 |
バージョン履歴と移行ノート |
| v2.0.0のハイライト |
主要バージョンの機能 |
追加リソース
- サンプル - 使用例とコードサンプル
- スクリプト - ユーティリティスクリプトと自動化
- Helmチャート - Kubernetesデプロイメント
- テスト - テストスイートと検証
🧪 テスト
クイックテスト
cd tests/
./run_all_tests.sh --quick
./run_all_tests.sh
Dockerテスト
python tests/test_docker_mcp.py
📖 テストガイド: TESTING_SETUP_GUIDE.md
🚀 デプロイメント
本番環境のDocker
docker-compose up -d
docker run -d -p 38000:8000 \
-e SCHEMA_REGISTRY_URL=http://registry:8081 \
aywengo/kafka-schema-reg-mcp:stable
Kubernetes
helm install kafka-schema-mcp ./helm/kafka-schema-reg-mcp
📖 デプロイメントガイド: docs/deployment.md
🤝 コントリビューション
コントリビューションを歓迎します!詳細は以下を参照してください。
- コントリビューションガイドライン
- 行動規範
- 開発セットアップ
クイック開発セットアップ
git clone https://github.com/aywengo/kafka-schema-reg-mcp
cd kafka-schema-reg-mcp
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python kafka_schema_registry_unified_mcp.py
🆕 新機能
v2.0.x (最新)
- 🔒 セキュリティ修正 - ロギングにおける資格情報の露出を解消
- 🤖 インタラクティブなスキーママイグレーション - ユーザーの好みを考慮したスマートなマイグレーション
- 💾 自動バックアップ - マイグレーション前のバックアップ作成
- ✅ マイグレーション後の検証 - 包括的なスキーマ検証
- 🚀 FastMCP 2.8.0+フレームワーク - 完全なアーキテクチャアップグレード
- 📊 MCP 2025-06-18準拠 - 最新のプロトコル仕様
- 🔐 OAuth 2.1汎用ディスカバリ - ユニバーサルなプロバイダー互換性
- 🔗 リソースリンク - ツール応答におけるHATEOASナビゲーション
📖 完全な変更履歴: CHANGELOG.md | 📖 v2.0.0の機能: README-v2.0.0-HIGHLIGHTS.md
🐳 Glama.ai:
🐳 Docker Hub: aywengo/kafka-schema-reg-mcp | 📊 統計: 70+ MCPツール (12の下位互換性)、19のリソース、8つのレジストリ、OAuth 2.1、マルチプラットフォーム
ライセンス: MIT | メンテナー: @aywengo | 問題報告: GitHub Issues