Token导航 LogoToken导航TokenDH.com
CDF Kafka MCP Server logo
安全风控stdio官方级别未说明来源级核验

CDF Kafka MCP Server

MCP Server

一个为Apache Kafka提供模型上下文协议(MCP)接口的服务器,支持Apache Knox认证,实现AI模型与Kafka集群的安全交互。

工具数

41

提示词数

0

GitHub Stars

0

资源数

0
企业安全PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

BrooksIan

提供方

BrooksIan

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run python -m cdf_kafka_mcp_server

详细介绍

CDF Kafka MCP服务器

一个支持Apache Knox身份验证的Apache Kafka模型上下文协议(MCP)服务器,灵感来自 SSB MCP服务器 实施。

概述

CDF Kafka MCP服务器通过模型上下文协议在AI模型和Apache Kafka集群之间提供了一个全面的桥梁。它使AI应用程序能够与Kafka主题进行交互,生成和使用消息,并通过一个安全的、企业就绪的Apache Knox身份验证接口管理消费者组。

📸 视觉示例:此README包括显示如何使用SMM(Streams Messaging Manager)web界面创建主题、添加数据和列出主题的屏幕截图。请参阅 视觉示例 有关分步视觉指南的部分。

特性

🔐 企业安全

  • Apache Knox网关 管理API集成的身份验证支持
  • CDP云 令牌身份验证和基本身份验证支持
  • 多种身份验证方法(基于令牌、用户名/密码、CDP令牌)
  • 用于安全通信的TLS/SSL配置
  • 可配置的SSL证书验证
  • 通过Knox网关发现服务

🚀 增强的Kafka操作

  • 多方法主题创建:Knox网关、CDP云、Connect API、管理客户端
  • 多途径消息生成:Direct、Knox、CDP、Connect API
  • 高级主题管理:使用回退方法创建、列出、描述、删除、配置
  • 消息操作:使用元数据和多种传输方式进行生产和消费
  • 批量消息生成:高效的批量消息处理
  • 补偿管理:高级分区和偏移管理
  • 消费者群体管理:完整的消费者群体生命周期管理

📊 监测和健康检查

  • 综合健康监测:所有服务的实时健康状况
  • 性能指标:请求计数、响应时间、成功率
  • 服务发现:自动检测可用服务
  • 健康史:随时间跟踪健康状况
  • 个人健康检查:对每项服务进行细致的健康监测
  • 指标收集:详细的性能和使用指标

🔧 诺克斯网关集成

  • 拓扑管理:创建和管理Knox拓扑
  • 服务配置:通过Knox配置Kafka服务
  • 许可证管理:JWT令牌处理和验证
  • 服务发现:自动服务端点发现
  • 健康监测:诺克斯特定健康检查
  • 管理员API:完全Knox Admin API集成

☁️ CDP云支持

  • CDP代理API:与CDP代理端点集成
  • CDP令牌身份验证:支持CDP特定令牌
  • 服务健康:CDP云服务运行状况监控
  • API发现:自动发现CDP API端点
  • 后备支援:CDP和其他方法之间的巧妙回退

🛠️ 开发者体验

  • 完整模型上下文协议 符合40多种工具
  • 元数据:全面的错误报告和状态信息
  • 灵活配置:YAML和环境变量配置
  • 综合录井:用于调试和监控的结构化日志记录
  • 多种运输方式:支持多种Kafka访问方式
  • 故障弱化:不同方法之间的自动回退

局限性

已知问题

  • 管理客户机: kafka-python 管理客户端在某些环境中可能会失败(NodeNotReadyError)
  • 制片人超时:在某些Cloudera环境中,消息生成可能会超时
  • 模拟源连接器:Cloudera MockSourceConnector可能无法可靠地生成消息
  • 诺克斯门户:需要正确配置才能实现完整功能

权变措施

为了确保操作的可靠性,请使用以下替代方案:

# List topics
docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

# Create topics
docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic my-topic

# Produce messages
docker exec -it kafka /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic my-topic

# Consume messages
docker exec -it kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning

快速开始

起床跑步

  1. 启动Docker环境
git clone https://github.com/ibrooks/cdf-kafka-mcp-server.git
cd cdf-kafka-mcp-server
docker-compose up -d
  1. 验证服务
