SafeGrd

Verifique seus backups e faça um antes de uma migração arriscada. O SafeGrd faz backup de PostgreSQL, MySQL, MongoDB, SQLite, arquivos e caixas de e-mail, criptografados e bloqueados, e os restaura em Fire Drills para provar que funcionam. Um agente pode ler backups e drills e solicitar um backup ou um drill; nenhuma ferramenta exclui um backup.

Servidor MCP hospedado

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

Instala no Claude Code, Codex, Cursor e outros

Documentação

Agentes de IA (MCP)

O SafeGrd fala o Model Context Protocol, então um agente de codificação pode verificar seus backups, fazer um antes de uma migração arriscada e comprovar que ele restaura, sem que ninguém abra o console. Existem dois servidores. O remoto lê o estado de cada host e solicita um backup ou um drill. Ele nunca armazena dados nem descriptografa nada. O local roda em um host e faz backup, verifica e restaura com a configuração e a chave desse host.

O servidor remoto está incluído em todos os planos pagos; no plano gratuito, ele responde com 402 e o motivo. O servidor local faz parte da CLI e não requer plano.

ServidorOnde rodaO que pode fazer
Remotohttps://safegrd.dev/mcpLer organizações, projetos, superfícies, snapshots e drills; solicitar um backup ou um Fire Drill agora; ler uso de armazenamento e estatísticas de drill.
Localsafegrd mcp, no hostStatus, list, doctor, backup, verificação, restauração em um destino novo ou vazio e exportação.

O que um agente não pode fazer

Nenhuma ferramenta exclui um snapshot, altera onde os backups são armazenados, rotaciona uma chave ou muda cobrança ou membros. O servidor recusa essas ações para um token de acesso pessoal em todas as rotas da API, então um token não pode fazê-las via REST também. Um snapshot sob Object Lock em modo de conformidade não pode ser excluído antes que o bloqueio expire, por ninguém. Toda ferramenta é marcada como não destrutiva em suas anotações MCP, e as ferramentas de leitura são marcadas como somente leitura, para que um cliente possa executá-las sem perguntar a cada vez.

Cada request_backup e request_drill, e as mesmas solicitações feitas pelo console, são listados na página Tokens do console com a pessoa, o nome do token, se veio via MCP e se foi aceito.

O servidor remoto

Crie um token de acesso pessoal no console em Tokens e adicione o servidor ao seu cliente. No Claude Code:

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

Ou instale o plugin do Claude Code, que solicita o token e adiciona habilidades que fazem backup e executam um Fire Drill antes de uma mudança arriscada, além de relatar a saúde dos backups. A fonte está em safegrd/agent-plugins.

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

Qualquer cliente que suporte o transporte Streamable HTTP e um cabeçalho bearer funciona da mesma forma. O servidor é stateless: cada chamada é verificada contra o token como ele está no momento, então revogar o token no console interrompe o agente na próxima chamada.

Outros clientes

No Cursor, adicione isto a ~/.cursor/mcp.json, ou a .cursor/mcp.json em um projeto:

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

No VS Code, adicione isto a .vscode/mcp.json. O VS Code solicita o token na primeira vez que inicia o servidor e o armazena, então o arquivo não contém segredo:

{
  "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}" }
    }
  }
}

O SafeGrd está listado no MCP Registry como dev.safegrd/safegrd, que clientes que navegam pelo registro instalam a partir dele, e no Smithery como safegrd/safegrd. No Smithery, insira o valor completo do cabeçalho, Bearer sg_pat_..., no campo x-safegrd-token.

FerramentaArgumentosO que faz
list_organizationsOrganizações às quais o token pertence, com plano e cotas.
list_projectsorg_idProjetos de uma organização, como produção e staging.
list_surfacesproject_id, limit, cursor (todos opcionais)Bancos de dados, árvores de arquivos, caixas de correio e hosts, com último backup, drill e estado de alerta.
get_surfacenode_idUma superfície ou host.
list_snapshotsnode_id; limit, cursor (opcional)Snapshots de uma superfície, do mais novo ao mais antigo: quando, tamanho, bloqueado até quando e se um drill os verificou.
get_snapshotsnapshot_idMetadados registrados de um snapshot: digests, contagens, bloqueio, veredito do Threat Shield.
list_drillsnode_id; limit, cursor (opcional)Relatórios de Fire Drill de uma superfície, do mais novo ao mais antigo, com suas asserções e assinaturas.
request_backupnode_idSolicitar um backup agora. Recusado dentro de uma hora do último backup, porque cada um é bloqueado e armazenado até expirar.
request_drillnode_idSolicitar um Fire Drill do snapshot mais recente agora. Contabilizado na cadência de drill do plano.
storage_usageorg_idArmazenamento hospedado: se é oferecido, a cota e quanto está bloqueado.
drill_statsorg_idTaxa de aprovação e resultados de Fire Drill em uma organização.

O servidor remoto não executa nada por conta própria. Em uma superfície que seu host faz backup, uma solicitação é captada pelo daemon no próximo check-in, então o host precisa do daemon em execução para request_backup e request_drill fazerem algo. Uma superfície configurada como Back up on SafeGrd ou Drill on SafeGrd no console é enfileirada no SafeGrd e não precisa de daemon. Uma recusa retorna como erro de ferramenta nas próprias palavras da API, para que o agente possa explicar o motivo.

As três ferramentas de listagem retornam {"items": [...], "next_cursor": "..."}, 25 por vez, a menos que limit diga o contrário (até 200). Passe next_cursor de volta como cursor para a próxima página; ele está ausente na última.

O servidor local

safegrd mcp serve o SafeGrd deste host via stdio, para um agente executando na mesma máquina. No Claude Code:

claude mcp add safegrd -- safegrd mcp

Em um host que executa a CLI como contêiner, execute a mesma imagem com o volume que contém sua configuração e chave, aquela com a qual você se registrou:

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

Cada ferramenta executa o comando CLI de mesmo nome com a configuração deste host e recusa o que o comando recusa. Mais dois limites:

  • Nenhuma ferramenta aceita chave privada. A key_path do host é usada, então sua chave nunca passa pelo contexto de um agente.
  • restore grava apenas em um diretório novo ou vazio, ou em um banco de dados que a restauração confirma estar vazio. Um agente não pode restaurar sobre dados.
FerramentaArgumentosExecuta
statussafegrd status
listsafegrd list
doctorsafegrd doctor
backupsurface ou files (opcional)safegrd backup --surface para uma superfície da configuração do host, --files para uma árvore de diretórios, ou o banco de dados configurado
verifysnapshot_id, sandbox_url (opcional)safegrd verify --dry-run, ou um drill completo em um banco de dados vazio
restoresnapshot_id, e target_dir ou target_urlsafegrd restore em um destino vazio
exportto_dir, ou to_bucket e to_endpointsafegrd export, ainda criptografado

A API REST por baixo

Toda ferramenta remota é uma chamada às mesmas rotas /api/v1 que o console usa. As rotas que um agente precisa estão descritas em /openapi.json, e /llms.txt aponta um agente para estes documentos. As ferramentas do servidor remoto estão listadas sem token em /.well-known/mcp/server-card.json.