MCP.so
登录
服务器

Kafka MCP Server

@pavanjava

概览

What is Kafka MCP Server?

A Message Context Protocol (MCP) server that integrates with Apache Kafka to provide publish and consume functionalities for LLM and Agentic applications. It allows AI models to interact with Kafka topics through a standardized interface.

How to use Kafka MCP Server?

Set up Python 3.8+, an Apache Kafka instance, and install dependencies (aiokafka, python-dotenv, pydantic-settings, mcp-server). Create a .env file with Kafka configuration (bootstrap servers, topic name, etc.). Run the server via python main.py --transport stdio or --transport sse. Integrate with Claude Desktop by adding the server command to the MCP configuration JSON.

Key features of Kafka MCP Server

  • Publish messages to configured Kafka topics
  • Consume messages from Kafka topics
  • Create new Kafka topics with custom partitions and replication
  • Delete existing Kafka topics
  • List all topics or filter by pattern
  • Display or alter topic configurations
  • Retrieve topic metadata

Use cases of Kafka MCP Server

  • An AI agent publishing analysis results or alerts to a Kafka topic
  • An LLM consuming messages from a topic to generate summaries or responses
  • Programmatic topic lifecycle management (create, delete, list) via MCP tools
  • Modifying topic configuration (e.g., retention) without leaving the assistant interface
  • Inspecting cluster metadata to debug or monitor Kafka infrastructure

FAQ from Kafka MCP Server

What are the prerequisites for using Kafka MCP Server?

You need Python 3.8+, a running Apache Kafka instance, and the required Python packages (aiokafka, python-dotenv, pydantic-settings, mcp-server).

How do I configure Kafka connection settings?

Create a .env file in the project root with variables like KAFKA_BOOTSTRAP_SERVERS (default localhost:9092), TOPIC_NAME, and optionally IS_TOPIC_READ_FROM_BEGINNING and DEFAULT_GROUP_ID_FOR_CONSUMER.

Can I customize the tool descriptions shown to the LLM?

Yes. You can set optional environment variables TOOL_PUBLISH_DESCRIPTION and TOOL_CONSUME_DESCRIPTION in the .env file to override the default descriptions.

What transport options are available for running the server?

The server supports stdio (standard input/output) as the default transport and sse (Server-Sent Events) as an alternative, specified via the --transport argument.

Can a consumed message be read again?

No. The README notes that once a message is read from the topic using the same consumer group ID, it cannot be read again.

来自「其他」的更多内容