原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。使用 Google 登录即可撰写评价。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

SafeGrd

作者:safegrd版本 0.0.29i★ 0i电脑或云端
注册名称dev.safegrd/safegrd

安装方法

概览

作者提供的说明(英文原文)

Read backups and Fire Drills, and ask for a backup or a drill. No tool deletes a backup.

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 电脑或云端
  • 传输方式: stdio, Streamable HTTP
  • 分类: 其他
  • 你需要填写:Authorization

安装

选择你使用的 AI 应用,然后复制设置。

通过 4/5 项检查 · 你的提问会经过开发者的服务器(safegrd.dev)

第一步:你用哪个 AI?

选择你用的应用,步骤会显示在下方。

可连接 Claude · 约 5 分钟

需要 SafeGrd 的密钥(在开发者网站注册,可能收费) · 在 claude.ai 或桌面应用设置一次,即可在聊天中使用 · 免费账户可添加 1 个

  1. 注册并创建 SafeGrd 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。可能收费。

    打开 SafeGrd 网站 ↗

  2. 打开 Claude 的 Connectors 页面

    CustomizeConnectors

    CustomizeConnectors1+ Add2https://…3Add4
  3. 点击“+ Add” → “Add custom connector”,填写这 2 项

    把这里的内容复制到 Claude 中同名的输入框,然后点击 Continue

    Name · 名称SafeGrd
    Remote MCP server URL · 地址https://safegrd.dev/mcp

    在 Request headers 下添加这个名称和值

    Header 名称Authorization
    值Bearer <在这里粘贴你的密钥>

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

    Authentication 保持 Claude 检测到的设置,然后点击 Add

  4. 在聊天中开启

    +ConnectorsSafeGrd

  5. 试一试

    用 SafeGrd 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude 说正在使用 SafeGrd,或回答中出现 SafeGrd 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

ChatGPT 暂时无法连接 SafeGrd

SafeGrd 连接时需要你自己的密钥,但 OpenAI 帮助页面只说明了 OAuth 登录,没有我们能核实的填密钥方式

你可以改用这些方式

A · 使用能连接 SafeGrd 的应用

  • 需要 SafeGrd 的密钥(在开发者网站注册,可能收费) · 在 claude.ai 或桌面应用设置一次,即可在聊天中使用 · 免费账户可添加 1 个
  • 需要 SafeGrd 的密钥(在开发者网站注册,可能收费)
  • 需要 SafeGrd 的密钥(在开发者网站注册,可能收费)
  • 需要 SafeGrd 的密钥(在开发者网站注册,可能收费)

B · 其他 类中能连接 ChatGPT 的其他服务器

从同类中使用较多的里挑选,仅限用地址即可连接、无需密钥的

可连接 Claude Code · 约 5 分钟

需要 SafeGrd 的密钥(在开发者网站注册,可能收费)

  1. 注册并创建 SafeGrd 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。可能收费。

    打开 SafeGrd 网站 ↗

  2. 打开终端

    Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell

  3. 粘贴这条命令并按 Enter

    claude mcp add --transport http safegrd https://safegrd.dev/mcp --header 'Authorization: your-value'

    按 Enter 前,把“your-value”改成你的密钥

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  4. 在 Claude Code 中输入 /mcp

    应能看到 SafeGrd 在列表中并显示已连接

  5. 试一试

    用 SafeGrd 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude Code 说正在使用 SafeGrd,或回答中出现 SafeGrd 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

可连接 Cursor · 约 5 分钟

需要 SafeGrd 的密钥(在开发者网站注册,可能收费)

  1. 注册并创建 SafeGrd 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。可能收费。

    打开 SafeGrd 网站 ↗

  2. 点击这个按钮打开 Cursor

    在 Cursor 中打开

    Cursor 会请你确认安装,点击 Install

  3. 填写你的密钥

    在 SafeGrd 的设置中,Authorization 还是空的,填入你的密钥并保存

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  4. 在 Cursor 中以 Agent 模式打开 AI 聊天

  5. 试一试

    用 SafeGrd 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Cursor 说正在使用 SafeGrd,或回答中出现 SafeGrd 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同

可连接 VS Code · 约 5 分钟

需要 SafeGrd 的密钥(在开发者网站注册,可能收费)

  1. 注册并创建 SafeGrd 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。可能收费。

    打开 SafeGrd 网站 ↗

  2. 点击这个按钮打开 VS Code

    在 VS Code 中打开

    VS Code 会请你确认安装,点击 Install

  3. 填写你的密钥

    在 SafeGrd 的设置中,Authorization 还是空的,填入你的密钥并保存

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  4. 在 VS Code 中以 Agent 模式打开 AI 聊天

  5. 试一试

    用 SafeGrd 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 VS Code 说正在使用 SafeGrd,或回答中出现 SafeGrd 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同

