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
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 acceso —
read-only→read-write→admin, en capas para que un modo nunca exponga herramientas por encima de su nivel. - Redacción de credenciales —
database.passwordy 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ón | Bandeera | Predeterminado | Efecto |
|---|---|---|---|
| ¿Qué puede hacer el servidor? | DEBEZIUM_MODE | read-only | read-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_DELETE | false | delete_connector necesita esto y modo admin. |
| Vista previa sin tocar Connect | DEBEZIUM_DRY_RUN | false | Las herramientas de escritura/admin validan + registran la intención y luego retornan. |
| Rastro de auditoría | DEBEZIUM_AUDIT_LOG | true | Emite 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." (necesitaread-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