# Check Kafka
docker exec kafka /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

# Check SMM UI
curl -f http://localhost:9991/ || echo "SMM UI not ready yet"
  1. 添加测试数据
echo '{"message": "Hello from Quick Start!", "timestamp": "2024-10-23T20:00:00Z"}' | \
docker exec -i kafka /opt/kafka/bin/kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic cursortest
  1. 在SMM UI中查看
  • 打开http://localhost:9991/
  • 登录 admin / admin123
  • 导航到最热门的主题
  1. 测试MCP服务器(可选)
export KAFKA_BOOTSTRAP_SERVERS=localhost:9092
uv run python -m cdf_kafka_mcp_server

安装

先决条件

  • Python 3.10或更高版本
  • Apache Kafka集群
  • Apache Knox网关(可选,用于企业身份验证)

从源代码安装

git clone https://github.com/ibrooks/cdf-kafka-mcp-server.git
cd cdf-kafka-mcp-server
uv pip install -e .

Cloudera代理工作室

与Cloudera Agent Studio一起使用:

{
  "mcpServers": {
    "cdf-kafka-mcp-server": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/ibrooks/cdf-kafka-mcp-server@main", "run-server"],
      "env": {
        "KAFKA_BOOTSTRAP_SERVERS": "kafka-broker1:9092,kafka-broker2:9092",
        "KNOX_TOKEN": "",
        "KNOX_GATEWAY": "https://knox-gateway.yourshere.cloudera.site:8443"
      }
    }
  }
}

配置

云部署配置

该项目包括主要云Kafka服务的预配置模板:

AWS MSK(Kafka的托管流媒体)

# Use AWS MSK configuration
cp config/kafka_config_aws_msk.yaml config/kafka_config.yaml

# Set AWS credentials
export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"
export AWS_REGION="us-east-1"

汇流云

# Use Confluent Cloud configuration
cp config/kafka_config_confluent_cloud.yaml config/kafka_config.yaml

# Set Confluent credentials
export CONFLUENT_API_KEY="your-api-key"
export CONFLUENT_API_SECRET="your-api-secret"

Kafka的Azure事件中心

# Use Azure Event Hubs configuration
cp config/kafka_config_azure_eventhub.yaml config/kafka_config.yaml

# Set Azure connection string
export AZURE_EVENTHUB_CONNECTION_STRING="your-connection-string"

通用云配置

# Use generic cloud configuration
cp config/kafka_config_cloud.yaml config/kafka_config.yaml

# Set your cloud provider credentials
export KAFKA_SASL_USERNAME="your-username"
export KAFKA_SASL_PASSWORD="your-password"

快速设置脚本

为了简化云部署设置,请使用提供的脚本:

# Make the script executable
chmod +x setup_cloud.sh

# Setup for your cloud provider
./setup_cloud.sh aws-msk
./setup_cloud.sh confluent-cloud
./setup_cloud.sh azure-eventhub
./setup_cloud.sh generic

环境变量模板

对于云部署,请使用环境变量模板:

# Copy and customize the template
cp config/env_cloud_template.txt .env
# Edit .env with your actual values

云部署注意事项

在部署到云环境时,请考虑以下重要因素:

安全

  • 使用IAM角色:对于AWS MSK,更喜欢IAM角色而不是访问密钥
  • 旋转凭据:定期轮换API密钥和令牌
  • 网络安全:适当使用VPC和安全组
  • 加密:确保为所有连接启用TLS/SSL

演出

  • 连接池:云服务可能有连接限制
  • 重试逻辑:实现重试的指数回退
  • 监控:使用云提供商监控工具
  • 扩展:考虑根据负载自动缩放

成本优化

  • 资源规模:适当调整Kafka集群的大小
  • 数据保留:设置适当的保留策略
  • 压缩:启用压缩以降低带宽成本
  • 监控:监控使用情况以避免意外收费

可靠性

  • 多AZ:跨多个可用区部署
  • 备份:实施适当的备份策略
  • 灾难恢复:灾难恢复方案计划
  • 健康检查实施全面的健康监测

配置文件

在以下位置创建配置文件 config/kafka_config.yaml:

kafka:
  bootstrap_servers: "localhost:9092"
  client_id: "cdf-kafka-mcp-server"
  security_protocol: "PLAINTEXT"
  timeout: 30

