mcpField
P
pkgproof

pkgproof

本地服务
pkgproof.net安全02 周前更新

关于 pkgproof

pkgproof 是一个 MCP 服务,用于在安装前检查 npm 和 PyPI 软件包。其 `verify_package` 工具会执行安全与版本检查,并返回附有来源标注理由的判定。

主要功能

  1. 01检查安全公告和安装脚本
  2. 02检测拼写仿冒与组合仿冒名称
  3. 03核对软件包作用域和仓库
  4. 04审查版本间的变更
  5. 05返回判定及来源标注理由

适用场景

  1. 01安装前审查 npm 依赖
  2. 02使用前检查 PyPI 软件包
  3. 03核查指定的软件包版本
  4. 04分流可疑的软件包名称

MCP 相关

向 MCP 客户端提供 `verify_package` 工具,接收软件包名称及可选的版本和生态系统参数,并返回判定与结构化详情。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"net-pkgproof-pkgproof": {
"command": "npx",
"args": [
"-y",
"@pkgproof/mcp"
],
"env": {
"PKGPROOF_ALGORAND_PRIVATE_KEY": "<PKGPROOF_ALGORAND_PRIVATE_KEY>",
"PKGPROOF_BASE_PRIVATE_KEY": "<PKGPROOF_BASE_PRIVATE_KEY>"
}
}
}
}
启动命令npx -y @pkgproof/mcp
需要配置的环境变量
PKGPROOF_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@pkgproof/mcp0.2.1

工具

1

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

参数类型必填说明
namestring是包名称,可带或不带作用域:left-pad、@scope/thing。
versionstring否要验证的确切版本。不填则验证整个包,而非某个版本。
ecosystemenum否包生态系统。仅支持 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 MainnetBase
端点x402-algo.pkgproof.netx402.pkgproof.net
网络algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=eip155:8453
资产USDC,ASA 31566704USDC,0x8335…2913
价格每次验证 $0.05每次验证 $0.05
免费套餐否,每次调用都需要付费是,每位调用者每天可获得一次判定
密钥变量PKGPROOF_ALGORAND_PRIVATE_KEYPKGPROOF_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 或更高版本。请使用一次性账户,正如上文所提醒的那样。

  1. 生成一个一次性 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。

  2. 向 ADDRESS 发送 0.3 ALGO。 在交易所购买 ALGO,并通过 Algorand 网络提现。新账户余额为空,必须先持有 ALGO 才能进行任何操作。这笔金额用于支付账户最低余额和启用资产的费用,只需支付一次。验证本身不消耗 ALGO。

  3. 为账户启用 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
    
  4. 通过 Algorand 网络向 ADDRESS 发送 USDC。 从交易所通过 Algorand 网络提现 USDC,而不是通过 Base 或 Ethereum。每次验证费用为 $0.05,因此 $1 可用于 20 次验证。

  5. 确认两种资产均已到账。 这会从网络读取账户信息,并打印 ALGO 余额和 USDC 余额。NOT OPTED IN 表示第 3 步未成功:

    ALGOD_URL=https://mainnet-api.algonode.cloud ASSET_ID=31566704 \
    npx tsx algo-account.ts balance <ADDRESS>
    
  6. 将服务添加到 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
    
  7. 运行验证。 启动 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 授权签名,并在没有钱包的情况下检查载荷和请求头。

链接

许可证

Apache-2.0。如果你分发修改后的版本,第 4(b) 条要求标明你修改过的文件:一个沿用此名称的安全工具分支不应被误认为是原版。

评论

支持 Markdown

第一次接触 MCP?

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

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