mcp-kafka

Servidor MCP para Apache Kafka: monitorea y gestiona clústeres, temas y grupos de consumidores (con lag), con modos de acceso, listas de permitidos de temas, control de eliminación, simulación y registro de auditoría.

Documentación

mcp-kafka

CI License: MIT npm

Un servidor de Protocolo de Contexto de Modelo para Apache Kafka. Permite que un cliente compatible con MCP (Claude Desktop, Claude Code, etc.) supervise y gestione clústeres de Kafka — temas, particiones, configuraciones y grupos de consumidores (incluido el retraso) — con un comportamiento controlado completamente por banderas.

Seguro por defecto: inicia en modo de solo lectura, puede limitarse a una lista de temas permitidos, protege temas internos/críticos de modificaciones y condiciona las operaciones destructivas a una aceptación explícita.

Características

  • Supervisión — información del clúster/agentes, metadatos y offsets de temas, grupos de consumidores y retraso de consumidores por partición + total.
  • Gestión — crear temas, añadir particiones, alterar configuraciones de temas, restablecer offsets de grupos; eliminar temas/grupos (admin).
  • Modos de accesoread-onlyread-writeadmin, en capas para que un modo nunca exponga herramientas por encima de su nivel.
  • Banderas de seguridad — lista de temas permitidos, temas protegidos/internos, control de eliminación, simulación y registro de auditoría JSON (ver más abajo).
  • Autenticación — texto plano, TLS y SASL (PLAIN / SCRAM-SHA-256 / SCRAM-SHA-512).

Modelo de seguridad

PreocupaciónBanderaPredeterminadoEfecto
¿Qué puede hacer el servidor?KAFKA_MODEread-onlyread-only expone solo supervisión; read-write añade gestión; admin añade eliminaciones. Las herramientas por encima del modo nunca se registran.
¿Qué temas están en alcance?KAFKA_TOPIC_ALLOWLIST(todos)Cuando se establece, se rechazan operaciones en otros temas.
Proteger temas internosKAFKA_PROTECT_INTERNAL_TOPICStrueLos temas que comienzan con _ pueden leerse pero nunca modificarse.
Proteger temas específicosKAFKA_PROTECTED_TOPICS(ninguno)Temas adicionales de solo lectura para siempre.
¿Puede eliminar?KAFKA_ALLOW_DELETEfalsedelete_topic / delete_consumer_group necesitan esto y modo admin.
Vista previa sin tocar el clústerKAFKA_DRY_RUNfalseLas herramientas de escritura/admin validan y registran la intención, luego regresan.
Rastro de auditoríaKAFKA_AUDIT_LOGtrueEmite una línea JSON a stderr por operación protegida.

Herramientas

Lectura (read-only+): cluster_info, list_topics, describe_topic, topic_offsets, list_consumer_groups, describe_consumer_group (con retraso)

Escritura (read-write+): create_topic, create_partitions, alter_topic_config, reset_consumer_group_offsets

Admin (admin): delete_topic, delete_consumer_group (ambas necesitan KAFKA_ALLOW_DELETE)

Inicio rápido — añade a tu agente

Publicado en npm como @dockndevai/mcp-kafka. No se necesita clonar ni compilar — tu cliente MCP lo ejecuta bajo demanda con npx. Comienza en modo read-only; consulta .env.example para cada variable y docs/CLIENTS.md para la guía completa por cliente.

Claude Code (CLI)

claude mcp add kafka -e KAFKA_BROKERS="localhost:9092" -e KAFKA_MODE="read-only" -- npx -y @dockndevai/mcp-kafka

Claude Desktop · Cursor · Windsurf — mismo bloque en claude_desktop_config.json, .cursor/mcp.json o ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "kafka": {
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-kafka"
      ],
      "env": {
        "KAFKA_BROKERS": "localhost:9092",
        "KAFKA_MODE": "read-only"
      }
    }
  }
}

OpenAI Codex CLI — en ~/.codex/config.toml:

[mcp_servers.kafka]
command = "npx"
args = ["-y", "@dockndevai/mcp-kafka"]
env = { KAFKA_BROKERS = "localhost:9092", KAFKA_MODE = "read-only" }

VS Code (GitHub Copilot, modo Agente) — en .vscode/mcp.json:

{
  "servers": {
    "kafka": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-kafka"
      ],
      "env": {
        "KAFKA_BROKERS": "localhost:9092",
        "KAFKA_MODE": "read-only"
      }
    }
  }
}

Ejemplos de indicaciones

  • "¿Qué grupos de consumidores tienen más retraso ahora mismo?"
  • "Describe el tema orders y muestra sus offsets."
  • "Crea un tema events con 6 particiones y retención de 7 días." (necesita read-write)

Ejecutar desde el código fuente (desarrollo)

Prefiere el paquete publicado arriba. Para ejecutar desde un clon:

npm install
npm run build
node dist/index.js   # with the environment variables set

Desarrollo

npm run dev
npm test
npm run typecheck

Publicación

Este servidor incluye un server.json para el registro oficial de MCP y un mcpName para validación de propiedad de npm. Consulta PUBLISHING.md para publicar en npm y listar en el registro de MCP, Smithery, Glama, Cursor y PulseMCP.

Licencia

MIT