返回 MCP 目录
public公开dns本地运行

credits

Kafka MCP Server是一个基于Model Context Protocol(MCP)的服务,通过自然语言(LLM)实现与Apache Kafka集群的交互,支持主题管理、消息生产和消费等操作。

article

README

🚀 Kafka MCP 服务器

Kafka MCP 服务器是 Model Context Protocol (MCP) 的服务器实现,可与 Apache Kafka 集成,支持通过自然语言(LLMs)与 Kafka 集群交互,为操作 Kafka 集群提供了便捷途径。

demo

🚀 快速开始

先决条件

您需要 Docker 或 Golang 来本地运行 MCP 服务器。

启动 Kafka 集群

您需要访问一个 Kafka 集群。可按照 quickstart 文档操作:

docker pull apache/kafka:4.0.0
docker run -p 9092:9092 apache/kafka:4.0.0

现在 Kafka 可以通过 localhost:9092 访问。

使用 Claude Desktop

Docker 方式

{
  "mcpServers": {
    "kafka": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "KAFKA_MCP_BOOTSTRAP_SERVERS",
        "ghcr.io/cefboud/kafka-mcp-server"
      ],
      "env": {
        "KAFKA_MCP_BOOTSTRAP_SERVERS": "localhost:9092"
      }
    }
  }
}

本地构建方式

cd <工作目录>
git clone https://github.com/CefBoud/kafka-mcp-server.git
cd kafka-mcp-server
go build -o kafka-mcp-server cmd/kafka-mcp-server/main.go
{
  "mcpServers": {
    "kafka": {
      "command": "<工作目录>/kafka-mcp-server/kafka-mcp-server",
      "args": [
        "stdio"
      ],
      "env": {
        "KAFKA_MCP_BOOTSTRAP_SERVERS": "localhost:9092"
      }
    }
  }
}

选项说明

      --bootstrap-servers string   分隔的 Kafka 服务器列表,用于连接。
      --enable-command-logging     开启此选项后,服务器将记录所有命令请求和响应到日志文件中
      --log-file string            日志文件路径
      --read-only                  限制服务器仅执行只读操作

所有选项都可以作为环境变量传递,大写,使用下划线替换连字符,并以 MCP_KAFKA_ 为前缀。例如,--bootstrap-servers 转换为 MCP_KAFKA_BOOTSTRAP_SERVERS

✨ 主要特性

可用的 MCP 工具

  • [x] 列出主题
  • [x] 创建主题
  • [x] 消费消息。
  • [x] 生产消息。
  • [x] 描述集群( broker 和 controller 的列表)
  • [x] 列出消费者组及其滞后。
  • [x] 获取主题的最早和最新偏移量(GetOffsetShell)
  • [ ] 重置消费者组偏移量。
  • [ ] Kafka Connect ??
  • [ ] Schema Registry ??

🔀 MultiplexTool

demo MultiplexTool

运行多个顺序工具,特别是当每个工具依赖于前一个的输出时,可能会非常耗时和繁琐,这需要在客户端和服务器之间进行多次往返。MultiplexTool 通过允许客户端将一列表工具调用批量为一个请求,按顺序执行它们来解决此问题。它支持工具之间的动态依赖关系,通过使用基于提示的占位符让您可以引用早期输出。

如果工具输入取决于先前的结果,客户端可以使用 PROMPT_ARGUMENT: 格式通过提示生成该输入(当前仅支持 Gemini)。 示例:
"userId": "PROMPT_ARGUMENT: 创建的用户的 ID"

CLI 选项:

  • --enable-multiplex 启用多路复用功能
  • --multiplex-config string 指定多路复用配置文件路径

配置示例

{
  "mcpServers": {
    "kafka": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "KAFKA_MCP_BOOTSTRAP_SERVERS",
        "ghcr.io/cefboud/kafka-multiplex-server:latest"
      ],
      "env": {
        "KAFKA_MCP_BOOTSTRAP_SERVERS": "localhost:9092",
        "GEMINI_API_KEY": "....."
      }
    }
  }
}

📄 许可证

知识产权

  • github.com/github/github-mcp-server
  • github.com/mark3labs/mcp-go
  • github.com/IBM/sarama
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端