The read path is deliberately harmless: the consumer it creates is ephemeral, starts at the earliest offset and never commits, so looking at a topic will not move anyone's offsets. Topic creation and deletion sit in the same tool set, so scope the broker credentials accordingly.
An MCP server over Apache Kafka administration, built in TypeScript on the Confluent Kafka client and speaking stdio. It manages topics, reports broker and consumer-group state, and can read messages off a topic.
- Topics listed, and one topic described with its partitions and replicas (list-topics, describe-topic)
- A topic created with a partition count and replication factor, or deleted (create-topic, delete-topic)
- Broker information for the cluster (get-cluster-info)
- Consumer groups listed, and one group described in detail (list-consumer-groups, describe-consumer-group)
- Messages read through an ephemeral consumer that starts at the earliest offset, commits nothing, and disconnects on a message count or a timeout
- Messages sent to a topic with an optional key
A recent Node.js, a reachable Kafka-compatible broker such as Apache Kafka or Redpanda, and the broker addresses given in the environment, comma-separated for more than one.
One command — npx -y kafka-mcp-server
