pinright について
pinrightは、使用中のライブラリの正確なバージョンに対応するドキュメントをコーディングエージェントに提供し、依存関係の安全性とポリシーを確認します。ローカルMCPサーバー、インストール前フック、CLI、GitHub Actionで、選定から監査までを扱います。
主な機能
- 01バージョン別のパッケージドキュメント
- 02依存関係のアドバイザリとポリシー確認
- 03対応クライアントでのインストール前チェック
- 04SARIF対応の全マニフェスト監査
- 05GitHub ActionによるCI監査
- 06パッケージのアップグレードガイド
活用シーン
- 01インストール前にパッケージを確認
- 02プロジェクトで使用中の版のドキュメントを検索
- 03ロックファイルを監査して更新候補を特定
- 04リリース間の破壊的変更を確認
MCP 対応
ローカルMCPサーバーは、パッケージ確認、バージョン別ドキュメント、ライブラリ検索、アップグレード案内、マニフェスト監査のツールを提供します。`check-manifest`機能はGitHub Actionでも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y pinrightGITHUB_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
6掲載時のツール一覧 · 1 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | What you want to do with it; also used to guess the language. |
| ecosystem | string | いいえ | npm, pypi, cargo, go, maven, nuget, rubygems or composer, when you know it. |
| libraryName | string | はい | Library name, e.g. "next.js", "requests", "tokio". |
詳細
pinright
コーディングエージェント向けの、バージョンに正確なドキュメントと依存関係チェックです。 エージェントはライブラリのバージョンを2つの場所のいずれかから取得します。ベンチマークでは、エージェントが記憶から書いたバージョン指定の約40%に既知のアドバイザリが含まれていました。または、ドキュメントを返すものの、バージョンとアドバイザリを照合しないドキュメント MCP サーバーです。pinright は、インストールする正確なバージョンのドキュメントと、追加するすべての依存関係に対する判定を、インストールの実行前に提供します。MCP サーバー、インストール前フック、CLI、GitHub Action のすべてをローカルで実行できます。
インストール
Node 20.9 以降が必要です。1行実行してから、エージェントを再起動します。
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 がない場合とある場合
ない場合。 エージェントは npm install [email protected] を実行します。インストールされます。ロックファイルには
5件のアドバイザリが記録され、そのうち2件は深刻度が高いものですが、誰にも通知されません。
ある場合。 コマンドの実行前にフックが応答し、エージェントは次の内容を読み取ります。
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.
エージェントは同じリリース系列の 4.18.1 で再試行します。先に確認する場合、check-package と get-docs は、アドバイザリの全リスト、指定すべきバージョン、そのバージョンのドキュメントとともに、同じ判定を返します。2026-11-01 の pinright hook claude の実際の出力です。
pinright を選ぶ理由
ドキュメント MCP サーバーは、ライブラリのドキュメントを返します。エージェントが固定するバージョンを確認せず、インストールの状況も把握しません。この種のサーバーを評価するため、pinright 自身のサーバーをセキュリティ層を無効にして実行しました(PINRIGHT_ABLATION=docs-only)。指定されたバージョンのドキュメントは返しますが、判定は行いません。これは別の製品ではありません。Claude Code と Sonnet 5.5、Haiku 5.5、Opus 5.5 を使い、1.0.0 のコードで各セルにつき 2 回実行しました。各セルには 3 つのモデルの範囲を示しています。
| ドキュメントなし | ドキュメントのみのコンテキストサーバー | pinright | |
|---|---|---|---|
| 既知のアドバイザリがある固定済み直接依存関係 | 40% to 42% | 0% to 2% | 0% |
プロジェクトあたりのツリー全体のアラート(npm audit、pip-audit) | 29.8 to 31.9 | 0.3 to 3.5 | 0.3 |
| 現行 API を使用したドキュメントタスク | 16 件中 9 to 14 件 | 16 件中 15 or 16 件 | 16 件中 16 件 |
| エージェントタスクあたりのトークン数 | 15k to 21k | 56k to 94k | 42k to 74k |
| ドキュメントタスクあたりのトークン数 | 17k to 23k | 94k to 135k | 63k to 95k |
| エージェントタスクあたりのエージェントのターン数 | 4.0 to 4.3 | 9.3 to 11.1 | 5.9 to 7.5 |
| エージェントタスクあたりに読み取られた MCP ツールのテキスト | なし | 25k to 45k 文字 | 5k to 17k 文字 |
| エージェントが固定したバージョンに対する判定 | なし | なし | アドバイザリ、マルウェア、類似パッケージ、存在しないバージョン |
| インストール実行時のチェック | なし | なし | 6 クライアントのプリインストールフック |
| ツリー全体のロックファイル監査 | なし | なし | check-manifest、SARIF、GitHub Action |
現行のドキュメントだけでアラートの大半がなくなり、判定によって残りもなくなりました。モデルごとに見ると、12 件のエージェントタスクでは pinright のトークン数はドキュメントのみのサーバーより 21% to 26% 少なく、8 件のドキュメントタスクでは 26% to 33% 少なくなりました。ペアごとの区間はすべてゼロを上回り、最小の下限は 2% です。トークン数には、キャッシュからの読み取りを含め、モデルが処理したすべてが含まれます。ツールを一切使わないほうが、どちらよりもコストは低くなります。
トークン数が少ない理由。 ドキュメントのみの場合、エージェントはドキュメントを通じてバージョンを調べていました。ファイルを書き込む前に、パッケージごとに get-docs を 1 回呼び出し、エージェントタスクあたり 5.2 to 5.7 回呼び出していました。そのうち 87% の呼び出しではバージョンが指定されていなかったため、最新リリースのドキュメントが返され、75% ではクエリに「version」または「latest」が含まれていました。pinright では、エージェントタスクの各実行がパッケージのリスト全体に対する check-packages で始まり、約 600 文字の判定と固定すべきバージョンが返されました。その後、タスクあたり 0.7 to 1.7 回 get-docs を呼び出し、そのうち 87 回中 86 回でバージョンが指定されていました。
制限事項。 残った 0.3 は nuxt によるもので、現行リリースが修正の公開されていないパッケージを取り込みます。バージョンを指定せずにインストールしても同じ 0.3 となり、ドキュメントのみの場合と pinright のアラート区間は重なっています。単一ベンダーのモデル、作成したタスク、シェルなし、2 日分のアドバイザリデータ、少ないサンプル数です。シェルを使った 2 回目の実行では、エージェントは固定する前に npm view または pip index でバージョンを調べ、どの条件でもモデルごとに同じ 6 件のアラートとなりました。この場合、pinright による固定への測定可能な差はありませんでした。2026 年 8 月以降にリリースされた API では、ドキュメントなしで現行 API を使えたのは 48 回中 2 回、ドキュメントのみでは 48 回中 45 回、pinright では 48 回中 46 回でした。公開 GitHub issue から選んだ 12 件のタスクでは、ドキュメントなしの場合、直接依存関係の固定の 25% to 29% にアドバイザリが含まれていましたが、pinright では 0 件でした。フックは公開コマンド 25,077 件のうち 1.46% をブロックまたは確認し、1 か月分の自社エージェントセッションのツール呼び出し 154,402 件のうち 10 件を誤って読み取りました。
モデル別の表 ·
結果と注意事項 ·
技術レポート ·
再現する
エージェントに依頼する
- 「zod を追加して、既知のアドバイザリがないバージョンに固定してください。」
- 「このプロジェクトにインストールされている next のバージョンのドキュメントを表示してください。」
- 「package-lock.json を監査して、同じリリース系列のまま何をアップグレードすべきか教えてください。」
- 「移行する前に、express 4 と 5 の間で何が変わったか教えてください。」
ツール
| ツール | 機能 |
|---|---|
check-packages | 1 回の呼び出しで最大 50 個のパッケージを判定します。固定するバージョン、簡潔な理由、必要な場合のみ詳細な通知を提示します |
check-package | 1 つのパッケージを詳しく確認します。CVE と修正方法を含む勧告、非推奨、ライセンス、類似名、ポリシー違反を確認できます |
get-docs | 指定したバージョンまたはインストール済みバージョンについて、公開パッケージおよびリリースタグ時点のリポジトリからドキュメントを取得します |
find-library | ライブラリ名からレジストリのパッケージを検索します(next.js から npm:next など)。安全なバージョンも提示します |
upgrade-guide | 2 つのバージョン間の変更点を提示します。破壊的変更、名称変更された 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。([email protected]) の Hiper AI が開発しています。 サイト:pinright.dev。参加者全員が 行動規範 を遵守します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。