mcp-debezium

Servidor MCP para Debezium / Kafka Connect: monitorea y gestiona conectores CDC (estado, configuración, reinicio, ciclo de vida) con modos de acceso, listas permitidas de conectores, control de eliminación y redacción de credenciales.

Documentación

mcp-debezium

CI License: MIT npm

Un servidor de Model Context Protocol para Debezium (a través de la API REST de Kafka Connect). Permite que un cliente compatible con MCP (Claude Desktop, Claude Code, etc.) supervise y gestione conectores de captura de cambios de datos — estado, configuración, reinicios, ciclo de vida — con un comportamiento controlado completamente por banderas.

Seguro por defecto: arranca en modo solo lectura, puede limitarse a una lista de conectores permitidos, protege conectores críticos de mutaciones, redacta credenciales en las configuraciones de los conectores y condiciona la eliminación a una aceptación explícita.

Características

  • Supervisión — información del worker/clúster, lista de conectores, plugins, configuración por conector, estado (con trazas de tareas fallidas) y temas.
  • Gestión — crear/actualizar, pausar/reanudar, reiniciar el conector o una tarea individual.
  • Ciclo de vida — eliminar conectores (admin).
  • Modos de acceso — read-only → read-write → admin, en capas de modo que un modo nunca expone herramientas por encima de su nivel.
  • Redacción de credenciales — database.password y otros valores de configuración con forma de secreto se reemplazan con ***REDACTED*** antes de devolver los resultados.
  • Banderas de seguridad — lista de conectores permitidos, conectores protegidos, control de eliminación, simulación (dry-run) y registro de auditoría JSON (ver más abajo).

Modelo de seguridad

PreocupaciónBanderaPredeterminadoEfecto
¿Qué puede hacer el servidor?DEBEZIUM_MODEread-onlyread-only expone solo supervisión; read-write añade gestión del ciclo de vida; admin añade eliminación. Las herramientas por encima del modo nunca se registran.
¿Qué conectores están en alcance?DEBEZIUM_CONNECTOR_ALLOWLIST(todos)Cuando se establece, se rechazan operaciones sobre otros conectores.
¿Qué conectores son de solo lectura para siempre?DEBEZIUM_PROTECTED_CONNECTORS(ninguno)Inspeccionables pero nunca pausados/reconfigurados/eliminados.
¿Puede eliminar?DEBEZIUM_ALLOW_DELETEfalsedelete_connector necesita esto y el modo admin.
Vista previa sin tocar ConnectDEBEZIUM_DRY_RUNfalseLas herramientas de escritura/admin validan y registran la intención, luego regresan.
Rastro de auditoríaDEBEZIUM_AUDIT_LOGtrueEmite una línea JSON a stderr por operación protegida.
Confirmación interactiva(automática)—Las acciones destructivas y de alto impacto solicitan la aprobación humana mediante la elicitación de MCP antes de ejecutarse; los clientes sin elicitación recurren a la puerta *_ALLOW_*.
Redacción de credenciales(siempre activa)—Los valores de configuración con forma de secreto se redactan antes de devolverse.

Herramientas

Lectura (read-only+): cluster_info, list_connectors, list_connector_plugins, get_connector, get_connector_config, get_connector_status, get_connector_topics

Escritura (read-write+): create_connector, update_connector_config, pause_connector, resume_connector, restart_connector, restart_task

Admin (admin): delete_connector (necesita DEBEZIUM_ALLOW_DELETE)

Inicio rápido — añádelo a tu agente

Publicado en npm como @dockndevai/mcp-debezium. 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 debezium -e CONNECT_URL="http://localhost:8083" -e DEBEZIUM_MODE="read-only" -- npx -y @dockndevai/mcp-debezium

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

{
  "mcpServers": {
    "debezium": {
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-debezium"
      ],
      "env": {
        "CONNECT_URL": "http://localhost:8083",
        "DEBEZIUM_MODE": "read-only"
      }
    }
  }
}

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

[mcp_servers.debezium]
command = "npx"
args = ["-y", "@dockndevai/mcp-debezium"]
env = { CONNECT_URL = "http://localhost:8083", DEBEZIUM_MODE = "read-only" }

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

{
  "servers": {
    "debezium": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@dockndevai/mcp-debezium"
      ],
      "env": {
        "CONNECT_URL": "http://localhost:8083",
        "DEBEZIUM_MODE": "read-only"
      }
    }
  }
}

Ejemplos de indicaciones

  • "¿Qué conectores están en FAILED y por qué?"
  • "Reinicia la tarea fallida en pg-orders." (necesita read-write)
  • "Muestra la configuración de mysql-inventory." (las credenciales se devuelven redactadas)

Ejecutar desde el código fuente (desarrollo)

Prefiere el paquete publicado anteriormente. 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          # security policy + config redaction
npm run typecheck

Publicación

Este servidor incluye un server.json para el registro oficial de MCP y un mcpName para la 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