kafka-mcp-server

Expor operações do Apache Kafka (tópicos, produzir, consumir, grupos de consumidores) como ferramentas MCP.

Documentação

Servidor MCP Kafka

Um servidor Model Context Protocol (MCP) que expõe operações do Apache Kafka como ferramentas. Construído com TypeScript, transporte stdio e o cliente Confluent Kafka.

Pré-requisitos

  • Node.js 18.18+ ou 20.9+
  • Um broker compatível com Kafka em execução (Apache Kafka, Redpanda, etc.)

Configuração

npm install
npm run build

Configuração

Defina a variável de ambiente KAFKA_BROKERS (obrigatória):

export KAFKA_BROKERS=localhost:9092

Vários brokers podem ser separados por vírgula: broker1:9092,broker2:9092.

Execução

npm start

O servidor se comunica via stdio usando o protocolo MCP.

Claude Code

Adicione o servidor MCP usando a CLI:

claude mcp add kafka-mcp-server -e KAFKA_BROKERS=localhost:9092 node /path/to/kafka-mcp-server/dist/index.js

Ou adicione ao .mcp.json na raiz do seu projeto:

{
  "mcpServers": {
    "kafka": {
      "command": "node",
      "args": ["/path/to/kafka-mcp-server/dist/index.js"],
      "env": {
        "KAFKA_BROKERS": "localhost:9092"
      }
    }
  }
}

Claude Desktop

Adicione à configuração do Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "kafka": {
      "command": "node",
      "args": ["/path/to/kafka-mcp-server/dist/index.js"],
      "env": {
        "KAFKA_BROKERS": "localhost:9092"
      }
    }
  }
}

Ferramentas

Tópicos

FerramentaDescriçãoEntradas
list-topicsListar todos os tópicosnenhuma
describe-topicObter detalhes do tópico (partições, réplicas)topic
create-topicCriar um novo tópicotopic, numPartitions (padrão 1), replicationFactor (padrão 1)
delete-topicExcluir um tópicotopic

Produzir / Consumir

FerramentaDescriçãoEntradas
produceEnviar uma mensagem para um tópicotopic, value, key (opcional)
consumeLer mensagens de um tópicotopic, maxMessages (padrão 10), timeout (padrão 5000ms)

A ferramenta consume cria um consumidor efêmero que lê do offset mais antigo sem fazer commit. Ela desconecta após atingir maxMessages ou o tempo limite.

Cluster

FerramentaDescriçãoEntradas
get-cluster-infoObter informações do brokernenhuma
list-consumer-groupsListar todos os grupos de consumidoresnenhuma
describe-consumer-groupObter detalhes do grupo de consumidoresgroupId

Desenvolvimento

npm run build          # Compile TypeScript
npm start              # Run the server
npm run lint           # Run ESLint
npm run lint:fix       # Run ESLint with auto-fix
npm run format         # Format code with Prettier
npm run format:check   # Check formatting