
Kafka
STDIOMCP server for AI assistants to perform Kafka client operations
MCP server for AI assistants to perform Kafka client operations
A Model Context Protocol (MCP) server for performing Kafka client operations from AI assistants.
mcp-kafka provides a bridge between AI assistants and Apache Kafka, allowing them to interact with Kafka clusters through the Model Context Protocol. This tool enables AI assistants to create, manage, and interact with Kafka topics and messages directly.
Here is a short video demo on youtube
The mcp-kafka server provides the following Kafka operations:
Clone the repository:
git clone https://github.com/kanapuli/mcp-kafka.git cd mcp-kafka
Build the application:
make build
Optionally, build for a specific platform:
make build GOOS=darwin GOARCH=arm64
To use mcp-kafka with Claude Desktop:
Build the application as mentioned above.
Place the executable in a location included in your system PATH or in a dedicated tools directory.
Please follow this Claude Desktop Tool Installation Guide to install the tool.
The JSON to be added to the claude_desktop_config.json file is as follows, Use the right username and password for SASL login. Leave them empty for PLAINTEXT authentication.
{ "mcpServers": { "kafka": { "command": "/Your-mcp-kafka-executable-path/mcp-kafka-darwin-arm64", "args": [ "--bootstrap-servers=localhost:9092", "--consumer-group-id=mcp-kafka-consumer-group", "--username=", "--password=" ], "env": {} } } }
The mcp-kafka tool accepts the following configuration parameters:
Parameter | Description | Default |
---|---|---|
topic | Topic to interact with | (required) |
num_partitions | Number of partitions for topic creation | (optional) |
replication_factor | Replication factor for topic creation | (optional) |
produce_message_key | Key for produced messages | (optional) |
produce_message_value | Value for produced messages | (optional) |
produce_message_headers | Headers for produced messages | (optional) |
consumer_timeout | Timeout in seconds for message consumption | 10 |
These parameters will be automatically derived from your Natural language message to the LLM.
The following flags should be used to configure the Kafka client:
--bootstrap-servers=localhost:9092
--consumer-group-id=mcp-kafka-consumer-group
--username='your_sasl_username'
--password='your_sasl_password'
NOTE: Currently, SASL_PLAINTEXT is supported along with PLAINTEXT authentication. SASL_SSL is not supported.
Contributions are welcome! Please feel free to submit a Pull Request.