Install
$ agentstack add mcp-supermarioyl-attestload ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
English ⇄ 简体中文
AttestLoad 给每个 Skill 与 MCP server 装上可验证的 SBOM 与构建溯源签名,让 Coding Agent 在加载前拒绝任何未经签名的代码——信任从 star 数变成密码学事实。
你靠 star 数装了一个 Skill,却不知道它加载时会运行什么——AttestLoad 把这道信任缺口变成一次密码学校验:未签名或被篡改的代码,加载前一律拒绝。
近期 "10k 个被植入木马的 GitHub 仓库" 的供应链事件提醒所有人:自主 Coding Agent 会按 star 数自动安装 Skill 和 MCP server,没有人真正读过那些代码。AttestLoad 把成熟的 SBOM / SLSA / Sigstore 供应链原语,第一次接到 agent 加载 Skill 的那条路径上——这是一个新动词:attest-before-load。
目录
- [架构](#架构)
- [安装](#安装)
- [快速开始](#快速开始)
- [用法](#用法)
- [Demo](#demo)
- [为什么需要它](#为什么需要它)
- [对比 cosign / Trivy](#对比-cosign--trivy)
- [配置](#配置)
- [路线图](#路线图)
- [定价](#定价)
- [许可证](#许可证)
架构
单个 Node CLI,无服务、无数据库、无 Kubernetes;仅在签名/验签时访问公共 Sigstore(Fulcio / Rekor)。作者一侧 attest 产出签名清单,消费一侧 verify 在加载前校验,policy 与 loader-guard 决定放行还是拒绝。
新原语是证明清单(attestation manifest)——一个随 Skill / MCP 目录一起分发的签名包:
| 字段 | 含义 | |---|---| | subject | 名称 / 版本 / 目录 sha256 摘要 / SBOM 来源(file-manifest 或 lockfile) | | sbom | SPDX-lite 包清单(Skill 即每文件条目;MCP server 来自 lockfile) | | files | 内容寻址的逐文件清单(path · sha256 · size) | | provenance | SLSA-lite 溯源(builder · sourcerepo · sourcecommit) | | signature | Sigstore 包 + Rekor 日志索引(或 ed25519 本地签名兜底) |
安装
需要 Node ≥ 22。
npm install -g attestload # 或免安装:npx attestload
快速开始
冷启动到第一次「拒绝瞬间」,三条命令:
git clone https://github.com/SuperMarioYL/attestload && cd attestload && npm install && npm run build
node dist/cli.js attest ./examples/signed-skill # 签发证明(默认本地 ed25519)
node dist/cli.js verify ./examples/unsigned-skill # BLOCKED,退出码 1 —— 这就是钩子
示例输出
$ attestload attest ./examples/signed-skill
✓ attested
subject : signed-skill@1.0.0 (skill)
digest : 1a72a17cf6a691f8249d73b5762ee0d513cf6e2e8e2a73c055e73e382948779e
sbom : file-manifest, 2 package(s)
signing : ed25519
written : ./examples/signed-skill/.attestload/attestation.json
$ attestload verify ./examples/signed-skill
PASS — verified
built by local:you from local@no-commit · signed ed25519
$ attestload verify ./examples/unsigned-skill
BLOCKED: no attestation found at .attestload/attestation.json — refusing to load unattested code
verdict: UNSIGNED (no-manifest)
unattested code refused to load
# exit code: 1
用法
四个子命令覆盖完整链路。每条命令都接受 --json 输出机器可读结果;verify 的退出码可直接用于 CI 与 git hook。
签发(作者一侧) —— 为 Skill 或 MCP server 目录派生 SBOM、捕获 git 溯源并签名:
attestload attest ./my-skill --kind skill # 扁平 Skill,SBOM 来自文件清单
attestload attest ./my-mcp-server --kind mcp-server # 有 lockfile 时从 lockfile 派生
attestload attest ./my-skill --sigstore # 强制 keyless Sigstore(一次浏览器 OIDC)
校验(消费一侧) —— 加载前的闸门,被篡改 / 未签名即拒绝:
attestload verify ./downloaded-skill # PASS → exit 0,BLOCKED → exit 1
attestload verify ./downloaded-skill --policy attestload.policy.yaml
attestload verify ./downloaded-skill --allowlist # 命中已验证白名单也放行(冷启动)
白名单(冷启动) —— 在作者尚未签名前,先用一份已验证的热门 Skill 名单兜底:
attestload index seed # 预置热门 Skill / MCP server
attestload index add my-skill --digest sha256:... # 钉住期望摘要
attestload index list
守卫 —— 在仓库里装一个 git pre-commit 钩子,提交前自动校验:
attestload guard install
更多可直接运行的示例见 [examples/](./examples)。
Demo
verify 拒绝一个未签名 Skill,随后放行同一个已签名 Skill —— 这一拒绝瞬间就是可分享的钩子。
为什么需要它
如今选择一个 Skill / MCP server 的依据基本只有 star 数,而自主 agent 会跳过人工审阅直接自动安装——这正是供应链攻击的理想入口。AttestLoad 把每一份产物的信任从「社交证明」换成「密码学事实」:摘要 + 签名 + 溯源在加载前一次校验,这是唯一能随 agent 集群规模扩展的办法。
对比 cosign / Trivy
诚实定位:通用工具更成熟,AttestLoad 的差异在于把这套原语接到了 agent 加载 Skill 的那条路径上。
| 能力 | AttestLoad | cosign | Trivy | |---|:---:|:---:|:---:| | 加载前对 Skill / MCP 目录「拒绝加载」 | ✓ | — | — | | 随产物分发的内容寻址 SBOM | ✓ | partial | ✓ | | keyless Sigstore + Rekor 签名 | ✓ | ✓ | — | | 通用容器镜像 / OCI 工件签名 | — | ✓ | partial | | 成熟度 / 生态广度 | 早期 | 成熟 | 成熟 |
要给容器镜像签名,用 cosign;要扫 CVE,用 Trivy。要让 Coding Agent 在加载一个 Skill 前拒绝未经证明的代码——这个动词目前只有 AttestLoad。
配置
verify 会就近读取一个可选的 attestload.policy.json / .yaml;缺省即严格策略。
| 键 | 类型 | 默认 | 含义 | |---|---|---|---| | require_provenance | bool | true | 缺少溯源即拒绝 | | require_signature | bool | true | 缺少有效签名即拒绝 | | allowed_identities | string[] | [] | 允许的签名身份(OIDC 标识,空表示不限制) | | use_allowlist | bool | false | 命中已验证白名单也放行(冷启动) |
路线图
- [x] m1 ——
attest把 Skill / MCP 目录签成可验证的 SBOM + 溯源清单 - [x] m2 ——
verify拒绝未签名 / 被篡改产物,放行已签名产物(拒绝 demo) - [x] m3 ——
index维护已验证 Skill 白名单,解决冷启动 - [ ] 托管团队层:持续更新的已验证 Skill 白名单 + 组织级策略执行(见[定价](#定价))
- [ ] 在 awesome-mcp-servers 等热门目录落地参考集成
- [ ] 面向更多 agent runtime 的加载守卫适配
定价
开源 CLI(本仓库)开放可用,覆盖本地的 attest / verify / 白名单全流程。当一支团队需要把校验从「每台电脑各管各的」升级为「全组织统一执行」时,托管层接管:
| 层级 | 价格 | 内容 | |---|---|---| | OSS CLI | 开放使用 | 本地 attest / verify / 本地白名单 · git pre-commit 守卫 | | 托管团队层 | $199 / 月(含 10 席) | 持续更新的已验证 Skill 白名单 + 组织级策略执行(CI / pre-commit 服务,统一管控 agent 集群可自动安装哪些 Skill)+ 每次证明决策的审计轨迹 | | 席位扩展 | $15 / 席 / 月 | 超出 10 席部分 | | 企业层 | ~$2k / 年 | SSO + 审计 + 设计合作支持 |
最短的「我要刷卡」路径:免费 CLI 在本地证明 refuse-then-pass 的价值 → 团队意识到需要全组织强制 → 托管面板给出一个白名单 URL + 一个 Stripe Checkout 链接,粘进 pre-commit / CI 配置,10 分钟内集群即受控。前三家设计合作团队由我们手动接入。
许可证 & 参与贡献
MIT,见 [LICENSE](./LICENSE)。欢迎提 Issue 或 PR——尤其欢迎为某个 Skill / MCP server 仓库补上一份 attestload.manifest.json 的参考集成。
推送后建议设置仓库 topics:gh repo edit --add-topic mcp --add-topic coding-agent --add-topic skill --add-topic sbom
Share this
AttestLoad — the attest-before-load gate for coding agents. Sign your Skill / MCP server into a verifiable SBOM, and the agent refuses unsigned code before it loads. Trust stops being star count. https://github.com/SuperMarioYL/attestload
MIT © 2026 SuperMarioYL
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: SuperMarioYL
- Source: SuperMarioYL/attestload
- License: MIT
- Homepage: https://attestload.lei6393.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.