SaveSaveSaveSave について
SaveSaveSaveSaveは、操作前にメッセージ、npmパッケージ、暗号資産アドレスを評価する、エージェントとスクリプト向けの読み取り専用スキャナーです。MCP、CLI、Node.jsライブラリを提供し、ローカル検査と検査範囲の明示に対応します。
主な機能
- 01メッセージ内の危険な指示をスキャン
- 02レジストリとOSVデータでnpmパッケージを検査
- 03暗号資産アドレスを評価
- 04期待するアドレスと実際のアドレスを比較
- 05依存関係のない読み取り専用ツール
- 06ポリシーに基づくインストールガード
活用シーン
- 01メッセージの指示に従う前に内容を確認
- 02インストール前にパッケージを検査
- 03支払いやトークン操作前にアドレスを評価
- 04CIやエージェントフックでnpmインストールを制御
MCP 対応
MCPクライアントに `scan_message`、`check_package`、`scan_address`、`compare_addresses` をツールとして提供します。メッセージスキャンとアドレス比較はローカルで実行され、パッケージやアドレスの検査では記載されたネットワークサービスを使う場合があります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| message | string | はい | スキャンするテキスト(最大 200,000 文字)。 |
詳細
エージェント向け SaveSaveSaveSave
savesavesavesave.xyz を動かすエンジンです。AI エージェントやスクリプト向けに、メッセージ、npm パッケージ、暗号資産アドレス、または2つのアドレスを比較し、操作する前に確認できます。
- 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 | DM、メール、ウェブページ、README、またはプロンプトの指示に従う | なし、ローカル |
check_package | npm install | npm レジストリ、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 は PASS、1 は CAUTION または不明、2 は FAIL、3 は使用方法のエラーです。終了コードを CI のゲートとして使用できます。
GitHub Action
プルリクエストでプロジェクトの直接依存関係をチェックします(package-lock.json の正確なバージョンを使用し、Git、URL、その他のレジストリ以外のソースにはフラグを付けます)。FAIL の場合にジョブを失敗させます。または fail-on: caution を指定すると、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 など)を維持し、1つの 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" }
}
| フィールド | 値 | 意味 |
|---|---|---|
status | completed、insufficient_evidence | チェックによって評価が得られたかどうか |
assessment.risk_level | high、medium、none_found、unknown | FAIL、CAUTION、PASS、データ不足を表します。safe という値はありません |
assessment.coverage | full、partial、none | このツール独自のチェックのうち、利用可能なデータを返したものの割合 |
not_checked | 文字列のリスト | チェックで確認できなかった内容。空になることはありません |
provenance.as_of | ISO 時刻または null | リモートデータを読み取った時刻。ローカルチェックの場合は null |
この契約には許可/拒否の判断は含まれません。操作を進めてよいかどうかは、お使いのマシン上で適用するポリシーです。以下の guard を参照してください。
インストール前のガード
guard はインストールコマンドで導入される内容をチェックし、ユーザーが選択したポリシーを適用します。スキャンが証拠を提示し、判断はお使いのマシン上で行われます。パッケージ、レジストリ、ウェブページの記述によって変更されることはありません。
npx [email protected] guard --mode guard -- npm install some-package
# exit 0 allow, 1 review, 2 deny, 3 usage error
| モード | FAIL | CAUTION またはデータ不足 | チェック失敗またはタイムアウト | レジストリ以外からの取得(Git、URL、パス) | カバレッジが部分的な PASS |
|---|---|---|---|---|---|
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(FAIL)または ask(要確認)のみです。allow を返すことはないため、問題のない結果であっても、独自の許可プロンプトを省略することはありません。インストールを含まないコマンドは変更せずに通過します。
対象外の動作
ガードが確認するのは、提示されたコマンドです。フックが検査しない経路(シェルスクリプトファイル、不明なパッケージマネージャー、ダウンロードしたバイナリなど)からインストールするエージェントは、ガードでは阻止できません。確実に強制するには、ホスト上でネットワークまたはファイルシステムの制御を追加してください。パッケージコードをダウンロードしたり、実行したりすることはありません。
セキュリティモデル
- 読み取り専用です。 ツールがファイルを書き込んだり、コマンドを実行したり、キーやシークレットを保持したりすることはありません。ウェブサイトやそのリポジトリを変更するものはありません。
- ローカルを優先します。 メッセージのスキャンとアドレスの比較がマシンの外に出ることはありません。
- ネットワークの許可リストはコードで強制されます:
api.gopluslabs.io、当社の Worker、registry.npmjs.org、api.npmjs.org、api.osv.dev。HTTPS のみを使用し、リダイレクトを拒否します。また、各応答の開始を待つタイムアウトは20秒です。 - 信頼できない出力にはラベルが付きます。 結果にはスキャンしたテキストとサードパーティのデータが引用されます。すべての結果にその旨が記載されるため、エージェントがその中に隠された指示に従うことはありません。
- 入力は厳格に検証されます。 不明なツール引数は拒否され、入力は200,000文字までに制限されます。
- 依存関係はゼロです。 セキュリティツールが独自のサプライチェーンを持ち込むべきではありません。
制限事項
判定は自動化されたリスク評価であり、保証ではありません。PASS は、対象となるリスクが見つからなかったことを意味します。すべての結果に、確認対象外の項目が記載されます。
エージェント開発者向けの完全なリファレンス:https://savesavesavesave.xyz/agents
ライセンス:AGPL-3.0-only。ソース:https://github.com/stefantsezarov/SaveSaveSaveSave
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。