使用说明
Kafka MCP服务器
用于Apache Kafka操作的全面模型上下文协议(MCP)服务器,可与Claude Desktop和其他MCP客户端无缝集成。
🚀 特性
- 群集管理:监视群集运行状况、代理信息和元数据
- 主题操作:创建、列出、描述和删除Kafka主题
- 消息操作:通过灵活的配置发送和使用消息
- 消费者群体管理:列出并描述消费者群体
- 实时监控:获取主题指标、偏移量和性能数据
- 健康检查:全面的集群健康监测
- 安全配置:支持SASL、SSL和各种身份验证方法
📋 先决条件
- Python 3.8+
- Apache Kafka集群(本地或远程)
- pip包管理器
🛠️ 安装
-
克隆存储库:
git clone https://github.com/aswinayyolath/kafka-mcp-server.git cd kafka-mcp-server -
创建虚拟环境:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
安装依赖项:
pip install mcp kafka-python -
配置环境变量:
cp .env.template .env # Edit .env with your Kafka configuration
⚙️ 配置
环境变量
创建一个 .env 文件基于 .env.template:
# Basic Kafka Configuration
KAFKA_BOOTSTRAP_SERVERS=localhost:9092
KAFKA_SECURITY_PROTOCOL=PLAINTEXT
# SASL Configuration (if needed)
KAFKA_SASL_MECHANISM=PLAIN
KAFKA_SASL_USERNAME=your_username
KAFKA_SASL_PASSWORD=your_password
# SSL Configuration (if needed)
KAFKA_SSL_CAFILE=/path/to/ca.pem
KAFKA_SSL_CERTFILE=/path/to/cert.pem
KAFKA_SSL_KEYFILE=/path/to/key.pem
Docker设置(可选)
使用Docker启动本地Kafka集群:
docker-compose up -d
这将启动Kafka localhost:9092.
🧪 测试
运行全面的测试套件来验证您的设置:
# Set environment variables
export KAFKA_BOOTSTRAP_SERVERS=localhost:9092
export KAFKA_SECURITY_PROTOCOL=PLAINTEXT
# Run tests
python test_kafka_mcp.py
测试套件验证:
- Kafka连接
- MCP服务器启动
- 所有可用工具
- 主题操作
- 消息操作
- 资源和提示
🔧 用法
独立服务器
直接运行MCP服务器:
python kafka_mcp_server.py
Claude桌面集成
添加到您的Claude Desktop配置(claude_desktop_config.json):
{
"mcpServers": {
"kafka": {
"command": "python",
"args": ["/path/to/kafka_mcp_server.py"],
"env": {
"KAFKA_BOOTSTRAP_SERVERS": "localhost:9092",
"KAFKA_SECURITY_PROTOCOL": "PLAINTEXT"
}
}
}
}
🛠️ 可用工具
集群操作
get_cluster_info-获取全面的集群信息health_check-执行群集运行状况检查
主题操作
list_topics-列出集群中的所有主题create_topic-创建新主题describe_topic-获取详细的主题信息delete_topic-删除主题get_topic_metrics-获取全面的主题指标get_topic_offsets-获取分区偏移量
消息操作
send_message-发送一条消息send_batch_messages-发送多条消息consume_messages-消费来自某个主题的消息
消费者群体运营
list_consumer_groups-列出所有消费者群体describe_consumer_group-获取详细的消费者群体信息
📚 资源
服务器提供MCP资源,便于访问集群信息:
kafka://cluster/info-实时集群信息kafka://topics/list-当前主题列表
🎯 鼓励
常见场景的内置提示:
kafka_monitoring_prompt-生成监控和故障排除指南kafka_troubleshooting_prompt-获取特定问题的帮助
💡 Claude使用示例
一旦与Claude Desktop集成,您可以问:
- “你能检查我的Kafka集群的健康状况吗?”
- “列出所有主题及其分区计数”
- “创建一个名为“用户事件”的主题,包含3个分区”
- “向用户事件主题发送测试消息”
- “显示用户事件的最后10条消息”
- “哪些消费群体很活跃?”
🔒 安全
认证
服务器支持多种Kafka身份验证方法:
- 明文:无身份验证(仅用于开发)
- SASL_PLAINTEXT:通过普通连接进行SASL身份验证
- SASL_SSL:SSL上的SASL身份验证
- 安全套接层:SSL客户端证书身份验证
最佳实践
- 永不承诺
.env文件 -使用.env.template例如 - 在生产中使用SSL -始终加密与生产集群的连接
- 限制权限 -使用具有最低所需权限的专用服务帐户
- 监控访问 -记录并监控MCP服务器的使用情况
🐛 故障排除
常见问题
-
连接被拒绝:
- 验证Kafka是否正在运行
- 检查
KAFKA_BOOTSTRAP_SERVERS配置 - 确保网络连接
-
身份验证失败:
- 验证SASL凭据
- 检查SSL证书路径
- 验证安全协议设置
-
未找到主题:
- 确保主题存在
- 检查主题名称拼写
- 验证权限
调试模式
通过设置启用调试日志记录:
export PYTHONPATH=.
python -c "import logging; logging.basicConfig(level=logging.DEBUG)"
python kafka_mcp_server.py
🤝 贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 进行更改
- 运行测试:
python test_kafka_mcp.py - 提交更改:
git commit -am 'Add feature' - 推送到分支:
git push origin feature-name - 提交拉取请求
📄 许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- 模型上下文协议 -对于MCP规范
- Apache Kafka -适用于分布式流媒体平台
- 卡夫卡蟒蛇 -对于Python Kafka客户端
📞 支持
对于问题和疑问:
- 检查 故障排除部分
- 运行测试套件以验证您的设置
- 查看Kafka和MCP文档
- 打开一个包含详细错误信息的问题
使用MCP享受Kafka流媒体的快乐! 🎉