其他支持 MCP 的应用(如 Windsurf、Zed、Gemini CLI)添加方式各不相同,请在应用列表中查看

查看所有支持 MCP 的应用 →

通过网页连接的应用使用的地址

地址https://safegrd.dev/mcp

JSON 设置在下方“开发者专用”中

卡住了?问问正在用 SafeGrd 的人💬 讨论 →
开发者专用:终端命令和 JSON 设置

通过网页连接

Claude Code

claude mcp add --transport http safegrd https://safegrd.dev/mcp --header 'Authorization: your-value'

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "safegrd": {
      "url": "https://safegrd.dev/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "safegrd": {
      "type": "http",
      "url": "https://safegrd.dev/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

安装在电脑上

Claude Code

claude mcp add safegrd -- docker run -i --rm ghcr.io/safegrd/cli:0.0.29 mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "safegrd": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/safegrd/cli:0.0.29",
        "mcp"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "safegrd": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/safegrd/cli:0.0.29",
        "mcp"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "safegrd": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/safegrd/cli:0.0.29",
        "mcp"
      ]
    }
  }
}

需要你填写的值

  • Authorization 机密 必填 HTTP header
    Bearer and a personal access token from the console's Tokens page: Bearer sg_pat_...

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

一览

每周下载量i
不在 npm/PyPI 上
已验证域名
✓ safegrd.dev
许可证i
未注明许可证
连接方式
电脑或云端
传输方式
stdio, streamable-http
最新版本i
0.0.29
分类i
其他
发布到注册中心i
2026年10月5日
代码最后更新i
2026年11月9日
作者
safegrd
软件包
oci: ghcr.io/safegrd/cli:0.0.29
注册状态
活跃

哪些应用可以使用它

依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。

通过互联网连接,适用于

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

在你的电脑上运行,适用于

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

全部应用及其优缺点 →

它能做什么

服务器要求先登录,才会列出它的工具。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月11日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过域名 safegrd.dev 验证(注册中心会核实域名所有权)

  • ✓ 通过

    仍在维护

    代码最后更新于3天前

  • ! 注意

    有许可证

    GitHub 无法识别许可证类型;请打开文件自行查看

  • ✓ 通过

    端点有响应

    在 343 毫秒内响应(HTTP 401)

  • ✓ 通过

    使用 OAuth 登录

    声明支持 OAuth 登录,你的 AI 应用可以带你去登录

  • … 尚未检查

    工具描述中没有隐藏指令

    尚未检查;我们会在检查端点时读取工具列表

讨论

提问、分享技巧或报告无法使用。按“有帮助”数量排序。

还没有帖子,欢迎第一个提问或分享。

此处内容由用户撰写,不代表 PopNx 团队。

使用 Google 登录后发帖

用户评价

还没有评价

用 Google 登录后写评价

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 19204 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 19204 个服务器的 56% 更新
  • 基础检查结果等于或优于此分类中其他 19204 个服务器的 46%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

SafeGrd 安全吗?

它在 5 项适用的基础检查中通过了 4 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:Authorization

它在我的电脑上运行还是在云端?

两种方式都可以:安装在你的电脑上,或者连接云端版本。

它还在维护吗?

GitHub 仓库最后更新于3天前,最新版本(0.0.29)于37天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,因此也能用于支持远程 MCP 的应用,例如 ChatGPT Business 及以上方案。

有什么可以替代它?

同一分类中有:World Monitor, Claude Flow, Tldraw

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.

作者:koala73广泛使用★ 9万6天前更新

在云端运行✓ worldmonitor.app

Claude Flow

AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.

作者:ruvnet广泛使用↓ 1.4万/周★ 8.1万14个月前更新

在你的电脑上运行

Tldraw

Draw and visually collaborate with your agents on tldraw's canvas.

作者:tldraw广泛使用★ 5.1万8个月前更新

在云端运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

SafeGrd CLI (safegrd)

safegrd backs up PostgreSQL, MySQL, MariaDB, MongoDB and SQLite databases, directory trees and IMAP mailboxes. Each backup is compressed with zstd and encrypted with age on the host that takes it, then written to S3-compatible storage under Object Lock. It is restored on a schedule to check that every table, row and file came back.

