mcpField
P
pinright

pinright

本地服务
pinright.dev其他31 天前更新

关于 pinright

pinright 为编码 Agent 提供对应准确库版本的文档,并检查依赖的安全与策略问题。其本地 MCP 服务、安装前钩子、CLI 和 GitHub Action 覆盖依赖选择、安装及清单审计。

主要功能

  1. 01按版本提供软件包文档
  2. 02检查依赖公告与策略规则
  3. 03在支持的客户端中安装前检查
  4. 04生成带 SARIF 的全清单审计
  5. 05通过 GitHub Action 执行 CI 审计
  6. 06提供软件包升级指引

适用场景

  1. 01安装前检查软件包
  2. 02查找项目已安装版本的文档
  3. 03审计锁文件并识别升级项
  4. 04了解版本升级的破坏性变更

MCP 相关

本地 MCP 服务提供依赖检查、版本对应文档、库查找、升级指引和清单审计工具。`check-manifest` 能力也支持 GitHub Action。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"hiper-ai-pinright": {
"command": "npx",
"args": [
"-y",
"pinright"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"PINRIGHT_GH_CLI": "<PINRIGHT_GH_CLI>"
}
}
}
}
启动命令npx -y pinright
需要配置的环境变量
GITHUB_TOKEN密钥Optional. Raises the GitHub API limit from 60 to 5,000 requests an hour (monorepo docs, upgrade guides). Read-only use.
PINRIGHT_GH_CLIOptional. 1 uses the GitHub CLI login (gh auth token) when GITHUB_TOKEN is not set.

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

安装包
npmpinright1.0.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

pinright:适用于编码 Agent 的精确版本文档和依赖检查。对于 npm install lodash@4.17.20,钩子的回复是:pinright 已阻止此依赖项变更;lodash 4.17.20 有 5 个已知安全公告;请使用 4.x 发布版本 4.18.1。

pinright

适用于编码 Agent 的精确版本文档和依赖检查。 Agent 获取库版本的途径有两种:其记忆中保存的信息——在我们的基准测试中,它写入的版本锁定中约有 40% 存在已知安全公告;或者文档 MCP 服务,它会返回文档,但不会检查版本是否存在安全公告。pinright 为它提供所安装确切版本的文档,并在安装运行前对每个新增依赖项给出判定。MCP 服务、安装前钩子、CLI 和 GitHub Action,全部在本地运行。

npm CI License: MIT 在 Cursor 中安装 在 VS Code 中安装

安装

需要 Node 20.9 或更高版本。一行命令,然后重启 Agent:

npm i -g pinright && pinright init --user   # just you, every project; the hook starts in about 0.2 s
npx -y pinright init                        # your team: writes project files you commit

init 会配置 MCP 服务、客户端支持时可用的安装前钩子,以及一个初始 .pinright.json。共支持 16 个客户端;其中 6 个有钩子:Claude Code、Cursor、VS Code(GitHub Copilot)、OpenAI Codex、Gemini CLI 和 Windsurf。上方的 Cursor 和 VS Code 按钮只会添加 MCP 服务。查看所有客户端、作用范围和 pinright doctor。

不使用 pinright 与使用 pinright

不使用。 Agent 运行 npm install [email protected]。安装成功。现在锁文件中带有 5 个安全公告,其中 2 个为高危,却无人知晓。

使用。 命令运行前,钩子会作出响应,Agent 会看到:

pinright blocked this dependency change:
- [email protected] (npm) has 5 known advisories (CVE-2021-23337, CVE-2026-4800, CVE-2020-28500, HIGH). Use 4.x release 4.18.1: npm install [email protected]
Change the version (or the name) and try again. check-package and get-docs from the pinright MCP server explain each case.

Agent 会在同一发布系列中重试,改用 4.18.1。如果先询问,check-package 和 get-docs 会给出相同的判定,其中包含完整的安全公告列表、建议锁定的版本,以及该版本的文档。以下为 2026-11-01 运行 pinright hook claude 的实际输出。

为什么选择 pinright

文档类 MCP 服务会返回库的文档,但不会检查 Agent 固定的版本,也看不到安装情况。为了衡量这类服务,我们关闭安全层后运行了 pinright 自己的服务(PINRIGHT_ABLATION=docs-only):返回所请求版本的文档,不提供判定。它不是另一个产品。使用 Claude Code 和 Sonnet 5.5、Haiku 5.5、Opus 5.5,每个单元格运行 2 次,基于 1.0.0 代码;每个单元格给出三个模型的范围。

无文档仅文档上下文服务pinright
已知存在安全公告的直接依赖40% 至 42%0% 至 2%0%
每个项目的全树警报数(npm audit、pip-audit)29.8 至 31.90.3 至 3.50.3
使用当前 API 的文档任务16 项中 9 至 14 项16 项中 15 或 16 项16 项
每个 Agent 任务的 Token 数15k 至 21k56k 至 94k42k 至 74k
每个文档任务的 Token 数17k 至 23k94k 至 135k63k 至 95k
每个 Agent 任务的 Agent 轮数4.0 至 4.39.3 至 11.15.9 至 7.5
每个 Agent 任务读取的 MCP 工具文本无25k 至 45k 个字符5k 至 17k 个字符
对 Agent 固定版本的判定无无安全公告、恶意软件、仿冒包、不存在的版本
安装运行时检查无无在 6 个客户端中使用安装前钩子
全树锁文件审计无无check-manifest、SARIF、GitHub Action

