Kafka MCP gRPC服务器

一个高性能的MCP(模型上下文协议)服务器,通过gRPC + Protobuf将Apache Kafka操作暴露为MCP工具,允许AI代理(如Claude)使用自然语言与Kafka集群交互。

  • by BishtDeepak
  • C++
  • 本地部署
  • 更新于
在 GitHub 查看 BishtDeepak/kafka-mcp-grpc

使用说明

Kafka MCP gRPC服务器(C++)

高性能 MCP(模型上下文协议)服务器 用C++编写,将Apache Kafka操作作为MCP工具公开 gRPC+Protobuf这允许像Claude这样的AI代理使用自然语言与Kafka集群进行交互。


建筑

Claude / AI Agent
      │
      │  gRPC + Protobuf (binary, fast)
      ▼
┌─────────────────────┐
│   MCPGrpcServer     │  ← gRPC server (port 50051)
│   MCPHandler        │  ← Routes tool calls
├─────────────────────┤
│   KafkaConsumer     │  ← Read messages
│   KafkaProducer     │  ← Write messages
│   KafkaAdmin        │  ← Metadata, lag, brokers
└─────────────────────┘
      │
      │  librdkafka
      ▼
 Kafka Broker(s)

MCP工具暴露

工具 说明
kafka_consume_messages 阅读某个主题的消息
kafka_produce_message 为某个主题写一条消息
kafka_list_topics 列出集群中的所有主题
kafka_describe_topic 获取特定主题的元数据
kafka_list_consumer_groups 列出所有消费者群体
kafka_consumer_group_lag 获得消费者群体的延迟
kafka_cluster_metadata 获取代理和集群信息

项目结构

kafka-mcp-grpc/
├── proto/
│   ├── mcp_service.proto       # MCP gRPC service definition
│   └── kafka_messages.proto    # Kafka domain types
├── include/
│   ├── server/
│   │   └── mcp_grpc_server.hpp
│   ├── kafka/
│   │   ├── kafka_consumer.hpp
│   │   ├── kafka_producer.hpp
│   │   └── kafka_admin.hpp
│   ├── mcp/
│   │   ├── mcp_handler.hpp
│   │   ├── tool_definitions.hpp
│   │   └── response_builder.hpp
│   └── utils/
│       ├── logger.hpp
│       └── config_loader.hpp
├── src/
│   ├── main.cpp
│   ├── server/
│   ├── kafka/
│   ├── mcp/
│   └── utils/
├── tests/
├── config/
│   └── server.json
├── scripts/
│   └── build.sh
└── CMakeLists.txt

依赖项

图书馆 目的
gRPC 传输层
Protobuf 消息序列化
librdkafka Kafka C++客户端
nlohmann/json MCP响应的json格式
spdlog 日志记录
GoogleTest 单元测试

在Ubuntu/Debian上安装

sudo apt install -y \
    libgrpc++-dev \
    libprotobuf-dev \
    protobuf-compiler-grpc \
    librdkafka-dev \
    nlohmann-json3-dev \
    libspdlog-dev \
    libgtest-dev

构建

chmod +x scripts/build.sh
./scripts/build.sh Release

跑

./build/kafka_mcp_server config/server.json

配置

编辑 config/server.json:

{
    "grpc_listen_address": "0.0.0.0:50051",
    "kafka": {
        "brokers": "localhost:9092",
        "security_protocol": "PLAINTEXT"
    },
    "log_level": "info"
}

代币效率

此服务器设计为 代币效率 记住:

  • 响应是紧凑的JSON(没有空格)
  • 消息读取上限为 max_messages_per_request (默认值:10)
  • 响应大小上限为 max_response_size_bytes (默认值:64KB)
  • 在返回LLM之前,删除不必要的字段

使用C++构建,在高吞吐量Kafka环境中实现最高性能。