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环境中实现最高性能。*