仅提供当前文档就消除了大部分警报;判定则消除了其余警报。按模型分别计算,在 12 项 Agent 任务中,pinright 比仅文档服务少用 21% 至 26% 的 Token;在 8 项文档任务中少用 26% 至 33%。所有配对区间都高于零;最低下界为 2%。Token 数统计模型处理的全部内容,包括缓存读取。不使用任何工具的成本低于两者。

Token 更少的原因。 仅提供文档时,Agent 会通过文档查询版本:每个 Agent 任务中,它在写入文件前会对每个包调用一次 get-docs,共 5.2 至 5.7 次。87% 的调用未指定版本,因此返回的是最新版本的文档;75% 的查询中询问了“版本”或“最新”。使用 pinright 时,每次 Agent 任务运行都会先对整个列表调用 check-packages,获得约 600 个字符的判定和待固定版本;之后每项任务调用 get-docs 0.7 至 1.7 次,其中 87 次调用有 86 次指定了版本。

局限。 剩下的 0.3 是 nuxt;它的当前版本会引入尚无修复版本的包。不指定版本安装也会得到同样的 0.3,而且仅文档服务与 pinright 的警报区间有重叠。数据来自一家供应商的模型、我们编写的任务、未启用 Shell,以及两天的安全公告数据,样本量较小。在第二轮启用 Shell 的测试中,Agent 会先通过 npm view 或 pip index 查询版本再固定,因此每种方案最终都达到每个模型 6 个警报:在这种情况下,pinright 对固定版本没有可测量的影响。对于 2026 年 8 月之后发布的 API,不提供文档时 48 次运行中有 2 次使用了当前 API;仅文档时为 45 次,pinright 为 46 次。在从公开 GitHub issue 中选取的 12 项任务中,不提供文档时 25% 至 29% 的直接固定版本带有安全公告,使用 pinright 时则没有。该钩子在 25,077 条公开命令中拦截或询问了 1.46%,并误读了我们一个月 Agent 会话中的 154,402 次工具调用中的 10 次。 各模型数据表 · 结果与注意事项 · 技术报告 · 复现测试

询问你的 Agent

  • “添加 zod,并固定一个没有已知安全公告的版本。”
  • “显示这个项目已安装版本的 next 文档。”
  • “审计 package-lock.json,并告诉我需要升级哪些包,同时保持在相同的发布系列中。”
  • “在我迁移之前,express 4 和 5 之间有哪些变化?”

工具

工具功能
check-packages一次调用可检查最多 50 个软件包:应固定的版本、简短原因,以及仅在需要时提供的完整通知
check-package深入检查单个软件包:包含 CVE 和修复方案的安全公告、弃用情况、许可证、名称相似的软件包、策略违规
get-docs获取已发布软件包及其仓库在发布标签处的文档,适用于指定版本或已安装的版本
find-library将库名称映射到注册表软件包(next.js 映射到 npm:next),并给出安全版本
upgrade-guide说明两个版本之间的变化:重大变更、重命名的 API,以及此次升级可修复的安全公告
check-manifest审计整个锁文件或清单树,并生成 SARIF;GitHub Action 会在 CI 中运行此检查

支持的生态系统:npm、PyPI、Cargo、Go、Maven 和 Gradle、NuGet、RubyGems、Composer、GitHub Actions。 如果数据源未返回结果,判定结果绝不会显示为 ok。提交到仓库的 .pinright.json 可设置允许和 拒绝列表、许可证规则、严重性阈值,以及数据源不可用时的处理方式。 工作原理 · 钩子 · 团队策略 · CLI · GitHub Action

隐私与限制

无需账户,不收集遥测数据。pinright 会将软件包名称和版本发送到 deps.dev、OSV、各注册表、jsDelivr 和 GitHub,绝不会发送你的代码; SECURITY.md 列出了每个主机。钩子会静态读取命令和文件:它是防护措施,不是沙箱; 威胁模型 列出了哪些内容可能绕过它。如果数据源不可用,内置默认设置会允许安装通过; 入门策略则会改为询问。

更多信息

安装 · 提示词注入 · 基准测试 · 安全审查 · 更新日志 · 贡献指南 · 发布操作手册

我们最看重的报告是误报:钩子拦截了本应放行的命令,或标记了本应通过的软件包。请使用模板新建 issue,并粘贴命令及 npx pinright doctor --json 的输出。如需报告 pinright 中的漏洞,请按照 SECURITY.md 中的说明私下提交。

MIT。由 Hiper AI 构建([email protected])。 网站:pinright.dev。所有参与者均须遵守 行为准则。

评论

支持 Markdown

第一次接触 MCP?

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

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