Kafka MCP Server 是一个面向 Apache Kafka 的 MCP 服务器实现,其目标是让大语言模型(LLM)能够与 Kafka 集群交互并进行管理。
主要用途与定位:作为 MCP 服务器,它把 Kafka 集群的常用运维与管理操作暴露给 LLM,使模型可以在受控工具调用的形态下查看集群、操作主题、管理消费者组与收发消息。
主要能力:
- 集群管理:通过 describe_cluster、describe_brokers 查看 broker 详情。
- 主题管理:支持 list_topics(列出)、create_topic(创建)、delete_topic(删除)、describe_topic(查看)以及 create_partitions(增加分区)。
- 配置管理:通过 describe_configs 查看配置,通过 alter_configs 修改 topic、broker 和 group 的动态配置。
- 消费者组:list_consumer_groups(列出)、describe_consumer_group(查看),并可通过 reset_consumer_group_offset 和 rewind_consumer_group_offset_by_timestamp 安全地管理 offset;高级工具包括状态校验、dry run 与执行审计日志。
- 消息收发:consume_messages 可从起始、最新或指定 offset 消费消息,produce_message 可生产消息。
- 安全连接:支持 TLS/mTLS,以及 SASL 的 PLAIN、SCRAM-SHA-256、SCRAM-SHA-512、GSSAPI、OAUTHBEARER 等机制。
- JMX 监控:可从一到多个 Prometheus JMX Exporter 端点读取 broker 与 topic 指标,并汇总集群健康状态。
使用方式:需要 uv 包管理器(推荐)和一个正在运行的 Kafka 集群(例如本地 Docker、Confluent Cloud 等)。先克隆仓库,再通过 uv sync 安装依赖。配置项中只有 KAFKA_BOOTSTRAP_SERVERS 是必填的,现有 PLAINTEXT 配置保持不变。当使用 SASL 安全协议时,需要设置 KAFKA_SASL_MECHANISM 为 PLAIN、SCRAM-SHA-256、SCRAM-SHA-512、GSSAPI 或 OAUTHBEARER。服务器可用 uv 或 python 直接运行,也可使用 Docker;Docker 镜像支持 TLS、PLAIN、SCRAM、OAUTHBEARER/OIDC 和 GSSAPI,其多阶段构建会基于经校验和验证、带 Kerberos 支持的 librdkafka 发布版本来编译 Python 客户端。运行容器示例:docker run -i --rm -e KAFKA_BOOTSTRAP_SERVERS=host.docker.internal:9092 kafka-mcp(如果 Kafka 集群运行在宿主机上,请使用 host.docker.internal 而非 localhost)。Claude Desktop 配置需在 claude_desktop_config.json 中添加相应内容。
适用场景:需要在 LLM 或 MCP 客户端环境中对 Kafka 集群执行查看、管理、消费者组 offset 调整以及消息消费与生产等任务的场景;也可用于读取 JMX 指标并汇总集群健康状态。
限制与注意事项:GSSAPI/Kerberos 部分,预构建的 confluent-kafka wheel 不包含 GSSAPI,Docker 之外的 Kerberos 部署需针对带 SASL GSSAPI 支持的 librdkafka 构建来安装 confluent-kafka;提供的 Docker 镜像会从源码构建该变体并包含 Kerberos 运行时工具。OAUTHBEARER 中,KAFKA_SASL_OAUTHBEARER_EXTENSIONS 为可选;librdkafka 默认的 unsecured-token 处理器仅用于开发和测试。JMX 监控为可选,不影响 Kafka 工具;需在每个 broker 上以 Java agent 方式运行 Prometheus JMX Exporter 并提供其 HTTP /metrics 端点,建议保持 Java RMI 禁用,以避免暴露 Kafka 未认证的远程 JMX 端口;当未设置 exporter 端点时,JMX 工具会返回结构化的 not_configured 响应。其他细节(如完整的可用工具列表、项目结构等)在官方文档中另有说明。