关于 pkgproof
pkgproof 是一个 MCP 服务,用于在安装前检查 npm 和 PyPI 软件包。其 `verify_package` 工具会执行安全与版本检查,并返回附有来源标注理由的判定。
主要功能
- 01检查安全公告和安装脚本
- 02检测拼写仿冒与组合仿冒名称
- 03核对软件包作用域和仓库
- 04审查版本间的变更
- 05返回判定及来源标注理由
适用场景
- 01安装前审查 npm 依赖
- 02使用前检查 PyPI 软件包
- 03核查指定的软件包版本
- 04分流可疑的软件包名称
MCP 相关
向 MCP 客户端提供 `verify_package` 工具,接收软件包名称及可选的版本和生态系统参数,并返回判定与结构化详情。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @pkgproof/mcpPKGPROOF_ALGORAND_PRIVATE_KEY密钥Base64 account key of a throwaway Algorand wallet holding USDC (ASA 31566704) on Algorand Mainnet. Not a 25-word mnemonic. Optional: the first verification each day is free without any key. This is the rail payments prefer.PKGPROOF_BASE_PRIVATE_KEY密钥0x-prefixed private key of a throwaway EVM wallet holding USDC on Base. Optional, and only used when no Algorand key is configured. Needs no ETH: payment is an off-chain signature and the facilitator pays the gas.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 包名称,可带或不带作用域:left-pad、@scope/thing。 |
| version | string | 否 | 要验证的确切版本。不填则验证整个包,而非某个版本。 |
| ecosystem | enum | 否 | 包生态系统。仅支持 npm。npm |
详细介绍
pkgproof-mcp
一个在安装 npm 或 PyPI 包之前对其进行验证的 MCP 服务。
只有一个工具:verify_package。它会针对
pkgproof.net 执行九项检查,涵盖安全公告、安装脚本、
拼写仿冒和组合拼写仿冒名称、作用域和声明的仓库
检查,以及该版本与前序版本的差异,并返回 safe、caution、block 或 does_not_exist,同时将每个原因标记为事实或启发式判断,并注明其来源。
每天的首次验证免费,完全不需要配置。 无需账户、密钥或注册。同一天后续调用每次收费 $0.05,使用 x402 付款,且只有在配置钱包后才会收费。
安装
无需安装或托管任何内容:MCP 客户端会自行运行该服务。需要 Node 22 或更高版本。
从 0.1.1 起的每个版本均由 CI 构建并签名,且附带 npm 来源证明, 将 tarball 与生成它的提交和工作流运行关联起来。用于审查其他包的工具也 应该能以同样的方式进行验证:
npm audit signatures
该服务也已作为 net.pkgproof/pkgproof 列入 MCP Registry。
免费,无需密钥
将以下内容添加到 MCP 客户端配置中即可:
{
"mcpServers": {
"pkgproof": {
"command": "npx",
"args": ["-y", "@pkgproof/mcp"]
}
}
}
Claude Code
该仓库本身就是一个插件市场,因此无需编辑 JSON:
/plugin marketplace add jahija-okan/pkgproof-mcp
/plugin install pkgproof@pkgproof
该插件运行的是已发布的包,并固定为与其一同发布的版本,而不是当天 npx 解析到的任意版本。
Claude Desktop
发布版本在
发布页面提供预构建的 .mcpb 套件。下载并打开即可:Desktop 会安装该服务,并将钱包密钥保存在操作系统的密钥存储中,而非明文配置文件里。
工具
只有 verify_package,没有其他工具。一次调用就是一次验证,因此每日限额在这里的含义与通过 HTTP 调用时相同。
| 参数 | 必填 | 含义 |
|---|---|---|
name | 是 | 包名:left-pad、@scope/thing(npm)、requests(PyPI)。 |
version | 否 | 精确版本。省略时验证整个包,而非某个版本。 |
ecosystem | 否 | npm(默认值)或 pypi。 |
它会以两种形式返回答案:Agent 可读取的摘要,以及服务自身的 JSON,两者一同放在 structuredContent 中,并遵循声明的输出架构,包含判定结果、每条原因及其来源,以及计算判定结果的时间。
调用会逐个执行。服务允许每位付款方同时进行一次验证,并会拒绝第二次调用,因此 Agent 遍历依赖项列表时会在此排队,而不会失败。
两个网络
pkgproof 选择了两条链,每条链使用自己的端点。它们不能互换:所需的密钥格式不同,而且只有其中一条提供免费套餐。
| Algorand Mainnet | Base | |
|---|---|---|
| 端点 | x402-algo.pkgproof.net | x402.pkgproof.net |
| 网络 | algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8= | eip155:8453 |
| 资产 | USDC,ASA 31566704 | USDC,0x8335…2913 |
| 价格 | 每次验证 $0.05 | 每次验证 $0.05 |
| 免费套餐 | 否,每次调用都需要付费 | 是,每位调用者每天可获得一次判定 |
| 密钥变量 | PKGPROOF_ALGORAND_PRIVATE_KEY | PKGPROOF_BASE_PRIVATE_KEY |
| 密钥格式 | base64 账户密钥 | 以 0x 为前缀的 EVM 密钥 |
| 每笔付款的网络费用 | 无,由他人代付 | 无,由他人代付 |
| 一次性设置 | ~0.3 ALGO,并选择加入该资产 | 无,只需发送 USDC |
服务如何选择网络。 免费尝试始终使用 Base,因为只有它会响应未付款的调用。付款优先使用 Algorand,仅当未配置 Algorand 密钥时才回退到 Base。因此,任一链上的钱包都可以使用;即使两者都未配置,每天仍可获得一次判定。
使用钱包付费
警告
请使用一次性钱包充值,切勿使用主钱包。 密钥以纯文本形式存储在 MCP 客户端的配置文件中,该文件未经加密,任何能够读取该文件的对象都可以花费钱包中的资金。只存入你愿意用于包验证的金额,不要多存。本服务刻意不设支出上限,因此钱包自身的余额是唯一限制。
Algorand(首选)
验证不会消耗账户中的 ALGO。 402 指定了费用支付方,因此每笔付款的网络费用都由协调器承担,你的 ALGO 余额不会减少。
{
"mcpServers": {
"pkgproof": {
"command": "npx",
"args": ["-y", "@pkgproof/mcp"],
"env": {
"PKGPROOF_ALGORAND_PRIVATE_KEY": "..."
}
}
}
}
Base
向一次性钱包的地址发送 Base 上的 USDC。你不需要 ETH:付款使用链下签名,Gas 由协调器支付。
{
"mcpServers": {
"pkgproof": {
"command": "npx",
"args": ["-y", "@pkgproof/mcp"],
"env": {
"PKGPROOF_BASE_PRIVATE_KEY": "0x..."
}
}
}
}
服务始终会先尝试免费调用,因此只有当天的免费验证用完后,才会向已配置的钱包收费。
配置
| 变量 | 必需 | 含义 |
|---|---|---|
PKGPROOF_ALGORAND_PRIVATE_KEY | 否 | 持有 Mainnet 上 USDC 的一次性 Algorand 账户,格式为 base64。设置后,付款时优先使用此账户。 |
PKGPROOF_BASE_PRIVATE_KEY | 否 | 持有 Base 上 USDC 的一次性 EVM 钱包,以 0x 为前缀。未设置 Algorand 密钥时使用。 |
如果两者都未设置,服务将仅使用免费套餐,并在当天的验证次数用完时说明这一点。
轻松上手,分步操作
需要 Node 22 或更高版本。请使用一次性账户,正如上文所提醒的那样。
-
生成一个一次性 Algorand 账户。 这会下载一个小型辅助脚本,在你的机器上创建一个新账户:
git clone https://github.com/jahija-okan/pkgproof-x402-algorand cd pkgproof-x402-algorand npm install npx tsx algo-account.ts new脚本只会打印一次
ADDRESS、KEY_B64和MNEMONIC,不会保存任何内容。请将它们妥善保管,例如存入密码管理器。以下所有步骤都使用KEY_B64,不要使用 25 个单词的MNEMONIC。 -
向
ADDRESS发送 0.3 ALGO。 在交易所购买 ALGO,并通过 Algorand 网络提现。新账户余额为空,必须先持有 ALGO 才能进行任何操作。这笔金额用于支付账户最低余额和启用资产的费用,只需支付一次。验证本身不消耗 ALGO。 -
为账户启用 USDC。 Algorand 账户必须先启用某项资产才能接收它,因此,向尚未启用 USDC 的账户发送 USDC,款项将无法到账。以下命令会使用你的密钥为启用操作签名:
ALGOD_URL=https://mainnet-api.algonode.cloud ASSET_ID=31566704 \ ALGO_PRIVATE_KEY=<KEY_B64> npx tsx algo-account.ts optin -
通过 Algorand 网络向
ADDRESS发送 USDC。 从交易所通过 Algorand 网络提现 USDC,而不是通过 Base 或 Ethereum。每次验证费用为 $0.05,因此 $1 可用于 20 次验证。 -
确认两种资产均已到账。 这会从网络读取账户信息,并打印 ALGO 余额和 USDC 余额。
NOT OPTED IN表示第 3 步未成功:ALGOD_URL=https://mainnet-api.algonode.cloud ASSET_ID=31566704 \ npx tsx algo-account.ts balance <ADDRESS> -
将服务添加到 Claude Code。 这会将 pkgproof 注册为 MCP 服务,并将密钥交给它;密钥仅用于在你的机器上为付款签名,不会发送到任何地方。
--scope user会为每个项目安装该服务;如果不使用此选项,Claude Code 只会为当前目录注册该服务:claude mcp add --scope user pkgproof -e PKGPROOF_ALGORAND_PRIVATE_KEY=<KEY_B64> -- npx -y @pkgproof/mcp -
运行验证。 启动
claude并提出请求:check package crossenv with pkgproof。Claude 会调用verify_package工具,并给出带有原因说明的判定结果。
每天的首次验证免费,通过 Base 完成。之后的验证会从 Algorand 账户扣款。
隐私政策
每次验证只发送一个 HTTPS 请求,其中仅包含你查询的软件包名称、版本和生态系统,不包含其他任何内容:没有账户信息、遥测数据或文件内容。钱包密钥仅用于本地签名,绝不会传输。完整文本见 PRIVACY.md。
开发
npm install
npm test # unit tests, and a real client handshake over an in-memory transport
npm run lint # typecheck, formatting, eslint
npm run inspector # build, then the MCP inspector against the local server
任何测试都不会花费资金,而且测试套件会强制确保这一点,而非仅凭信任:尝试访问网络的测试会失败;如果环境中设置了钱包密钥,测试运行将拒绝启动。付款流程会使用虚构的 402 响应和已发布的测试账户进行测试,因此可以在本地为 EIP-3009 授权签名,并在没有钱包的情况下检查载荷和请求头。
链接
- 服务和文档:https://pkgproof.net/docs
- MCP Registry 条目: https://registry.modelcontextprotocol.io/v0/servers?search=pkgproof
- OpenAPI,Base 通道:https://x402.pkgproof.net/openapi.json
- OpenAPI,Algorand 通道:https://x402-algo.pkgproof.net/openapi.json
许可证
Apache-2.0。如果你分发修改后的版本,第 4(b) 条要求标明你修改过的文件:一个沿用此名称的安全工具分支不应被误认为是原版。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。