mcp-server-kafka
An MCP server that lets AI agents interact with Apache Kafka clusters for metadata inspection, topic management, and message production, with safety controls.
Query Kafka cluster metadata and broker node lists.
List topics, with optional pattern filtering and internal topic inclusion.
Describe a topic's partition distribution, leaders, ISRs, and configs.
Create new topics with specified partitions and replication factor (unavailable in read-only mode).
Delete topics, requiring explicit
confirm=True(unavailable in read-only mode).Produce messages to topics with optional keys, headers, and partition (unavailable in read-only mode).
Enables AI agents to interact with Apache Kafka message clusters through the MCP protocol, allowing safe and efficient Kafka messaging operations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-kafkalist all topics in my Kafka cluster"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-kafka
📖 项目简介
mcp-server-kafka 是一个严格遵循 Model Context Protocol (MCP) 规范的 Apache Kafka 服务端集成。通过标准化的协议接口,赋予大型语言模型(LLM)与 AI Agent 安全、高效地对 Kafka 分布式消息集群开展元数据只读探查、消息生产、无侵入瞬态消息采样拉取、消费组监控与积压 (Lag) 根因诊断能力。
本项目采用纯异步事件驱动架构,内建双重安全防线,杜绝 AI 智能体误操作对生产集群造成破坏。
Related MCP server: Kafka MCP Server
✨ 核心特性
🎯 现代 Python 技术栈:基于 Python 3.10+、FastMCP 框架与
uv极速包管理器构建,遵循 PEP 621 标准;⚡ 纯异步高性能驱动:全面采用
aiokafka异步通信与 Admin 接口,高并发无阻塞;🔀 多集群命名连接路由:支持通过
--config connections.yaml统一声明多套环境实例(如 default、staging、production),实现单进程内无状态动态调度;🔐 企业级安全认证协议矩阵:全面支持
PLAINTEXT、SSL(mTLS 双向证书)、SASL_PLAINTEXT与SASL_SSL(覆盖PLAIN、SCRAM-SHA-256、SCRAM-SHA-512等),支持${ENV_VAR}环境变量动态插值防范明文泄露;🛡️ 三级纵深安全防线与 Dry-Run 预检:
一级防线(全局只读):开启
--read-only模式时,一切变更类工具自动隐藏并阻断执行;二级防线(连接级隔离):支持为生产连接单独配置
read_only: true实施实例级只读写保护;三级防线(预检试运行 & 二次确认):高危位移重置支持
dry_run=True预检评估与confirm=True二次确认,自动拦截活跃消费组状态冲突;
🔍 零位移侵入瞬态采样:采样读取消息时不加入消费组、强制不向
__consumer_offsets提交位移,绝不破坏生产环境业务消费进度;🧩 自适应内容解析:消息载荷优先解析为结构化 JSON 或 UTF-8 文本,二进制载荷安全降级为 Base64;
🌐 Stdio / HTTP SSE 双模传输:完美兼顾本地单机桌面客户端(如 Claude Desktop)与云原生容器常驻运行;
🚀 开箱即用容器化:提供精简多阶段 Dockerfile(无 root 用户
appuser)与 docker-compose 编排。
🛠️ MCP 协议能力清单 (Tools, Resources, Prompts)
1. Tools 工具集 (11 项)
工具名称 | 功能描述 | 核心入参 | 安全策略 |
| 枚举当前服务端已配置的所有 Kafka 集群命名连接清单、安全协议及只读状态 | 无 | 只读安全 |
| 查询 Kafka 集群元数据与 Broker 节点列表 |
| 只读安全 |
| 列出集群主题清单及分区数 |
| 只读安全 |
| 查询指定主题的分区分布、Leader 节点、ISR 与自定义配置 |
| 只读安全 |
| 创建新主题 |
| 只读模式或生产连接下自动拦截 |
| 删除指定主题 |
| 强制 |
| 向指定主题发送消息(支持字典/列表 JSON、文本与 Headers) |
| 只读模式或生产连接下自动拦截 |
| 零提交位移瞬态采样读取消息,自适应格式解码并支持大报文截断熔断 |
| 只读安全 (默认 64KB 截断熔断,单次上限 100 条) |
| 枚举集群中所有消费组 ID、协议类型与运行状态 |
| 只读安全 |
| 查询消费组各分区 Committed Offset、LEO、Lag 及活跃成员分配 |
| 只读安全 (单次批量 RPC 拓扑,含已删除主题防御) |
| 重置指定消费组位移(支持 earliest, latest, to_offset, to_datetime) |
| 默认 |
2. Resources 资源集 (2 项)
资源 URI | 描述 | MIME 类型 |
| 以只读上下文形式输出当前 Kafka 集群与 Broker 运行节点摘要 |
|
| 动态输出指定 Kafka 主题的分区、Leader 与副本分布明细 |
|
3. Prompts 提示词模板 (2 项)
提示词名称 | 描述 | 关键参数 |
| 引导模型从分区倾斜 (Partition Skew)、成员断连 (Consumer Dead)、心跳超时等维度展开消费积压根因诊断 |
|
| 引导模型安全采样消息,对载荷格式、Schema 一致性、数据质量与路由键开展探查分析 |
|
4. 🧭 消费组位移治理与回溯实操指南 (kafka_reset_consumer_group_offsets)
kafka_reset_consumer_group_offsets 是针对线上故障快速止血、历史数据补录或逻辑修复回溯设计的企业级运维工具。为了杜绝大模型误操作引发重复消费风暴或数据丢失,设计了严密的三级纵深防线:
┌──────────────────────────────────────────────┐
│ kafka_reset_consumer_group_offsets 工具调用 │
└──────────────────────┬───────────────────────┘
│
┌──────────┴──────────┐
[dry_run=True (默认)] [dry_run=False (执行)]
│ │
只读试运行模拟 是否为只读集群/只读连接?
计算 Lag / 变更前后 ├── 是 ──> 强制拦截拒绝物理提交
│ └── 否
安全返回预检报告 (无写入) 是否显式 confirm=True?
├── 否 ──> 抛出拦截警示
└── 是
│
消费组是否处于 Stable 且存在活跃成员?
├── 是 ──> 是否 force=True?
│ ├── 否 ──> 拦截拒绝 (防止状态冲突)
│ └── 是 ──> 物理提交位移
└── 否 ──> 物理提交位移并返回结果A. 四大重置策略
earliest:回滚至最早可用位移(用于数据全量重新消费);latest:跳跃至最新分区末端位移(用于故障积压直接跳过、快速追齐实时数据);to_offset:指定具体的绝对位移数值(需配合offset参数;受位移上界约束 (Offset Upper Bound Guard) 保护,严禁设置超越分区 LEO 的未来位移以防消息永久丢失);to_datetime:回溯至指定历史时间点(配合datetime_val,支持 ISO-8601 字符串如"2026-10-04T12:00:00+08:00"或毫秒时间戳如1791100000000)。
B. 标准运维实操工作流
阶段 1:预检评估 (Dry-Run)
默认dry_run=True,服务端仅查询当前 Committed Offset、目标 New Offset 与预计 Lag 变动,绝对不向 Kafka 提交任何位移(在全局--read-only模式下亦完全开放此安全预检能力):“帮我预检一下将 order-group 消费组在 order-events 主题上的位移重置到 2026-10-04 12:00:00 的效果。”
阶段 2:人工审查确认后物理提交
审查预检报告确认无误后,显式传入dry_run=False, confirm=True完成物理提交:“确认预检结果符合预期,请正式执行位移重置 (confirm=True)。”
阶段 3:活跃消费组状态冲突防御
若消费组当前存在在线活跃消费者实例(state="Stable"且成员数 $>0$),直接重置位移将被在线客户端后续心跳与提交覆盖。工具默认会拦截并返回防御警示;若确认属于应急处置,可显式追加force=True强制放行。
⚙️ 运行时配置与参数清单
服务配置优先遵循:命令行参数 > 环境变量 > 预设默认值。
命令行参数 | 对应环境变量 | 默认值 | 详细说明 |
|
| 无 | 多集群命名连接 YAML 配置文件路径(指定后启用多集群模式) |
|
|
| 单集群模式 Broker 引导地址(未指定配置文件时生效,多个逗号分隔) |
|
|
| 全局只读防线开关,开启后拒绝一切写操作;位移重置锁定仅允许 |
|
|
| 底层通信安全协议 ( |
|
| 无 | SASL 认证机制 ( |
|
| 无 | SASL 身份认证用户名 / AccessKey |
|
| 无 | SASL 身份认证密码 / SecretKey (支持 |
|
| 无 | SSL 根证书 CA 路径 ( |
|
| 无 | mTLS 双向认证客户端证书路径 (须与私钥成对提供) |
|
| 无 | mTLS 双向认证客户端私钥路径 (须与证书成对提供) |
|
|
| 传输协议网关类型: |
|
|
| HTTP SSE 模式监听主机地址 |
|
|
| HTTP SSE 模式监听端口号 |
|
|
| 服务日志级别 ( |
🔐 企业级安全认证协议指南 (SASL / SSL / mTLS)
服务端对企业私有云与公有云托管 Kafka 提供了完备的安全认证矩阵支持:
协议支持矩阵:
PLAINTEXT:内网非加密通信(默认);SASL_SSL(主流云厂商标准):传输层 TLS 加密 + 身份认证,广泛应用于阿里云云消息队列 Kafka、AWS MSK、华为云及 Confluent Cloud;SASL_PLAINTEXT:内网环境仅身份认证、明文数据传输;SSL(mTLS 双向证书):金融与高保密专网环境下,基于客户端与服务端双向数字证书完成认证。
凭据安全与环境变量插值最佳实践: 为防止在版本控制代码库(如 Git)或本地 JSON 配置中硬编码敏感账密,服务端内建了
${ENV_VAR}动态插值解析引擎。无论在 CLI 还是connections.yaml中,均建议使用环境变量注入:export KAFKA_SASL_USER="my_access_key" export KAFKA_SASL_PASS="my_secret_token"
🚀 极速安装与通用接入指南
本项目已正式发布至 PyPI,包名为 atengk-mcp-server-kafka。可直接通过 uvx 免安装一键调用,或通过 pip 安装至现有 Python 环境。
1. 运行与安装方式
方式 A:使用
uvx免安装开箱即用 (推荐) 无需手动克隆代码或配置虚拟环境,只需系统安装了 uv 工具链:uvx atengk-mcp-server-kafka --bootstrap-servers localhost:9092方式 B:通过
pip安装到 Python 环境pip install atengk-mcp-server-kafka # 安装后系统直接提供可执行命令 mcp-server-kafka --bootstrap-servers localhost:9092
2. MCP 客户端通用配置 (通用标准模板)
以下配置遵循标准 Model Context Protocol (MCP) 规范,通用支持任意 MCP 宿主环境(如 Claude Desktop、Cursor、VS Code MCP 插件、Windsurf 等各类 AI Agent 客户端)。
您可以根据宿主偏好选择通过 CLI 命令行参数 (args) 或 环境变量 (env) 注入配置:
方案 A:命令行参数模式 (args)
通过 args 数组显式传递服务启动参数:
{
"mcpServers": {
"kafka": {
"command": "uvx",
"args": [
"atengk-mcp-server-kafka",
"--bootstrap-servers",
"localhost:9092",
"--read-only"
]
}
}
}提示:若已通过
pip install atengk-mcp-server-kafka全局安装,可将"command"设为"mcp-server-kafka",并在"args"中直接传参:["--bootstrap-servers", "localhost:9092", "--read-only"]。
方案 B:环境变量模式 (env)
通过 env 对象声明环境变量,服务端启动时将自动加载对应配置项:
{
"mcpServers": {
"kafka": {
"command": "uvx",
"args": [
"atengk-mcp-server-kafka"
],
"env": {
"MCP_KAFKA_BOOTSTRAP_SERVERS": "localhost:9092",
"MCP_KAFKA_READ_ONLY": "true",
"MCP_KAFKA_LOG_LEVEL": "INFO"
}
}
}
}方案 C:HTTP SSE 远程常驻服务模式 (url)
若服务端部署在远端服务器或 Docker 容器内以 SSE 网关模式常驻运行,客户端直接配置服务监听 URL:
{
"mcpServers": {
"kafka": {
"url": "http://localhost:8000/sse"
}
}
}方案 D:多集群/多环境配置模式 (--config connections.yaml)
极速上手多集群:在项目根目录或配置目录下执行 cp connections.example.yaml connections.yaml,填入各集群真实 Broker 引导地址后,将该文件路径传入 --config 即可无缝切换多环境。
当需要同时纳管本地开发、联调测试与生产只读等多套物理隔离的 Kafka 集群时,可基于 connections.example.yaml 模板定义连接字典,并通过 --config 传入:
{
"mcpServers": {
"kafka": {
"command": "uvx",
"args": [
"atengk-mcp-server-kafka",
"--config",
"/绝对路径/connections.yaml"
]
}
}
}企业级多环境配置文件模板 (
connections.yaml):default_connection: "default" read_only: false connections: # 1. 本地开发环境:单机无密通信 default: bootstrap_servers: "localhost:9092" read_only: false # 2. 云端托管集群:SASL_SSL 加密认证 (环境变量动态插值,防凭据泄露) cloud_sasl: bootstrap_servers: "alikafka-pre-cn-xxxx.kafka.aliyuncs.com:9093" security_protocol: "SASL_SSL" sasl_mechanism: "SCRAM-SHA-256" sasl_username: "${KAFKA_SASL_USER}" sasl_password: "${KAFKA_SASL_PASSWORD}" ssl_cafile: "/etc/ssl/certs/kafka-ca.pem" read_only: false # 3. 核心生产集群:mTLS 双向证书通信 + 细粒度只读写保护 production_mtls: bootstrap_servers: "kafka-prod-1.internal:9093,kafka-prod-2.internal:9093" security_protocol: "SSL" ssl_cafile: "./certs/ca.pem" ssl_certfile: "./certs/client.cer" ssl_keyfile: "./certs/client.key" read_only: true # 生产实例强制连接级写保护此时所有工具均支持可选传入
connection: "cloud_sasl"或connection: "production_mtls"。若未传参则自动使用default_connection。可调用kafka_list_connections查询当前所有已连接的集群清单及其安全协议。
3. Docker 容器常驻网关 (HTTP SSE 模式)
适合生产环境部署、团队共享公共网关或隔离运行环境:
# 方式 A:docker run 快速启动(连接宿主机 Kafka 并开启只读防线)
docker run -d \
--name mcp-server-kafka \
-p 8000:8000 \
-e MCP_KAFKA_BOOTSTRAP_SERVERS=host.docker.internal:9092 \
-e MCP_KAFKA_READ_ONLY=true \
ghcr.io/atengk/mcp-server-kafka:latest
# 方式 B:Docker Compose 一键启动
docker compose up -d服务就绪后,可快速检验 SSE 监听端点连通性:
curl -I http://localhost:8000/sse4. 常见连接场景速查 (Recipes)
场景 1:连接本机单机 Kafka(宿主机原生运行)
--bootstrap-servers localhost:9092场景 2:连接 Docker 内运行的 Kafka(容器与宿主机互通)
本地宿主机客户端:
localhost:9092Docker 容器内运行 MCP:
host.docker.internal:9092
场景 3:连接远程/生产环境多 Broker 高可用集群并启用只读安全防护
--bootstrap-servers 10.0.1.11:9092,10.0.1.12:9092,10.0.1.13:9092 --read-only场景 4:多集群/多环境同时连接(Dev / Staging / Prod 并存)
方式 A(多连接配置模式,推荐):启动单进程并通过
--config connections.yaml挂载多集群,在对话中直接告知 AI:“查看 staging 集群的主题列表,并排查 production 集群的消费积压”;方式 B(多 Server 实例模式):在 MCP 配置中配置多个命名服务(如
"kafka-dev"与"kafka-prod"),分别传入各自的连接地址与参数。
场景 5:连接公有云/云托管 Kafka(阿里云/AWS MSK/华为云,SASL_SSL + SCRAM)
uvx atengk-mcp-server-kafka \ --bootstrap-servers "alikafka-pre-cn-xxxx.kafka.aliyuncs.com:9093" \ --security-protocol SASL_SSL \ --sasl-mechanism SCRAM-SHA-256 \ --sasl-username "$KAFKA_USER" \ --sasl-password "$KAFKA_PASSWORD"场景 6:连接内网双向证书认证集群 (mTLS / SSL)
uvx atengk-mcp-server-kafka \ --bootstrap-servers "kafka-broker-1:9093" \ --security-protocol SSL \ --ssl-cafile "./ca.pem" \ --ssl-certfile "./client.cer" \ --ssl-keyfile "./client.key"
5. ❓ 常见问题与排障 (FAQ)
Q1:提示
command not found: uvx或找不到执行程序?
A:说明客户端桌面环境未继承包含uv的系统环境变量PATH。可将"command"替换为系统上uvx的绝对路径(Windows 如"C:\\Users\\<用户名>\\.cargo\\bin\\uvx.exe",macOS/Linux 如"/Users/<用户名>/.cargo/bin/uvx"),或通过pip install atengk-mcp-server-kafka后将 command 设为可执行文件的绝对路径。
Q2:连接报错
ConnectionRefusedError连不上 Kafka?
A:请检查 Kafka 运行状态与端口监听;若 Kafka 位于 Docker 容器内而 MCP 服务端位于另一容器或本地,注意使用host.docker.internal或挂载于同一 Docker 网络网桥。
Q3:为什么工具列表中没有主题创建、删除或消息发送工具?
A:这是服务端的全局只读安全防线。当开启了--read-only或设置了MCP_KAFKA_READ_ONLY=true时,所有破坏性与写操作工具将自动隐藏并拒绝执行,确保生产集群安全。若确需写权限,移除该参数重新启动即可。
Q4:调用
kafka_reset_consumer_group_offsets报错消费组处于活跃状态冲突?
A:这是服务端的活跃组防并发覆盖防线。当消费组处于Stable状态且成员数 $>0$ 时,在线客户端会定时提交位移,覆盖重置结果。最佳实践是先停止消费端实例;若属于紧急运维且确认要强行覆盖,可在确认后传入force=True放行。
Q5:如何在多环境配置中防范 SASL 账密明文泄露?
A:服务端支持${ENV_VAR}语法动态插值。在connections.yaml中将敏感字段写作sasl_username: "${KAFKA_USER}"与sasl_password: "${KAFKA_PASSWORD}",启动前在宿主系统中 export 对应环境变量即可,杜绝明文入库。
6. 🛠️ 源码构建与参与贡献
若需针对源码开展二次开发或本地贡献调试:
# 克隆源码并同步全量开发依赖
git clone https://github.com/atengk/mcp-server-kafka.git
cd mcp-server-kafka
uv sync --all-extras
# 运行全量单元测试与 Lint 门禁
uv run pytest
uv run ruff check .📂 仓库目录结构
.
├── .github/ # GitHub Actions CI/CD 流水线与 Issue/PR 模版
│ ├── ISSUE_TEMPLATE/
│ ├── workflows/
│ │ ├── ci.yml # 自动化测试与 Lint 门禁
│ │ └── release.yml # 自动化发版与多架构 GHCR 镜像构建
│ └── PULL_REQUEST_TEMPLATE.md
├── docs/ # 工程架构决策与领域文档
│ ├── adr/ # 架构决策记录 (ADR 0001 ~ 0005)
│ └── spec/ # 核心需求规格说明书
├── src/ # 核心源码目录
│ └── mcp_server_kafka/
│ ├── __init__.py # 版本号与包声明
│ ├── config.py # 配置模型与多连接参数解析
│ ├── models.py # 领域数据模型 (Pydantic)
│ ├── manager.py # aiokafka 异步客户端生命周期与多连接注册中心
│ └── server.py # FastMCP 服务装配、Tools/Resources/Prompts 路由
├── tests/ # 最高测试接缝集成测试套件
│ ├── test_basic.py # 基础发版与版本号测试
│ ├── test_cluster_tools.py # 集群元数据与资源测试
│ ├── test_config.py # 配置加载与合并解析测试
│ ├── test_consumer_group_tools.py # 消费组与 Lag 诊断测试
│ ├── test_message_produce.py # 消息安全生产与序列化测试
│ ├── test_message_sampling.py # 零位移消息采样与自适应解码测试
│ ├── test_multi_cluster_connections.py # 多集群命名连接与路由测试
│ ├── test_security_and_offset_reset.py # 企业级安全与位移重置治理测试
│ ├── test_topic_tools.py # 主题生命周期与安全防线测试
│ └── test_transport_and_gateway.py # Stdio/SSE 双模网关调度测试
├── connections.example.yaml # 多集群多环境连接配置文件模板
├── CONTEXT.md # 统一领域术语表
├── docker-compose.yml # 生产常驻 SSE 编排
├── Dockerfile # 生产级多阶段容器镜像构建文件
├── pyproject.toml # 项目元数据与依赖定义 (PEP 621)
└── README.md # 项目使用指南与能力文档📄 开源许可证
本项目基于 Apache License 2.0 协议开源。
Available Tools
11 toolskafka_cluster_infoB
获取 Kafka 集群整体元数据与 Broker 节点列表(包含 Cluster ID、控制器与节点地址)
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the content of the read (cluster metadata plus broker node list) and implicitly signals a non-mutating info operation, but says nothing about permissions, failure modes for unreachable clusters, or whether results are cached/live.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the parenthetical return-field list is compact and earns its place by telling the agent what comes back.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and an output schema exists, so return values need not be explained. However, the unexplained 'connection' parameter leaves a real ambiguity about which cluster is targeted, and no usage context is given.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions the single 'connection' parameter, so an agent gets no help choosing a connection target (e.g. named profile vs. default) for what is presumably a multi-cluster context. It fails the requirement that a low-coverage description compensate for the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (获取/get) and resource (Kafka 集群整体元数据与 Broker 节点列表), and enumerates the returned fields (Cluster ID, 控制器, 节点地址). Its cluster-level scope naturally separates it from the topic/group/message siblings, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus kafka_list_topics, kafka_list_consumer_groups, or kafka_list_connections, and no stated prerequisites (e.g. cluster must be reachable, connection must be configured). The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kafka_create_topicA
在 Kafka 集群中创建新主题(支持指定分区数与副本因子;只读模式下不可用)
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No | ||
| partitions | No | ||
| topic_name | Yes | ||
| replication_factor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the read-only mode restriction and the mutation nature of the tool, but it omits idempotency behavior, what happens if the topic already exists, required permissions, and error semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted text. The core action comes first, followed by supporting details in parentheses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. Still, with no annotations and 0% schema description coverage, the description omits connection semantics and failure behavior, leaving some invocation context underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate, but it only mentions partitions and replication factor without adding format, default, or constraint details. It does not explain the optional connection parameter, and topic_name is only implied by the tool purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: creating a new topic in a Kafka cluster. The parenthetical adds scope by naming supported settings and an availability condition. It is clearly distinguishable from sibling tools like list, describe, or delete topic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear when-not condition: unavailable in read-only mode. However, it does not name alternatives or give broader when-to-use guidance relative to siblings, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kafka_delete_topicA
从 Kafka 集群中删除主题(高危破坏操作,必须传入 confirm=True 显式确认)
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| connection | No | ||
| topic_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It correctly discloses that the operation is destructive/high-risk and requires explicit confirmation, which is valuable, but it omits other important behavioral details such as irreversibility, impact on running consumers, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly written sentence that front-loads the action and then the critical safety constraint. Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a destructive three-parameter tool with zero annotation and schema-description coverage, the description should do more to cover the connection parameter and the full consequences of deletion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with three parameters, so the description must compensate. It explains the most critical parameter (confirm=True) beyond what the schema offers, but leaves topic_name and especially connection completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (删除/delete) and resource (主题/topic in a Kafka cluster), making the core action unambiguous. It does not explicitly name or distinguish itself from siblings like kafka_create_topic or kafka_describe_topic, but the verb alone functionally separates it from the other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a clear precondition for invocation: this is a high-risk destructive operation and the caller must pass confirm=True. It does not discuss alternatives or when-not-to-use scenarios, but the confirmation requirement is a concrete, actionable usage instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kafka_describe_consumer_groupB
查询指定 Kafka 消费组的详细拓扑,包含活跃成员、分区 Committed Offset、LEO 及 Lag 积压数值
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | ||
| connection | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden. It does disclose the substance of the operation (what data a describe returns), which is useful, but says nothing about read-only nature, permission requirements, cost/latency of a live describe, or behavior for non-existent or inactive groups.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the key noun ('指定 Kafka 消费组') appears early. It is slightly dense with the trailing enumeration but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return shape need not be restated, and the description redundantly previews it. However the two zero-documented parameters and the complete absence of usage guidance leave real gaps for an agent deciding when and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so both parameters are undocumented in structured form and the description does not compensate. Neither group_id (format, e.g. plain name vs. fully qualified) nor the optional connection parameter is explained anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('查询' / describe) plus the exact resource (a designated Kafka consumer group) and even enumerates what the topology view contains: active members, committed offsets, LEO and lag. This clearly separates it from kafka_list_consumer_groups, though the contrast is implicit rather than stated by naming the sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use / when-not-to-use guidance. It does not say to call this after listing groups, when a group looks lagging, or that it requires an existing group_id, so the agent must infer the usage context from the sibling list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kafka_describe_topicB
查询指定 Kafka 主题的详细拓扑(分区分布、Leader 节点、ISR 同步副本与配置)
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No | ||
| topic_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. '查询' signals a read-only operation and the parenthetical discloses what data comes back, but there is no mention of auth requirements, behavior when the topic does not exist, or connection handling. For a read tool this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the action, target, and returned fields with zero filler. Nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return values need not be detailed. However, with 0% schema coverage and an entirely undocumented connection parameter, an agent still lacks enough guidance about how to parameterize the call for a tool with two inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description only indirectly references topic_name via '指定 Kafka 主题'. The second parameter, connection, gets no explanation at all in either schema or description, so the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (查询) and resource (指定 Kafka 主题), and enumerates the returned topology details (分区分布, Leader 节点, ISR 同步副本, 配置). This differentiates it implicitly from kafka_list_topics by promising per-topic detail, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase '指定 Kafka 主题' suggests it applies to one named topic, which is the natural counterpart to kafka_list_topics. There is no explicit when-to-use, when-not-to-use, or alternative named, so it stays at the minimum-viable level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kafka_list_connectionsA
枚举当前服务端已配置的所有 Kafka 集群命名连接清单、Broker 引导地址与只读保护状态
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. 'Enumerate' implies a safe read operation and it names some returned information, but it does not explicitly state the read-only nature, authentication requirements, pagination, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the operation, scope, and returned details without filler. Every element contributes to identifying the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with an output schema, the description is largely sufficient: it identifies the resource and indicates the kind of connection metadata returned. It is slightly incomplete on usage routing and explicit read-only assurance, but the output schema covers return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero input parameters, so the schema has nothing to document; the baseline for 0 params is 4. The description does not need to add parameter meaning beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (enumerate/list) and resource (named Kafka cluster connections configured on the current server), and specifies returned details (broker bootstrap addresses and read-only protection status). This is clearly distinct from sibling tools that list topics, groups, messages, or manipulate topics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of siblings such as kafka_cluster_info or kafka_list_topics. The purpose implies a read/list scenario, but no conditions, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kafka_list_consumer_groupsB
列出 Kafka 集群中的消费组清单(包含 Group ID、协议类型与活跃状态如 Stable/Empty/Dead)
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it partially does so by enumerating the status values (Stable/Empty/Dead) and fields returned, which is genuine behavioral context. However, it omits whether this is a read-only operation, what cluster/connection scope it applies to, or any auth/permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words that names the resource and its key attributes up front. It is appropriately sized for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with an output schema, the description needn't explain return values, and it correctly focuses on scope. The main gap is the unexplained 'connection' parameter and the absence of any routing hint versus the describe/list-topic siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'connection' parameter is undocumented in the schema (0% coverage) and is also unmentioned in the description, so an agent has no explanation of what connection means or how it is resolved. With low coverage the description should compensate, and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (列出/list) and resource (消费组清单/consumer groups in a Kafka cluster), and even previews the returned fields (Group ID, protocol type, status). It does not explicitly differentiate itself from the sibling kafka_describe_consumer_group, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as kafka_describe_consumer_group for inspecting a single group. The listing intent is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kafka_list_topicsC
列出 Kafka 集群中的主题清单(支持按名称模式过滤并默认排除内部系统主题)
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | No | ||
| connection | No | ||
| include_internal | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose two real behaviors beyond the schema: name-pattern filtering is supported and internal system topics are excluded by default, which adds value. However it says nothing about the connection parameter, auth/permissions, or any operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the filtering/scope caveat is bundled inline rather than buried. Efficient, though it is arguably under-specified rather than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but with no annotations and 0% schema coverage the description should do more. The connection parameter is never explained and there is no permission or scope context, leaving the agent guessing on a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only loosely gestures at two of the three parameters (pattern filtering, internal exclusion) without specifying pattern syntax (glob? regex?) and completely omits the connection parameter, leaving a third of the surface undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (列出/list) and resource (Kafka 集群中的主题/topics in a Kafka cluster), which cleanly distinguishes it from the single-topic sibling kafka_describe_topic. It does not explicitly name or contrast with any sibling, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the obvious use case (enumerate topics) but offers no when-to-use versus kafka_describe_topic, no prerequisites, and no exclusions. The only usage-adjacent detail is the default internal-topic exclusion, which is a behavior, not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kafka_produce_messageB
向指定 Kafka 主题发送消息(支持 Key、JSON/文本载荷与 Headers;只读模式下不可用)
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| topic | Yes | ||
| value | Yes | ||
| headers | No | ||
| partition | No | ||
| connection | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the read-only mode restriction and the supported payload forms, which is useful, but omits failure semantics, permission/auth requirements, and delivery guarantees expected of a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact parenthetical sentence front-loads the core action and appends supported features and the constraint. No wasted wording, though it is quite terse for a mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained. For a 6-parameter write tool with zero annotation coverage, the description is minimally adequate but leaves partition and connection handling, error behavior, and permissions unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters. The description compensates partially by clarifying key, JSON/text payload, and headers, but the topic, partition, and connection parameters remain undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: sending a message to a designated Kafka topic. This clearly separates it from read/list siblings like kafka_list_topics and kafka_sample_messages, though it does not explicitly name a sibling to avoid.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides one meaningful when-not condition ('unavailable in read-only mode'), which guides the agent away from calling it in read-only environments. However, it offers no guidance on when to prefer this tool over alternatives (e.g., create_topic) or prerequisites for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kafka_reset_consumer_group_offsetsA
重置指定消费组在目标主题上的消费位移(高危运维操作,支持 Dry-Run 预检与 earliest/latest/to_offset/to_datetime 策略)
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| topic | Yes | ||
| offset | No | ||
| confirm | No | ||
| dry_run | No | ||
| group_id | Yes | ||
| strategy | No | earliest | |
| connection | No | ||
| partitions | No | ||
| datetime_val | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does meaningfully disclose the destructive/high-risk nature and the dry-run safety mechanism — the most important behavioral facts for this tool. It stops short of explaining the confirm/force interplay or what a non-dry-run call irreversibly changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence, front-loaded with purpose followed by risk and capability notes. No wasted text, though the parenthetical packs several ideas together.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the description covers purpose, risk and strategy options. But for a complex 10-param destructive tool with no annotations, the confirmation semantics (confirm/force) and required-param expectations are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 10 params, so the description must compensate. It only names the strategy values (earliest/latest/to_offset/to_datetime, which the schema lacks) and dry-run; 8 params such as offset, confirm, force, partitions and datetime_val remain unexplained anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource+scope: reset a given consumer group's offsets on a target topic. No sibling tool (list/describe/produce/create/delete) performs offset reset, so the purpose is unambiguous and easily distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It flags this as a high-risk operations action and notes Dry-Run pre-check support, implying 'use carefully / run dry-run first', but gives no explicit when-to-use vs when-not guidance or prerequisites beyond that. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kafka_sample_messagesA
从指定 Kafka 主题以零提交位移方式只读采样消息(支持 latest/earliest/offset 策略、自适应解码与大报文截断保护)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| topic | Yes | ||
| offset | No | ||
| strategy | No | latest | |
| partition | No | ||
| connection | No | ||
| max_bytes_per_message | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses zero-commit-offset semantics (consumer group positions are unaffected), read-only operation, adaptive decoding, and large-message truncation protection. It omits auth/permission requirements and any limits on sampling cost or pace.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single densely packed sentence that front-loads the core purpose (read-only topic sampling) and relegates qualifying details to a parenthetical. No wasted words, though the parenthetical crams several distinct behaviors together.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, for a 7-parameter tool with zero annotation and zero schema-description coverage, the description leaves half the parameters undocumented, which is a meaningful gap even though the behavioral picture is solid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters, so the description must compensate. It valuably names the strategy values (latest/earliest/offset) not present in the schema and implies max_bytes_per_message via 'large message truncation', but leaves limit, offset, partition, and connection entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: read-only sampling of messages from a named Kafka topic. This is clearly distinct from write-oriented siblings like kafka_produce_message and from metadata tools like kafka_list_topics. It stops short of an explicit naming of a sibling to contrast against, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the tool's own behavior ('sample messages'); there is no statement of when to choose this over kafka_describe_topic or other read tools, nor any when-not-to-use condition. Adequate but leaves the agent to infer the selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v1.3.1- Changed
kafka_cluster_info1 field changed- added
Input schema / properties / connectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Connection" +}
- Changed
kafka_create_topic1 field changed- added
Input schema / properties / connectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Connection" +}
- Changed
kafka_delete_topic1 field changed- added
Input schema / properties / connectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Connection" +}
- Added
kafka_describe_consumer_group - Changed
kafka_describe_topic1 field changed- added
Input schema / properties / connectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Connection" +}
- Added
kafka_list_connections - Added
kafka_list_consumer_groups - Changed
kafka_list_topics1 field changed- added
Input schema / properties / connectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Connection" +}
- Changed
kafka_produce_message1 field changed- added
Input schema / properties / connectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Connection" +}
- Added
kafka_reset_consumer_group_offsets - Added
kafka_sample_messages
6 tool updates
v0.1.0- First observed
kafka_cluster_info - First observed
kafka_create_topic - First observed
kafka_delete_topic - First observed
kafka_describe_topic - First observed
kafka_list_topics - First observed
kafka_produce_message
TDQS
Scored across 11 tools
Each tool targets a distinct Kafka resource and action: list/describe topics, sample messages, list/describe consumer groups, create/delete topic, produce message, list connections, cluster info, and reset offsets. The list-vs-describe pattern is standard and descriptions clarify scope. No two tools are likely to be confused for the same operation.
All names use snake_case with a kafka_ prefix, and most follow verb_noun (list_topics, describe_topic, create_topic). One outlier is kafka_cluster_info, which is noun_noun rather than verb_noun, and singular/plural varies slightly (topic vs topics). Still largely predictable.
11 tools is well within the sweet spot for a Kafka admin/ops server, covering both read and write/destructive operations without bloat. Each tool maps to a clear capability; no redundant or filler tools.
The surface covers core Kafka lifecycle: cluster info, topic list/describe/create/delete, message sample/produce, consumer group list/describe/reset offsets. Minor gaps remain, such as altering topic partitions/configs or deleting consumer groups, but core workflows are covered. Agents can work around most gaps using existing tools.
Maintenance
Related MCP Connectors
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Context and control for any AI. Agent identity, scoped access, and proof across tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI models to publish and consume messages from Apache Kafka topics through a standardized interface, making it easy to integrate Kafka messaging with LLM and agent applications.17Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Apache Kafka through natural language, supporting operations like producing/consuming messages, managing topics, and querying brokers, partitions, and consumer group offsets.1MIT
- AlicenseBqualityBmaintenanceMCP server for Apache Kafka that allows LLM agents to inspect topics, consumer groups, and safely manage offsets (reset, rewind).1913Apache 2.0
- FlicenseBqualityDmaintenanceEnables interaction with Apache Kafka clusters, allowing management of topics, message production, and consumption through natural language.5-