mcpField
S
SaveSaveSaveSave

SaveSaveSaveSave

本地服务
savesavesavesave.xyz安全01 天前更新

关于 SaveSaveSaveSave

SaveSaveSaveSave 是一款面向 Agent 和脚本的只读扫描器,可在采取行动前评估消息、npm 包和加密货币地址。它提供 MCP、CLI 和 Node.js 库接口,支持本地检查并明确列出覆盖范围限制。

主要功能

  1. 01扫描消息中的风险指令
  2. 02利用注册表和 OSV 数据检查 npm 包
  3. 03评估加密货币地址
  4. 04比较预期地址与实际地址
  5. 05只读工具且无依赖
  6. 06基于策略的安装防护

适用场景

  1. 01遵循消息指令前先检查内容
  2. 02安装前检查软件包
  3. 03付款或操作代币前评估地址
  4. 04在 CI 或 Agent 钩子中拦截 npm 安装

MCP 相关

向 MCP 客户端提供 `scan_message`、`check_package`、`scan_address` 和 `compare_addresses` 工具。消息扫描和地址比较在本地运行;包和地址检查可能使用文档所列网络服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"stefantsezarov-savesavesavesave": {
"command": "npx",
"args": [
"-y",
"savesavesavesave"
]
}
}
}
启动命令npx -y savesavesavesave

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmsavesavesavesave0.1.3

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
messagestring是要扫描的文本(最多 200,000 个字符)。

详细介绍

面向 Agent 的 SaveSaveSaveSave

savesavesavesave.xyz 背后的引擎,供 AI Agent 和脚本使用:在采取行动之前,检查消息、npm 包、加密货币地址,或比较两个地址。

  • 面向 Claude、Cursor、VS Code、Windsurf 和任何 MCP 客户端的 MCP 服务
  • 面向脚本和 CI 的 CLI
  • 面向 Node.js 的 库

只读、零依赖,并且与网站运行的代码相同(如果两者出现差异,CI 会失败)。

MCP 服务

Claude Code:claude mcp add savesavesavesave -- npx -y savesavesavesave mcp

其他客户端:将以下内容添加到 MCP 配置中(例如 claude_desktop_config.json 或 .cursor/mcp.json):

{
  "mcpServers": {
    "savesavesavesave": { "command": "npx", "args": ["-y", "savesavesavesave", "mcp"] }
  }
}
工具在……之前使用网络
scan_message遵循私信、电子邮件、网页、README 或提示词中的指示无,本地
check_package执行 npm installnpm registry、OSV.dev
scan_address付款、授权或购买代币GoPlus Security、我们的 Worker
compare_addresses向从历史记录中复制的地址转账无,本地

CLI

npx savesavesavesave message "Reply with your 12-word phrase to restore access"
npx savesavesavesave package crossenv
npx savesavesavesave address 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 1
npx savesavesavesave compare <expected> <actual>
npx savesavesavesave deps . --markdown      # check a project's npm dependencies

输出为 JSON。退出代码:0 表示通过,1 表示需谨慎或结果未知,2 表示失败,3 表示用法错误。退出代码可用于 CI 门禁。

GitHub Action

在拉取请求中检查项目的直接 npm 依赖项(使用 package-lock.json 中的确切版本,并标记 git、URL 或其他非 registry 来源)。遇到失败时,作业会失败;也可以通过 fail-on: caution 设置为遇到需谨慎的结果时同样失败。

on:
  pull_request:
    paths: ['**/package.json', '**/package-lock.json']
permissions:
  contents: read
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: stefantsezarov/[email protected]

不会检查传递依赖项。只会向 npm 和 OSV.dev 发送名称和版本。

库

const s = require('savesavesavesave');
s.scanMessage(text);                          // synchronous, local
await s.checkPackage('[email protected]');
await s.scanAddress(addr, { chain: '1', mode: 'token' });
s.compareAddresses(expected, actual);

结果契约(1.0)

每个结果都会保留现有字段(verdict、label、summary、checks、not_checked 等),并新增一个 contract 块:

