Kafka MCP 服务器是 Model Context Protocol (MCP) 的服务器实现,可与 Apache Kafka 集成,支持通过自然语言(LLMs)与 Kafka 集群交互,为操作 Kafka 集群提供了便捷途径。
您需要 Docker 或 Golang 来本地运行 MCP 服务器。
您需要访问一个 Kafka 集群。可按照 quickstart 文档操作:
docker pull apache/kafka:4.0.0
docker run -p 9092:9092 apache/kafka:4.0.0
现在 Kafka 可以通过 localhost:9092
访问。
{
"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
。
运行多个顺序工具,特别是当每个工具依赖于前一个的输出时,可能会非常耗时和繁琐,这需要在客户端和服务器之间进行多次往返。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": "....."
}
}
}
}