Kafka MCP Server について
Kafka MCP Serverは、Kafkaクラスターのトピックを管理するためのツールをMCPクライアントに提供します。プロパティファイルから接続設定を読み込み、トピックの一覧、作成、削除、確認に対応します。
主な機能
- 01プロパティファイルから接続設定を読み込み
- 02Kafkaトピックの一覧表示
- 03トピックの作成と削除
- 04パーティション、レプリカ、ISRの確認
- 05接続管理とエラー処理
活用シーン
- 01クラスター内のトピック確認
- 02パーティション数とレプリケーション係数を指定した作成
- 03不要になったトピックの削除
- 04トピックのパーティション、レプリカ、ISRの確認
MCP 対応
Kafkaへの接続とトピック操作をMCPクライアント向けのツールとして公開します。クラスターへの接続、トピックの一覧表示、作成、削除、確認が可能です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kafka MCP サーバー
このプロジェクトは、標準的なツールベースのインターフェースを通じて Kafka クラスターを操作できる Model Context Protocol(MCP) サーバーを提供します。メッセージの生成や消費、トピックの一覧表示など、さまざまな Kafka 操作を公開し、Claude Desktop または MCP 対応クライアントから利用できます。
🛠 特長
- Kafka トピックの一覧表示
- トピックの作成と削除
- メッセージの生成
🚀 クイックスタート
1. リポジトリをクローンする
git clone https://github.com/joel-hanson/kafka-mcp-server.git
cd kafka-mcp-server
2. Python 環境をセットアップする(conda を使用)
conda create -n kafka-mcp python=3.10 -y
conda activate kafka-mcp
pip install -r requirements.txt
3. MCP サーバーを起動する(ローカル開発用)
mcp dev
これによりサーバーが起動し、ツールのプロンプトと応答をテストできる MCP Inspector が開きます。
使用方法
サーバーの実行
python server.py
利用可能なツール
- kafka_initialize_connection - プロパティファイルを使用して Kafka に接続します
- kafka_list_topics - クラスター内のすべてのトピックを一覧表示します
- kafka_create_topic - 新しいトピックを作成します
- kafka_delete_topic - 既存のトピックを削除します
- kafka_get_topic_info - トピックの詳細情報を取得します
使用例の流れ
-
まず、Kafka に接続します:
Use kafka_initialize_connection with your properties file <path> OR Initialize connection with kafka using the properties file <path> -
既存のトピックを一覧表示します:
Use kafka_list_topics to see all topics OR List all the topics -
新しいトピックを作成します:
Use kafka_create_topic with name "my-topic", partitions 3, replication_factor 1 OR Create me a topic with name "my-topic" -
トピックの詳細を取得します:
Use kafka_get_topic_info for "my-topic"
機能
- 構成管理:標準的なプロパティファイルから Kafka 接続の詳細を読み込みます
- トピック管理:トピックの一覧表示、作成、削除、確認を行います
- エラー処理:わかりやすいメッセージを含む包括的なエラー処理を提供します
- 接続管理:効率的な接続プーリングとクリーンアップを行います
- 拡張性:Kafka の操作を簡単に追加できます
対応する Kafka 操作
現在
- トピックの一覧表示
- パーティション数とレプリケーション係数を指定したトピックの作成
- トピックの削除
- トピックの確認(パーティション、レプリカ、ISR)
今後の予定
- メッセージの生成
- メッセージの消費
- コンシューマーグループの管理
- オフセット管理
- クラスター情報
- パフォーマンス指標
トラブルシューティング
よくある問題
- 接続失敗:プロパティファイルの
bootstrap.serversを確認してください - 認証エラー:SASL/SSL の構成を確認してください
- トピックがすでに存在します:既存のトピックを確認するには
kafka_get_topic_infoを使用してください - 権限がありません:Kafka ユーザーに必要な権限があることを確認してください
ログ
サーバーは stdout にログを出力します。コード内の logging.basicConfig(level=logging.INFO) 行を変更すると、ログレベルを調整できます。
セキュリティに関する注意事項
- 機密性の高い認証情報は安全に保管してください
- 本番環境では SSL/TLS を使用してください
- 適切な認証と認可を実装してください
- 認証情報は定期的にローテーションしてください
🧠 Claude Desktop での使用
Kafka MCP サーバーを Claude Desktop と統合するには:
Claude にインストールします:
mcp install <file_spec> -f <optional env file>
注意:依存関係に関する問題が発生する場合は、claud_desktop_config.json に Python の絶対パスを設定し、実行するファイルを指定してください。
MCP クライアントの構成
MCP クライアントの構成(例:Claude Desktop)に次の内容を追加します:
{
"mcpServers": {
"kafka": {
"command": "python",
"args": ["/path/to/server.py"]
}
}
}
{
"mcpServers": {
"Kafka MCP Server": {
"command": "/opt/miniconda3/envs/kafka-mcp/bin/python",
"args": [
"/path/to/server.py"
]
}
}
}
これで Claude は、Python サーバーで @mcp.prompt() を通じて定義したツールを検出し、操作できるようになります。
構成
Kafka の接続情報を含む Kafka プロパティファイル(例:kafka.properties)を作成します:
# Basic Kafka connection
bootstrap.servers=localhost:9092
client.id=kafka-mcp-client
# Security configuration (if needed)
# security.protocol=SASL_SSL
# sasl.mechanism=PLAIN
# sasl.username=your-username
# sasl.password=your-password
# SSL configuration (if needed)
# ssl.ca.location=/path/to/ca-cert
# ssl.certificate.location=/path/to/client-cert
# ssl.key.location=/path/to/client-key
📂 プロジェクト構成
kafka_mcp_server/
├── server.py # Main FastMCP server defining tools
├── kafka_utils.py
├── requirements.txt
├── README.md
└── ...
🧩 ツールのデバッグに関するヒント
mcp devを使用して、プロンプトの動作を対話的に確認します- ツール関数に
print()またはlogging.debug()を追加します - 正しく解析されるよう、構造化された
@prompt関数シグネチャを使用します
📦 要件
次の内容を requirements.txt に追加します:
kafka-python
mcp[cli]
pydantic
uv
テスト
docker compose up を実行して、単一ブローカーの Kafka クラスターを起動してください。ブートストラップサーバー localhost:9092 を使用して操作できます。
🔗 リソース
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。