It is the CLI and daemon of SafeGrd. Documentation is at safegrd.dev/docs, and every command and flag is in the command reference.

  • Backups go from your host straight to storage. The remote server receives a record of each backup (when it ran, its size, its digest and the date its lock ends) and the signed result of each restore test. The data never passes through it.
  • You choose who holds the key. By default the remote server keeps your key sealed and releases it only to your enrolled hosts, so you can restore even after losing a host. With enroll --key-custody local, only you can decrypt these backups.
  • Restores are tested. A Fire Drill restores the newest backup into a throwaway database or directory, compares its tables, rows and digests with what was backed up, and signs the result.
  • An agent cannot remove a backup. safegrd guard takes a locked snapshot before a destructive command runs, and a personal access token cannot delete a backup or shorten its lock.

Installation

Install script (Linux and macOS)
curl -fsSL https://safegrd.dev/install.sh | sh

It detects your OS and architecture, downloads the matching release archive, checks it against the release's checksums.txt, and installs safegrd to /usr/local/bin (or ~/.local/bin when it cannot use sudo). The script is install.sh in this repository; https://raw.githubusercontent.com/safegrd/cli/main/install.sh serves the same file.

When it runs in a terminal, it then offers to connect the machine to a remote server: a browser login, a question about who holds the encryption key, then safegrd enroll. The login prints a URL and a code that you can open in a browser on any device, so it works the same on a server you reached over SSH or PuTTY. Without a terminal (CI, cloud-init, cron) it installs and stops.

Options are environment variables, and they go on the sh after the pipe. Written before curl they apply to curl, and the script never sees them:

curl -fsSL https://safegrd.dev/install.sh | VERSION=v0.0.3 sh                  # pin a release

curl -fsSL https://safegrd.dev/install.sh | SAFEGRD_INSTALL_DIR=~/.local/bin sh # no sudo curl -fsSL https://safegrd.dev/install.sh | SAFEGRD_NO_SETUP=1 sh # install only

VariableEffect
VERSIONRelease tag to install. Default: the latest release.
SAFEGRD_INSTALL_DIRWhere the binary goes.
SAFEGRD_NO_SETUP=1Install only; do not offer to log in and enroll.
SAFEGRD_FORCE_INSTALL=1Download and install even when the release asked for is already installed.
SAFEGRD_PROJECTProject ID or slug to enroll this machine into.
SAFEGRD_STORAGEhosted or local: where backups go when the project has no bucket.
SAFEGRD_CLAIMThe claim code the console shows for this machine. It carries the project, where backups go and the surfaces to protect, so enrollment writes them into the config and asks nothing. Needs a release whose enroll has --claim; an older one stops and says so.
SAFEGRD_NODE_NAMEName the machine is shown under.
SAFEGRD_KEY_CUSTODYlocal keeps this host's key on the host. Without it the remote server keeps the key sealed and releases it only to your enrolled hosts.
SAFEGRD_SERVER_URLRemote server to log in and enroll with. Default: https://safegrd.dev.
Homebrew (macOS and Linux)
brew install safegrd/tap/safegrd

The formula installs the same release archives as the script.

Go
go install github.com/safegrd/cli/cmd/safegrd@latest
Container image

