Kafka自然语言交互服务器

Kafka MCP Server是一个通过自然语言(LLMs)与Kafka集群交互的模型上下文协议服务器,支持主题管理、消息生产和消费等核心功能,适用于需要简化Kafka操作的开发场景。

  • by CefBoud
  • Go
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 cefboud/kafka-mcp-server

使用说明

Kafka MCP服务器

Kafka MCP服务器是一个 模型上下文协议(MCP) 该服务器提供与Apache Kafka的集成,以使用自然语言(LLM)与Kafka集群进行交互。

演示

先决条件

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

入门指南

您需要访问Kafka集群。跟随 快速入门 医生:

 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 <workdir>
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": "<workdir>/kafka-mcp-server/kafka-mcp-server",
      "args": [
        "stdio",
      ],
      "env": {
        "KAFKA_MCP_BOOTSTRAP_SERVERS": "localhost:9092"
      }
    }
  }
}

选项:

      --bootstrap-servers string   Comma-separated list of the Kafka servers to connect to.
      --enable-command-logging     When enabled, the server will log all command requests and responses to the log file
      --log-file string            Path to log file
      --read-only                  Restrict the server to read-only operations

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

可用的MCP工具

  • [x] 列出主题
  • [x] 创建主题
  • [x] 消费消息。
  • [x] 生成消息。
  • [x] 描述集群(代理和控制器列表)
  • [x] 列出消费者群体及其滞后情况。
  • [x] 获取主题的最早和最新偏移量(GetOffsetShell)
  • []重置消费者组偏移。
  • []Kafka Connect??
  • []架构注册表??

🔀 多路工具

演示多路复用工具

运行许多顺序工具,特别是当每个工具都依赖于前一个工具的输出时,可能会很乏味和耗时。这需要客户端和服务器之间进行多次往返/

多路工具 通过允许客户端将一系列工具调用批处理到单个请求中,并按顺序执行它们,解决了这个问题。它支持工具之间的动态依赖关系,允许您使用基于提示的占位符引用早期的输出。

如果工具输入依赖于之前的结果,则客户端使用 PROMPT_ARGUMENT: 通过LLM的提示动态生成该输入的格式(目前仅支持Gemini)。
例子:
"userId": "PROMPT_ARGUMENT: the ID of the created user"

CLI标志:

  • --enable-multiplex:启用工具调用的多路复用。
  • --multiplex-model:指定型号(例如。 gemini)用于推断 PROMPT_ARGUMENTs.需要 GEMINI_API_KEY env变量。
{
  "mcpServers": {
    "kafka": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "KAFKA_MCP_BOOTSTRAP_SERVERS",
        "ghcr.io/cefboud/kafka-mcp-server",
        "--enable-multiplex",
        "--multiplex-model",
        "gemini"
      ],
      "env": {
        "KAFKA_MCP_BOOTSTRAP_SERVERS": "localhost:9092",
        "GEMINI_API_KEY": "....."
      }
    }
  }
}

鸣谢

  • github/github/ithub-mcp服务器
  • github/mark3labs/mcp-go
  • github/IBM/sarama