mcp-kafka
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KAFKA_SSL | No | Set to 'true' to enable TLS for the Kafka connection. | |
| KAFKA_MODE | No | Access mode: read-only, read-write, or admin. Defaults to read-only. | read-only |
| KAFKA_BROKERS | Yes | Comma-separated list of Kafka broker addresses. Example: broker1:9092,broker2:9092 | |
| KAFKA_DRY_RUN | No | If 'true', write and admin tools validate + log intent without making cluster changes. Defaults to 'false'. | false |
| KAFKA_AUDIT_LOG | No | If 'true', emits a JSON audit log line to stderr per guarded operation. Defaults to 'true'. | true |
| KAFKA_ALLOW_DELETE | No | Set to 'true' to enable delete_topic and delete_consumer_group (requires admin mode). Defaults to 'false'. | false |
| KAFKA_SASL_PASSWORD | No | Password for SASL authentication. | |
| KAFKA_SASL_USERNAME | No | Username for SASL authentication. | |
| KAFKA_SASL_MECHANISM | No | SASL mechanism: PLAIN, SCRAM-SHA-256, or SCRAM-SHA-512. | |
| KAFKA_TOPIC_ALLOWLIST | No | Comma-separated list of allowed topics. When set, operations on other topics are refused. | |
| KAFKA_PROTECTED_TOPICS | No | Comma-separated list of additional topics that are read-only forever. | |
| KAFKA_PROTECT_INTERNAL_TOPICS | No | Set to 'false' to allow mutation of topics starting with an underscore. Defaults to 'true'. | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| cluster_infoA | Describe the Kafka cluster: brokers, controller, and cluster id. |
| list_topicsB | List topic names. Topics outside the allowlist are filtered out. |
| describe_topicC | Partitions, replicas, in-sync replicas, and non-default configs for a topic. |
| topic_offsetsA | Earliest and latest offsets per partition for a topic (message backlog view). |
| list_consumer_groupsA | List consumer groups and their protocol types. |
| describe_consumer_groupB | Describe a consumer group's state and compute per-partition and total lag across its topics. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool targets a distinct resource+action: topic listing vs. topic detail vs. offset backlog, consumer group listing vs. group detail/lag, and cluster summary. The list_* vs describe_* split is crisp, and topic_offsets is clearly separated from describe_topic. No two tools could be reasonably confused.
Most tools follow a verb_noun pattern (list_topics, describe_topic, describe_consumer_group, list_consumer_groups), but topic_offsets and cluster_info use noun-phrase forms. The deviation is minor and still readable, and the overall style is snake_case and predictable.
Six tools is well-scoped for a read-only Kafka inspection server, covering the three core surfaces (topics, consumer groups, cluster) without redundancy. Each tool earns its place with no filler.
The read-only inspection surface is coherent and covers topic metadata, offset backlog, consumer group lag, and cluster state with no dead ends within its scope. Gaps exist for write/admin operations (create/delete topics, config changes) and message preview, but these appear intentionally out of scope.