knox:
  gateway: "https://knox-gateway.example.com:8443"
  token: "your-knox-token-here"
  verify_ssl: true
  service: "kafka"

环境变量

您还可以使用环境变量配置服务器:

export KAFKA_BOOTSTRAP_SERVERS="localhost:9092"
export KNOX_GATEWAY="https://knox-gateway.example.com:8443"
export KNOX_TOKEN="your-knox-token-here"
export KNOX_VERIFY_SSL="true"

Claude桌面集成

添加到您的Claude Desktop配置(claude_desktop_config.json):

{
  "mcpServers": {
    "cdf-kafka-mcp-server": {
      "command": "cdf-kafka-mcp-server",
      "args": ["--config", "./config/kafka_config.yaml"],
      "env": {
        "KNOX_GATEWAY": "https://knox-gateway.example.com:8443",
        "KNOX_TOKEN": "your-knox-token-here"
      }
    }
  }
}

用法

基本设置

直接Kafka连接:

export KAFKA_BOOTSTRAP_SERVERS="localhost:9092"
uv run python -m cdf_kafka_mcp_server

诺克斯网关(制作):

export KNOX_GATEWAY="https://your-knox-gateway:8444"
export KNOX_TOKEN="your-bearer-token-here"
export KNOX_SERVICE="kafka"
uv run python -m cdf_kafka_mcp_server

配置文件:

uv run python -m cdf_kafka_mcp_server --config config/kafka_config.yaml

身份验证方法

诺克斯熊代币(推荐):

export KNOX_GATEWAY="https://knox-gateway.company.com:8444"
export KNOX_TOKEN="your-bearer-token-here"
export KNOX_SERVICE="kafka"
uv run python -m cdf_kafka_mcp_server

直接Kafka连接:

export KAFKA_BOOTSTRAP_SERVERS="kafka1:9092,kafka2:9092"
export KAFKA_SECURITY_PROTOCOL="SASL_SSL"
export KAFKA_SASL_MECHANISM="PLAIN"
export KAFKA_SASL_USERNAME="your-username"
export KAFKA_SASL_PASSWORD="your-password"
uv run python -m cdf_kafka_mcp_server

配置

环境变量:

  • KAFKA_BOOTSTRAP_SERVERS -Kafka代理地址(必填)
  • KNOX_GATEWAY -Knox网关URL(用于Knox身份验证)
  • KNOX_TOKEN -承载令牌(用于Knox身份验证)
  • MCP_LOG_LEVEL -日志级别(默认值:INFO)

YAML配置:

kafka:
  bootstrap_servers: "localhost:9092"
  security_protocol: "PLAINTEXT"

knox:
  gateway: "https://knox-gateway.company.com:8444"
  token: "your-bearer-token-here"
  service: "kafka"

可用的MCP工具

服务器提供 40+MCP工具 对于全面的Kafka操作:

🗂️ 主题管理(7个工具):

  • list_topics -列出所有Kafka主题
  • create_topic - 增强:使用多种方法创建主题(Knox、CDP、Connect、Admin)
  • describe_topic -获取详细的主题信息
  • delete_topic -删除Kafka主题
  • topic_exists -检查主题是否存在
  • get_topic_partitions -获取主题分区计数
  • update_topic_config -更新主题配置

📨 消息操作(6个工具):

  • produce_message - 增强:使用多种方法(Direct、Knox、CDP、Connect)生成消息
  • consume_messages -消费来自某个主题的消息
  • get_topic_offsets -获取主题分区偏移量
  • get_consumer_groups -列出消费者群体
  • get_consumer_group_details -获取消费者群体详细信息
  • reset_consumer_group_offsets -重置消费者群体偏移

🔌 Kafka连接管理(15个工具):

  • list_connectors -列出所有连接器
  • create_connector -创建新连接器
  • get_connector_status -获取连接器状态
  • delete_connector -删除连接器
  • pause_connector -暂停连接器
  • resume_connector -恢复连接器
  • list_connector_plugins -列出可用插件
  • validate_connector_config -验证连接器配置

