Kafka操作工具服务器

一个将Apache Kafka操作暴露为工具的模型上下文协议服务器,适用于需要在开发中使用Kafka的各种场景。

  • by lehtinentimo
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 lehtinentimo/kafka-mcp-server

使用说明

Kafka MCP服务器

一个模型上下文协议(MCP)服务器,将Apache Kafka操作作为工具公开。使用TypeScript、stdio传输和 融合Kafka客户端.

先决条件

  • Node.js 18.18+或20.9+
  • 一个正在运行的兼容Kafka的代理(Apache Kafka、Redpanda等)

设置

npm install
npm run build

配置

设置 KAFKA_BROKERS 环境变量(必填):

export KAFKA_BROKERS=localhost:9092

多个代理可以用逗号分隔: broker1:9092,broker2:9092.

跑步

npm start

服务器使用MCP协议通过stdio进行通信。

克劳德代码

使用CLI添加MCP服务器:

claude mcp add kafka-mcp-server -e KAFKA_BROKERS=localhost:9092 node /path/to/kafka-mcp-server/dist/index.js

或添加到 .mcp.json 在项目根目录中:

{
  "mcpServers": {
    "kafka": {
      "command": "node",
      "args": ["/path/to/kafka-mcp-server/dist/index.js"],
      "env": {
        "KAFKA_BROKERS": "localhost:9092"
      }
    }
  }
}

克劳德桌面版

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

{
  "mcpServers": {
    "kafka": {
      "command": "node",
      "args": ["/path/to/kafka-mcp-server/dist/index.js"],
      "env": {
        "KAFKA_BROKERS": "localhost:9092"
      }
    }
  }
}

工具

话题

工具 描述 输入
list-topics 列出所有主题 无
describe-topic 获取主题详细信息(分区、副本) topic
create-topic 创建新主题 topic, numPartitions (默认值1), replicationFactor (默认值1)
delete-topic 删除主题 topic

生产/消费

工具 描述 输入
produce 向某个主题发送消息 topic, value, key (可选)
consume 阅读某个主题的消息 topic, maxMessages (默认值10), timeout (默认5000ms)

这 consume 该工具创建了一个临时消费者,从最早的偏移量读取而不提交。到达后断开连接 maxMessages 或者超时。

簇

工具 描述 输入
get-cluster-info 获取经纪人信息 无
list-consumer-groups 列出所有消费者群体 无
describe-consumer-group 获取消费者群体详细信息 groupId

发展

npm run build          # Compile TypeScript
npm start              # Run the server
npm run lint           # Run ESLint
npm run lint:fix       # Run ESLint with auto-fix
npm run format         # Format code with Prettier
npm run format:check   # Check formatting