Kafka MCP Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Supports environment variable configuration through .env files for Kafka connection settings and tool descriptions.

  • Provides publish and consume functionalities for Kafka topics, allowing messages to be sent to and retrieved from Kafka streams. Messages consumed cannot be read again using the same group ID.

  • Utilizes Pydantic for settings management and validation of configuration values.

Kafka MCP 服务器

与 Apache Kafka 集成的消息上下文协议 (MCP) 服务器为 LLM 和 Agentic 应用程序提供发布和使用功能。

概述

该项目实现了一个服务器,允许 AI 模型通过标准化接口与 Kafka 主题进行交互。它支持:

  • 将消息发布到 Kafka 主题
  • 从 Kafka 主题消费消息

先决条件

  • Python 3.8+
  • Apache Kafka 实例
  • Python 依赖项(参见安装部分)

安装

  1. 克隆存储库:
    git clone <repository-url> cd <repository-directory>
  2. 创建虚拟环境并激活它:
    python -m venv venv source venv/bin/activate # On Windows, use: venv\Scripts\activate
  3. 安装所需的依赖项:
    pip install -r requirements.txt
    如果不存在 requirements.txt,请安装以下包:
    pip install aiokafka python-dotenv pydantic-settings mcp-server

配置

在项目根目录中创建一个.env文件,其中包含以下变量:

# Kafka Configuration KAFKA_BOOTSTRAP_SERVERS=localhost:9092 TOPIC_NAME=your-topic-name IS_TOPIC_READ_FROM_BEGINNING=False DEFAULT_GROUP_ID_FOR_CONSUMER=kafka-mcp-group # Optional: Custom Tool Descriptions # TOOL_PUBLISH_DESCRIPTION="Custom description for the publish tool" # TOOL_CONSUME_DESCRIPTION="Custom description for the consume tool"

用法

运行服务器

您可以使用提供的main.py脚本运行服务器:

python main.py --transport stdio

可用的交通方式:

  • stdio :标准输入/输出(默认)
  • sse :服务器发送事件

与 Claude Desktop 集成

要将此 Kafka MCP 服务器与 Claude Desktop 一起使用,请将以下配置添加到您的 Claude Desktop 配置文件中:

{ "mcpServers": { "kafka": { "command": "python", "args": [ "<PATH TO PROJECTS>/main.py" ] } } }

<PATH TO PROJECTS>替换为项目目录的绝对路径。

项目结构

  • main.py :应用程序的入口点
  • kafka.py :Kafka连接器实现
  • server.py :MCP 服务器实现,包含与 Kafka 交互的工具
  • settings.py :使用 Pydantic 进行配置管理

可用工具

kafka 发布

将信息发布到配置的 Kafka 主题。

kafka-consume

从配置的 Kafka 主题中使用信息。

  • 注意:一旦从主题读取了一条消息,就不能使用相同的 groupid 再次读取它
-
security - not tested
A
license - permissive license
-
quality - not tested

使 AI 模型能够通过标准化接口发布和使用来自 Apache Kafka 主题的消息,从而可以轻松地将 Kafka 消息传递与 LLM 和代理应用程序集成。

  1. Overview
    1. Prerequisites
      1. Installation
        1. Configuration
          1. Usage
            1. Running the Server
            2. Integrating with Claude Desktop
          2. Project Structure
            1. Available Tools
              1. kafka-publish
              2. kafka-consume
            ID: 8ohdumy56r