SafeGrd

Revisa tus copias de seguridad y realiza una antes de una migración arriesgada. SafeGrd respalda PostgreSQL, MySQL, MongoDB, SQLite, archivos y buzones de correo, cifrados y bloqueados, y los restaura en simulacros de incendio para demostrar que funcionan. Un agente puede leer las copias y los simulacros y solicitar una copia o un simulacro; ninguna herramienta elimina una copia de seguridad.

Servidor MCP alojado

npx add-mcp 'https://safegrd.dev/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

Agentes de IA (MCP)

SafeGrd habla el Protocolo de Contexto de Modelo (MCP), por lo que un agente de codificación puede verificar tus copias de seguridad, hacer una antes de una migración arriesgada y demostrar que se restaura, sin que nadie abra la consola. Hay dos servidores. El remoto lee el estado de cada host y solicita una copia de seguridad o un simulacro. Nunca almacena datos ni descifra nada. El local se ejecuta en un host y realiza copias de seguridad, verifica y restaura con la configuración y la clave de ese host.

El servidor remoto está incluido en todos los planes de pago; en el plan gratuito responde con 402 y el motivo. El servidor local es parte de la CLI y no requiere plan.

ServidorDónde se ejecutaQué puede hacer
Remotohttps://safegrd.dev/mcpLeer organizaciones, proyectos, superficies, instantáneas y simulacros; solicitar una copia de seguridad o un Fire Drill ahora; leer el uso de almacenamiento y las estadísticas de simulacros.
Localsafegrd mcp, en el hostEstado, listado, doctor, copia de seguridad, verificación, restauración en un destino nuevo o vacío, y exportación.

Lo que un agente no puede hacer

Ninguna herramienta elimina una instantánea, cambia dónde se almacenan las copias de seguridad, rota una clave, ni modifica la facturación o los miembros. El servidor rechaza estas acciones a un token de acceso personal en cada ruta de la API, por lo que un token tampoco puede realizarlas a través de REST. Una instantánea bajo Object Lock en modo de cumplimiento no puede eliminarse antes de que expire su bloqueo, por nadie. Cada herramienta está marcada como no destructiva en sus anotaciones MCP, y las herramientas de lectura están marcadas como de solo lectura, para que un cliente pueda ejecutarlas sin preguntar cada vez.

Cada request_backup y request_drill, así como las mismas solicitudes realizadas desde la consola, aparecen en la página Tokens de la consola con la persona, el nombre del token, si llegó a través de MCP y si fue aceptado.

El servidor remoto

Crea un token de acceso personal en la consola bajo Tokens, luego añade el servidor a tu cliente. En Claude Code:

claude mcp add --transport http safegrd https://safegrd.dev/mcp \
  --header "Authorization: Bearer sg_pat_..."

O instala el plugin de Claude Code, que solicita el token y añade habilidades que hacen copias de seguridad y ejecutan un Fire Drill antes de un cambio arriesgado, e informan sobre la salud de las copias de seguridad. Su fuente es safegrd/agent-plugins.

/plugin marketplace add safegrd/agent-plugins
/plugin install safegrd@safegrd

Cualquier cliente que soporte el transporte Streamable HTTP y un encabezado bearer funciona de la misma manera. El servidor no tiene estado: cada llamada se verifica contra el token tal como está, por lo que revocar el token en la consola detiene al agente en su próxima llamada.

Otros clientes

En Cursor, añade esto a ~/.cursor/mcp.json, o a .cursor/mcp.json en un proyecto:

{
  "mcpServers": {
    "safegrd": {
      "url": "https://safegrd.dev/mcp",
      "headers": { "Authorization": "Bearer sg_pat_..." }
    }
  }
}

En VS Code, añade esto a .vscode/mcp.json. VS Code solicita el token la primera vez que inicia el servidor y lo almacena, por lo que el archivo no contiene ningún secreto:

{
  "inputs": [
    { "type": "promptString", "id": "safegrd-token",
      "description": "SafeGrd personal access token", "password": true }
  ],
  "servers": {
    "safegrd": {
      "type": "http",
      "url": "https://safegrd.dev/mcp",
      "headers": { "Authorization": "Bearer ${input:safegrd-token}" }
    }
  }
}

