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 conector o una tarea individual.
  • Ciclo de vida — eliminar conectores (admin).
  • Modos de accesoread-onlyread-writeadmin, en capas para que un modo nunca exponga herramientas por encima de su nivel.
  • Redacción de credencialesdatabase.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ónBandeeraPredeterminadoEfecto
¿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 modo admin.
Vista previa sin tocar ConnectDEBEZIUM_DRY_RUNfalseLas herramientas de escritura/admin validan + registran la intención y luego retornan.
Rastro de auditoríaDEBEZIUM_AUDIT_LOGtrueEmite una línea JSON a stderr por operación protegida.
Redacción de credenciales(siempre activo)Los valores de configuración con forma de secreto se redactan antes de devolverlos.

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. Empieza 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 — 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 prompts

  • "¿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 en npm. Consulta PUBLISHING.md para publicar en npm y listar en el registro de MCP, Smithery, Glama, Cursor y PulseMCP.

Licencia

MIT