🔧 Knox网关集成(7个工具):

  • test_knox_connection -测试Knox网关连接
  • get_knox_metadata -获取Knox网关元数据
  • get_knox_gateway_info - :获取诺克斯网关信息和状态
  • list_knox_topologies - :列出所有Knox拓扑
  • get_knox_topology - :获取特定的Knox拓扑配置
  • create_knox_topology - :为Kafka服务创建新的Knox拓扑
  • get_knox_service_health - :获取诺克斯服务的健康状况
  • get_knox_service_urls - :通过Knox网关获取服务URL

☁️ CDP云集成(4个工具):

  • test_cdp_connection - :测试与CDP Cloud的连接
  • get_cdp_apis - :获取有关可用CDP API的信息
  • get_cdp_service_health - :获取CDP服务的健康状况
  • validate_cdp_token - :验证CDP令牌

📊 监测和健康检查(5个工具):

  • get_health_status - :获取所有服务的全面健康状况
  • get_health_summary - :获取健康状况摘要
  • get_health_history - :获取健康检查历史记录
  • get_service_metrics - :获取服务性能指标
  • run_health_check - :运行特定的健康检查

🔗 系统信息(3个工具):

  • get_broker_info -获取Kafka代理信息
  • get_cluster_metadata -获取集群元数据
  • test_connection -测试Kafka连接

使用示例

增强的主题操作:

{"tool": "list_topics", "arguments": {}}
{"tool": "create_topic", "arguments": {"name": "user-events", "partitions": 3, "method": "auto"}}
{"tool": "describe_topic", "arguments": {"name": "user-events"}}

增强的消息操作:

{"tool": "produce_message", "arguments": {"topic": "user-events", "value": "Hello Kafka!", "method": "auto"}}
{"tool": "consume_messages", "arguments": {"topic": "user-events", "max_count": 10}}

诺克斯门户运营:

{"tool": "get_knox_gateway_info", "arguments": {}}
{"tool": "create_knox_topology", "arguments": {"topology_name": "kafka-topology", "kafka_brokers": ["broker1:9092"]}}
{"tool": "get_knox_service_health", "arguments": {"topology": "default"}}

CDP云运营:

{"tool": "test_cdp_connection", "arguments": {}}
{"tool": "get_cdp_apis", "arguments": {}}
{"tool": "validate_cdp_token", "arguments": {"token": "your-cdp-token"}}

监测和健康检查:

{"tool": "get_health_status", "arguments": {}}
{"tool": "get_health_summary", "arguments": {}}
{"tool": "run_health_check", "arguments": {"check_name": "kafka"}}
{"tool": "get_service_metrics", "arguments": {}}

Kafka连接:

{"tool": "list_connectors", "arguments": {}}
{"tool": "create_connector", "arguments": {"name": "my-connector", "config": {...}}}

Claude桌面集成

{
  "mcpServers": {
    "cdf-kafka-mcp-server": {
      "command": "uv",
      "args": ["run", "python", "-m", "cdf_kafka_mcp_server"],
      "env": {
        "KNOX_GATEWAY": "https://your-knox-gateway:8444",
        "KNOX_TOKEN": "your-bearer-token-here"
      }
    }
  }
}

视觉示例

通过SMM UI创建主题

以下屏幕截图显示了如何使用Streams Messaging Manager(SMM)web界面创建新的Kafka主题:

Add Topic

*此示例演示了SMM web界面中的主题创建过程,显示了主题名称、分区、复制因子和配置选项。*

向主题添加数据

以下屏幕截图显示了如何使用SMM web界面向Kafka主题添加数据:

Add Data to Topic

*此示例演示了SMM web界面中的消息生成过程,展示了如何使用键值对和标头向Kafka主题发送消息。*

通过SMM UI列出主题

以下屏幕截图显示了如何使用Streams消息传递管理器(SMM)web界面查看和管理Kafka主题:

List Topics

*此示例演示了SMM中的主题列表和管理界面,显示了所有可用的主题及其配置、分区计数和状态信息。*

使用MCP工具与SMM UI

  • SMM-UI:通过web界面进行手动交互式操作
  • MCP工具:通过人工智能模型实现自动化、程序化操作
  • Kafka命令行界面:用于脚本编写和自动化的命令行操作

故障排除

常见问题

MCP服务器无法启动:

# Check environment variables
echo $KAFKA_BOOTSTRAP_SERVERS
echo $KNOX_GATEWAY
echo $KNOX_TOKEN