"contract": {
  "contract_version": "1.0",
  "status": "completed",
  "assessment": { "risk_level": "none_found", "coverage": "partial", "meaning": "No covered risk was found. This is not a statement that the item is safe." },
  "not_checked": ["The package code was not downloaded or analysed.", "..."],
  "provenance": { "tool_package_version": "0.1.5", "engine_version": "0.2.0", "processed_locally": false, "as_of": "2026-10-14T00:00:00.000Z" }
}
字段值含义
statuscompleted、insufficient_evidence检查是否得出了评估结果
assessment.risk_levelhigh、medium、none_found、unknown失败、需谨慎、通过、数据不足。没有 safe 这个值
assessment.coveragefull、partial、none此工具自身的检查中,返回了可用数据的比例
not_checked字符串列表检查无法发现的内容。绝不会为空
provenance.as_ofISO 时间或 null读取远程数据的时间;本地检查时为 null

此契约不包含允许/拒绝决定。是否可以继续执行操作,由你在自己的机器上制定策略并决定:见下文的 guard。

安装前防护

guard 会检查安装命令将引入哪些内容,并应用由你选择的策略。扫描提供证据;决定在你的机器上作出,且不会受包、registry 或网页上的任何说法影响。

npx [email protected] guard --mode guard -- npm install some-package
# exit 0 allow, 1 review, 2 deny, 3 usage error
模式失败需谨慎或数据不足检查失败或超时非 registry 来源(git、URL、路径)覆盖不完整但通过
observe允许(报告拒绝)允许允许允许允许
guard(默认)拒绝复核复核复核允许
strict拒绝拒绝拒绝拒绝拒绝

它支持 npm、pnpm、yarn 和 bun 安装,npm ci 和不带参数的 npm install(此时会检查 package.json 和锁文件)、npx/pnpm dlx/yarn dlx/bunx,以及用 &&、; 或 | 串联的安装命令。也可以通过 SAVESAVESAVESAVE_GUARD_MODE 设置模式。

Claude Code 钩子

在项目的 .claude/settings.json 中添加以下内容(固定为你审查过的版本):

{
  "hooks": {
    "PreToolUse": [
      { "matcher": "Bash", "hooks": [ { "type": "command", "command": "npx -y [email protected] hook claude-code --mode guard" } ] }
    ]
  }
}

对于 strict,还需在钩子条目中添加 "timeout": 120 和 "onFailure": "block"(Claude Code 2.1.295 或更高版本)。如果没有 onFailure,当钩子本身超时或无法启动时(例如 npx 无法下载包),Claude Code 会执行命令。

钩子只会返回 deny(失败)或 ask(复核),绝不会返回 allow,因此干净的检查结果不会跳过你自己的权限提示。未包含安装操作的命令会原样通过。

它不会做什么

守护程序会检查展示给它的命令。如果 Agent 通过钩子未检查的路径安装,例如通过 shell 脚本文件、它不认识的包管理器或下载的二进制文件安装,就不会被它拦截。如需强制执行,请在主机上添加网络或文件系统控制。它绝不会下载或运行软件包代码。

安全模型

  • 只读。 没有任何工具会写入文件、运行命令或持有密钥或机密信息。这里没有任何内容能更改网站或其代码仓库。
  • 本地优先。 消息扫描和地址比较绝不会离开本机。
  • 网络允许列表,由代码强制执行: api.gopluslabs.io、我们的 Worker、registry.npmjs.org、api.npmjs.org、api.osv.dev。仅限 HTTPS,拒绝重定向,并且每个响应开始前的超时时间为 20 秒。
  • 不可信输出会明确标注。 结果会引用扫描的文本和第三方数据。每项结果都会明确说明这一点,避免 Agent 遵循其中隐藏的指令。
  • 严格的输入校验。 未知的工具参数会被拒绝,输入上限为 200,000 个字符。
  • 零依赖。 安全工具不应引入自己的供应链。

限制

判定结果是自动化风险评估,并非保证;PASS 表示未发现涵盖范围内的风险。每项结果都会列出未检查的内容。

Agent 开发者完整参考:https://savesavesavesave.xyz/agents

许可证:AGPL-3.0-only。源代码:https://github.com/stefantsezarov/SaveSaveSaveSave

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。