SafeGrd está listado en el MCP Registry como dev.safegrd/safegrd, desde donde los clientes que navegan por el registro lo instalan, y en Smithery como safegrd/safegrd. En Smithery, introduce el valor completo del encabezado, Bearer sg_pat_..., en el campo x-safegrd-token.

HerramientaArgumentosQué hace
list_organizationsOrganizaciones a las que pertenece el token, con plan y cuotas.
list_projectsorg_idProyectos de una organización, como producción y staging.
list_surfacesproject_id, limit, cursor (todos opcionales)Bases de datos, árboles de archivos, buzones y hosts, con última copia de seguridad, simulacro y estado de alerta.
get_surfacenode_idUna superficie o host.
list_snapshotsnode_id; limit, cursor (opcional)Instantáneas de una superficie, de más reciente a más antigua: cuándo, tamaño, bloqueada hasta cuándo, y si un simulacro las verificó.
get_snapshotsnapshot_idMetadatos registrados de una instantánea: resúmenes, conteos, bloqueo, veredicto de Threat Shield.
list_drillsnode_id; limit, cursor (opcional)Informes de Fire Drill de una superficie, de más reciente a más antiguo, con sus afirmaciones y firmas.
request_backupnode_idSolicitar una copia de seguridad ahora. Se rechaza dentro de la hora posterior a la última copia, porque cada una está bloqueada y almacenada hasta que expire.
request_drillnode_idSolicitar un Fire Drill de la instantánea más reciente ahora. Se cuenta contra la cadencia de simulacros del plan.
storage_usageorg_idAlmacenamiento alojado: si se ofrece, la cuota y cuánto está bloqueado.
drill_statsorg_idTasa de aprobación de Fire Drill y resultados en una organización.

El servidor remoto no ejecuta nada por sí mismo. En una superficie que tu host respalda, una solicitud es recogida por el daemon en su siguiente check-in, por lo que el host necesita el daemon en ejecución para que request_backup y request_drill hagan algo. Una superficie configurada como Back up on SafeGrd o Drill on SafeGrd en la consola se pone en cola en SafeGrd en su lugar, y no necesita daemon. Un rechazo vuelve como un error de herramienta en las propias palabras de la API, para que el agente pueda decirte por qué.

Las tres herramientas de listado devuelven {"items": [...], "next_cursor": "..."}, 25 a la vez a menos que limit indique lo contrario (hasta 200). Pasa next_cursor de vuelta como cursor para la siguiente página; está ausente en la última.

El servidor local

safegrd mcp sirve el SafeGrd de este host a través de stdio, para un agente que se ejecuta en la misma máquina. En Claude Code:

claude mcp add safegrd -- safegrd mcp

En un host que ejecuta la CLI como contenedor, ejecuta la misma imagen con el volumen que contiene su configuración y clave, la que usaste para inscribirte:

claude mcp add safegrd -- docker run -i --rm \
  -v safegrd:/home/safegrd/.safegrd ghcr.io/safegrd/cli mcp

Cada herramienta ejecuta el comando CLI del mismo nombre con la configuración de este host, y rechaza lo que el comando rechaza. Dos límites más:

  • Ninguna herramienta toma una clave privada. Se usa la key_path del host, por lo que tu clave nunca pasa por el contexto de un agente.
  • restore escribe solo en un directorio nuevo o vacío, o en una base de datos que la restauración confirma que está vacía. Un agente no puede restaurar sobre datos.
HerramientaArgumentosEjecuta
statussafegrd status
listsafegrd list
doctorsafegrd doctor
backupsurface o files (opcional)safegrd backup --surface para una superficie de la configuración del host, --files para un árbol de directorios, o la base de datos configurada
verifysnapshot_id, sandbox_url (opcional)safegrd verify --dry-run, o un simulacro completo en una base de datos vacía
restoresnapshot_id, y target_dir o target_urlsafegrd restore en un destino vacío
exportto_dir, o to_bucket y to_endpointsafegrd export, aún cifrado

La API REST subyacente

Cada herramienta remota es una llamada a las mismas rutas /api/v1 que usa la consola. Las rutas que un agente necesita están descritas en /openapi.json, y /llms.txt apunta a un agente a estos documentos. Las herramientas del servidor remoto están listadas sin token en /.well-known/mcp/server-card.json.