# Test with debug logging
export MCP_LOG_LEVEL="DEBUG"
uv run python -m cdf_kafka_mcp_server

Knox身份验证问题:

# Verify Knox Gateway is accessible
curl -k https://your-knox-gateway:8444/gateway/admin/v1/version

# Test with different SSL settings
export KNOX_VERIFY_SSL="false"  # For testing

MCP工具不工作:

# Test connection first
# Use test_connection MCP tool

# Verify Kafka Connect is running
curl http://localhost:28083/connectors

调试模式

启用调试日志记录:

export MCP_LOG_LEVEL="DEBUG"
uv run python -m cdf_kafka_mcp_server

健康检查命令

# Check all services
docker-compose ps

# Check Kafka health
docker exec kafka /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

# Check SMM health
curl -f http://localhost:9991/

# Check Kafka Connect health
curl -f http://localhost:28083/connectors

紧急应对措施

如果MCP服务器不工作:

  1. 使用Kafka CLI进行所有操作
  2. 使用SMM UI进行可视化
  3. 直接使用Kafka Connect REST API
  4. 检查服务日志中的特定错误

安全注意事项

  • 所有敏感数据(密码、令牌、机密)都会在响应中自动编辑
  • Knox令牌会自动缓存和刷新
  • 对Knox连接实施TLS
  • 配置文件应使用适当的权限进行保护

云测试

快速设置

选择云提供商:

# AWS MSK
./Testing/run_cloud_tests.sh aws-msk

# Confluent Cloud
./Testing/run_cloud_tests.sh confluent-cloud

# Azure Event Hubs
./Testing/run_cloud_tests.sh azure-eventhub

# CDP Cloud (Cloudera Data Platform)
./Testing/run_cloud_tests.sh cdp-cloud

# CDP Cloud MCP Tools Test (Comprehensive)
./Testing/run_cdp_cloud_tests.sh

# Generic SASL_SSL
./Testing/run_cloud_tests.sh generic

设置环境变量:

# AWS MSK Example
export KAFKA_BOOTSTRAP_SERVERS="your-msk-cluster.kafka.us-east-1.amazonaws.com:9092"
export KAFKA_SECURITY_PROTOCOL="SASL_SSL"
export KAFKA_SASL_MECHANISM="SCRAM-SHA-512"
export KAFKA_SASL_USERNAME="your-iam-username"
export KAFKA_SASL_PASSWORD="your-iam-password"

# Optional Knox Gateway
export KNOX_GATEWAY="https://your-knox-gateway:8444"
export KNOX_TOKEN="your-bearer-token-here"

运行测试:

# Run comprehensive cloud tests
./Testing/run_cloud_tests.sh aws-msk --debug

# Or run individual test script
uv run python3 Testing/test_cloud_connection.py

云配置文件

  • config/kafka_config_aws_msk.yaml -AWS MSK配置
  • config/kafka_config_confluent_cloud.yaml -汇流云配置
  • config/kafka_config_azure_eventhub.yaml -Azure事件中心配置
  • config/kafka_config_cdp_cloud.yaml -CDP云(Cloudera数据平台)配置
  • config/kafka_config_cloud.yaml -通用云配置

文档

发展

项目结构

├── src/
│   └── cdf_kafka_mcp_server/    # Main package
│       ├── __init__.py          # Package initialization
│       ├── main.py              # CLI entry point
│       ├── config.py            # Configuration management
│       ├── knox_client.py       # Knox authentication
│       ├── kafka_client.py      # Kafka client implementation
│       └── mcp_server.py        # MCP server implementation
├── config/                      # Configuration files
├── examples/                    # Usage examples
├── Testing/                     # Test files
├── pyproject.toml              # Project configuration
└── README.md                   # Documentation

建筑

# Install in development mode
pip install -e .

# Build package
python -m build

# Run tests
python -m pytest

# Format code
black src/ Testing/
isort src/ Testing/

# Lint code
flake8 src/ Testing/
mypy src/

贡献

  1. 复刻仓库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

Apache许可证2.0

致谢

这个项目的灵感来自 SSB MCP服务器 实现,为MCP服务器开发和企业集成提供了优秀的模式。

目录标签

目录标签

企业安全PythonClaudeKafka集成本地部署消息队列AI模型服务Knox认证

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

41

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP