mcpField
P
pinright

pinright

ローカル
pinright.dev開発ツール31 日前に更新

pinright について

pinrightは、使用中のライブラリの正確なバージョンに対応するドキュメントをコーディングエージェントに提供し、依存関係の安全性とポリシーを確認します。ローカルMCPサーバー、インストール前フック、CLI、GitHub Actionで、選定から監査までを扱います。

主な機能

  1. 01バージョン別のパッケージドキュメント
  2. 02依存関係のアドバイザリとポリシー確認
  3. 03対応クライアントでのインストール前チェック
  4. 04SARIF対応の全マニフェスト監査
  5. 05GitHub 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

ツール

6

掲載時のツール一覧 · 1 日前に更新

パラメーター型必須説明
querystringはいWhat you want to do with it; also used to guess the language.
ecosystemstringいいえnpm, pypi, cargo, go, maven, nuget, rubygems or composer, when you know it.
libraryNamestringはいLibrary name, e.g. "next.js", "requests", "tokio".

詳細

pinright:コーディングエージェント向けの、バージョンに正確なドキュメントと依存関係チェック。npm install lodash@4.17.20 に対するフックの回答:pinright はこの依存関係の変更をブロックしました。lodash 4.17.20 には既知のアドバイザリが5件あります。4.x 系のリリース 4.18.1 を使用してください。

pinright

コーディングエージェント向けの、バージョンに正確なドキュメントと依存関係チェックです。 エージェントはライブラリのバージョンを2つの場所のいずれかから取得します。ベンチマークでは、エージェントが記憶から書いたバージョン指定の約40%に既知のアドバイザリが含まれていました。または、ドキュメントを返すものの、バージョンとアドバイザリを照合しないドキュメント MCP サーバーです。pinright は、インストールする正確なバージョンのドキュメントと、追加するすべての依存関係に対する判定を、インストールの実行前に提供します。MCP サーバー、インストール前フック、CLI、GitHub Action のすべてをローカルで実行できます。

npm CI License: MIT Install in Cursor Install in VS Code

インストール

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.90.3 to 3.50.3
現行 API を使用したドキュメントタスク16 件中 9 to 14 件16 件中 15 or 16 件16 件中 16 件
エージェントタスクあたりのトークン数15k to 21k56k to 94k42k to 74k
ドキュメントタスクあたりのトークン数17k to 23k94k to 135k63k to 95k
エージェントタスクあたりのエージェントのターン数4.0 to 4.39.3 to 11.15.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-packages1 回の呼び出しで最大 50 個のパッケージを判定します。固定するバージョン、簡潔な理由、必要な場合のみ詳細な通知を提示します
check-package1 つのパッケージを詳しく確認します。CVE と修正方法を含む勧告、非推奨、ライセンス、類似名、ポリシー違反を確認できます
get-docs指定したバージョンまたはインストール済みバージョンについて、公開パッケージおよびリリースタグ時点のリポジトリからドキュメントを取得します
find-libraryライブラリ名からレジストリのパッケージを検索します(next.js から npm:next など)。安全なバージョンも提示します
upgrade-guide2 つのバージョン間の変更点を提示します。破壊的変更、名称変更された 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。参加者全員が 行動規範 を遵守します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。