ghcr.io/safegrd/cli runs on linux/amd64 and linux/arm64 and carries pg_dump, mysqldump and mongodump, and a PostgreSQL 18 server so a drill can restore a database into a throwaway cluster on the volume. The tag names the Postgres client: -pg18 reads Postgres 18 and every older server. Releases are signed with cosign (keyless, from this repository's release workflow):

cosign verify ghcr.io/safegrd/cli:<version>-pg18 \

--certificate-identity-regexp 'https://github.com/safegrd/cli/.github/workflows/release.yml@.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.com

packaging/compose runs the daemon beside a database, packaging/kubernetes runs daemon run --once as a CronJob, and packaging/helm/safegrd runs the daemon as a Deployment. Each names the release it was cut with, such as ghcr.io/safegrd/cli:0.0.10; change the tag to upgrade.

Release archives, or from source

Static binaries for Linux and macOS (amd64, arm64) and their SHA-256 checksums are on the releases page. To build:

git clone https://github.com/safegrd/cli.git && cd cli

make build


Try it before you sign up

With no account, one command backs up a database and restores it to check:

safegrd try postgres://app:secret@db.example.com/app   # or env:DATABASE_URL, a MySQL, MongoDB or SQLite URL, or a directory

safegrd signup # keep it: the host, its backup and a daily schedule

The backup is encrypted on this host, stored on the remote server's storage for 24 hours, and restored in memory from there. Details are in the install guide.

Quickstart

1. Create a config and a key

Skip this if you let the install script connect the machine: it already wrote the keypair and ~/.safegrd/config.yaml, and init refuses to overwrite them.

# writes an age X25519 keypair and ~/.safegrd/config.yaml

safegrd init \ --database-url "postgres://postgres:password@localhost:5432/myapp_prod" \ --storage local \ --local-path ./backups \ --retention-days 14

2. Connect to a remote server (optional)
# Prints a URL and a code: open it in a browser on any device, including over SSH

safegrd login

Register this machine, generating its encryption key if it has none.

--key-custody decides whether the server keeps a copy (safegrd) or not (local)

safegrd enroll --key-custody local

A host that should encrypt but never decrypt: make the key pair on your laptop,

then put only the printed public key in the host's encryption.public_key

safegrd keygen --out ~/.safegrd/keys/prod.key

Headless / CI: a Personal Access Token instead of the browser

safegrd enroll --token "sg_pat_..."

Or with the claim code the console's setup shows: the project, where backups go and

the surfaces are written into ~/.safegrd/config.yaml, and the key stays on this machine

safegrd enroll --claim safegrd doctor # every surface opens from this host; the console shows the result safegrd daemon run --once

Later, on an enrolled host: add the surfaces named for it in the console

(Add surface on its row). Only adds; the old config is kept as config.yaml.bak

safegrd claim safegrd daemon restart

Verify the active session

safegrd whoami

3. Back up
# dumps, compresses, encrypts with age on this host, and writes to locked storage

safegrd backup

4. Run a Fire Drill
# restores into an empty database and checks every table's row count

safegrd verify \ --snapshot snap-20260919-01 \ --sandbox-target "postgres://postgres:password@localhost:5432/ephemeral_test_db"

5. Restore
safegrd restore \

--snapshot snap-20260919-01 \ --target "postgres://postgres:password@localhost:5432/myapp_recovered"

6. Protect several things on one host, unattended

Each entry under surfaces: in ~/.safegrd/config.yaml is one protected thing, and safegrd daemon install runs them on their schedules. A surface's credential block says where its secret comes from; the config never holds it:

surfaces:
  • id: app-primary type: postgres schedule: "@daily" credential: from: env # or: command (with run), file (with path), name: APP_DATABASE_URL # or safegrd: the remote server holds it for this host
  • id: user-uploads type: files schedule: "6h" roots: ["/var/www/uploads"]

safegrd.example.yaml is the annotated version. The daemon reads its config when it starts, so run safegrd daemon restart after changing it.

7. Take a locked snapshot before a destructive command

safegrd guard backs up one surface, waits until the snapshot is uploaded and locked, and then runs the command. If the backup fails or the snapshot is not locked, the command does not run and guard exits 3.

safegrd guard --surface app-primary -- psql "$APP_DATABASE_URL" -c 'DROP TABLE sessions'

safegrd guard -- terraform destroy

The commands a hook treats as destructive, and a check that takes no backup

safegrd guard --list safegrd guard --matches "npx prisma migrate reset" # exit 0: it matches

Storage on the host's own disk, or a bucket with worm_mode: NONE, cannot lock a snapshot, so guard refuses there unless you pass --allow-unlocked.

A locked snapshot of the surface younger than --max-age stands in for a new backup, so an agent running several destructive commands in a row backs up once. --check-only takes no backup at all and refuses the command unless such a snapshot exists:

safegrd guard --max-age 30m -- psql "$APP_DATABASE_URL" -c 'TRUNCATE sessions'

safegrd guard --max-age 1h --check-only -- terraform destroy

safegrd list --json prints every snapshot with its lock date, for scripts.

8. Back up a directory tree, and get one file back

File backups are incremental: the first run of each month uploads every file, and every run after it uploads only the chunks that changed. Every kept version of every file is searchable, and one file restores on its own.

safegrd backup --files /srv/app --exclude '*.tmp,node_modules/*'

every kept version of a file, numbered from the oldest

safegrd find etc/nginx/nginx.conf

one version of one file, or a directory as it was in one snapshot

safegrd restore --path etc/nginx/nginx.conf --version 2 --target-dir ./out safegrd restore --snapshot snap-20260919-01 --path 'var/www/**' --target-dir ./out

every pack present and every listing consistent, without restoring anything

safegrd check --all

a bucket over the S3 API (Supabase Storage, or any S3-compatible store)

safegrd backup --files s3://avatars --source-endpoint https://PROJECT.storage.supabase.co/storage/v1/s3 \ --source-region eu-central-1 --source-access-key env:S3_KEY --source-secret-key env:S3_SECRET

and back into the bucket, each object with the content type it had

safegrd restore --snapshot snap-20261012-01 --target s3://avatars --source-endpoint https://PROJECT.storage.supabase.co/storage/v1/s3 \ --source-region eu-central-1 --source-access-key env:S3_KEY --source-secret-key env:S3_SECRET

--format tar keeps one archive per backup instead. What is locked, for how long, and what a restore brings back: [safegrd.dev/docs/surfaces/files](https://safegrd

只显示了开头部分;其余内容请在仓库中阅读