UNPKG について
UNPKGは、AIエージェント向けにnpmとUNPKGの最新データを提供するリモートMCPサーバーです。パッケージのバージョンやファイルの解決、ブラウザー向け変換の監査、マルウェアやCVEの確認に対応します。
主な機能
- 01バージョンとブラウザー用エントリーポイントの解決
- 02ブラウザー対応状況付きのnpm検索
- 03パッケージファイルの一覧とURL生成
- 04依存関係の監査とインポートマップの検証
- 05マルウェアとCVEの確認
活用シーン
- 01依存関係のバージョンとブラウザー用エントリーの確認
- 02プロジェクトのUNPKG移行評価
- 03インポートマップとファイルURLの検証
- 04依存パッケージのセキュリティ確認
MCP 対応
リモートMCPサーバーとして、npmとUNPKGの検索、監査、セキュリティ確認を行うツール、プロンプト、リソースを提供します。クライアントはURLで接続でき、一部のShieldアカウント用ツールにはOAuthログインが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.unpkg.com/mcpclaude mcp add --transport http unpkg-unpkg https://mcp.unpkg.com/mcp{"mcpServers":{"unpkg-unpkg":{"type":"http","url":"https://mcp.unpkg.com/mcp"}}}Cursor で開く{"servers":{"unpkg-unpkg":{"type":"http","url":"https://mcp.unpkg.com/mcp"}}}VS Code で開く{"mcpServers":{"unpkg-unpkg":{"type":"http","url":"https://mcp.unpkg.com/mcp"}}}{"mcpServers":{"unpkg-unpkg":{"serverUrl":"https://mcp.unpkg.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
unpkg-mcp
UNPKG 用のリモート MCP サーバーです。AI
エージェントに、UNPKG ファイルを直接検索するための、npm および UNPKG の最新データを提供します。
https://unpkg.com/<package>@<version>/<file>。
エージェントは、存在しないバージョン、公開されたことのないファイルパス、ブラウザモジュールとして提供される Node のエントリーポイントなど、npm の詳細を誤って記憶していることがよくあります。このサーバーは、バージョンを解決し、実際のパッケージファイルを一覧表示し、UNPKG への移行に向けたプロジェクトの監査、インポートマップの検証、パッケージのマルウェアおよび CVE のチェックを、すべて最新のデータに基づいて行います。
https://mcp.unpkg.com にデプロイされています(ランディングページは /、MCP エンドポイントは /mcp)。
ツール
| ツール | 目的 |
|---|---|
resolve_package | 正確なバージョン、タグ、または範囲を、実在するバージョンとそのブラウザー用エントリーポイントに解決します |
search_packages | npm を検索し、ブラウザー対応状況の注釈付きで結果を表示します |
list_files | ?meta API を使って、パッケージのバージョンに含まれる実際のファイルを一覧表示します |
build_file_url | バージョンポリシー(preserve、exact、patch、range)を指定して、正規のファイル URL を構築します |
audit_dependencies | package.json の依存関係マップを分類します(convert_now / convert_carefully / keep_bundled / needs_review / not_found)。推奨 URL、インポートマップ、フレームワークの検出結果も提示します。すでに UNPKG から読み込んでいるパッケージは、移行候補とは別に報告されます |
verify_url | UNPKG の URL が解決されることを確認します |
generate_importmap | ベアスペシファイアからインポートマップを生成します |
check_importmap | 解決、ファイルの存在、バージョンの一貫性、フレームワーク管理対象パッケージを含め、インポートマップ全体を検証します |
estimate_migration_impact | 明示された前提に基づき、移行による帯域幅オフロードを範囲で推定します |
shield_check_packages | 正確なパッケージバージョンのマルウェア判定と CVE を確認します。匿名利用の場合は 1 回につき 25 件です。Shield にログインすると上限が 200 件になります |
shield_whoami | (Shield ログイン) 接続中のユーザーのアカウント、組織、利用権限を確認します |
shield_domain_packages | (Shield ログイン) 検証済みドメインで確認されたパッケージを表示します。必要に応じて、トラフィック順に並べたマルウェア判定と CVE の注釈を付けられます |
shield_simulate_request | (Shield ログイン) パッケージのバージョンに対する Shield のピン留め/ブロック判定をプレビューします |
shield_watchlist_status | (Shield ログイン) 監視中のパッケージ、ブロックリスト、ピン留めポリシーを表示します |
パッケージの安全性チェック
サーバーが解決するすべてのパッケージは、Shield のセキュリティデータと照合することもできます。方法は 2 つあります。
- 名前を指定したパッケージ。
shield_check_packagesは、正確な package@version の組み合わせを受け取り、それぞれについて、レビュー状態(確認済みまたは暫定)を含むマルウェア判定、そのバージョンに影響する CVE、およびアップグレード先となる最初の修正版を返します。判定と CVE の照合は指定された正確なバージョンを対象に行われます。異なるバージョンを調べた結果として、安全という判定が返されることはありません。 - 監査内でのチェック。
audit_dependenciesは、解決した各バージョンに同じ判定と CVE データを付加します。そのため、問題があると判定されたパッケージは、変換の推奨事項と並んで監査結果に表示されます。
どちらもアカウントは不要です。名前を指定したパッケージのチェックは匿名で利用でき(1 回につき 25 件)、監査の情報拡張もサインアウトした状態で同様に利用できます。暫定判定は暫定として報告され、悪意が確認されたものとして提示されることはありません。
Shield にログインすると、チェック対象を独自の環境にも広げられます。
shield_domain_packages(脅威を有効にした場合)は、確認済みドメインで観測されたパッケージを、判定と CVE の注釈付きで返します。ドメインごとのトラフィック順に並ぶため、重要度の高いパッケージが先に表示されます。
プロンプトの例:
- 「
[email protected]の読み込みは安全ですか?マルウェアと CVE をチェックして、どのバージョンにアップグレードすればよいか教えてください。」 - 「変換する前に、この監査に含まれるパッケージに既知の侵害や CVE がないか確認してください。」
- (Shield にログイン) 「自分のドメインで CVE またはマルウェア判定があるパッケージを、深刻度の高い順に教えてください。」
Shield ログイン
一般的なツールは匿名で利用できます。ベータ版のウェイトリストから承認された Shield アカウントがあれば、MCP クライアントから OAuth でサインインすることもでき、所属する組織を対象として shield_* アカウントツールを利用できます。
パッケージの安全性チェックにログインは不要です。shield_check_packages は指定したパッケージを匿名でチェックでき、audit_dependencies はログイン状態にかかわらず判定と CVE を含めます。サインインすると、自分のドメイン、ウォッチリスト、エッジシミュレーションが利用できるようになります。
プロンプト、リソース、スキル
- プロンプト:
audit_project_for_unpkg、convert_this_page、find_browser_package。 - リソース:変換プレイブックとバージョン指定ポリシー(
unpkg://guidance/…)。GET /playbook.mdでも提供されます。 - スキル:
skill/unpkg/SKILL.mdは、MCP を使わないエージェントにも同じガイダンスを提供します。
クライアントを接続する
クライアントは URL で接続します。クライアントごとの設定は
examples/clients.md と、ランディングページのセレクター(https://mcp.unpkg.com/)にあります。
Claude Code:
claude mcp add --transport http unpkg https://mcp.unpkg.com/mcp
MCP を使わないエージェントの場合は、skill/unpkg/ をクライアントのスキルディレクトリにコピーしてください。プロジェクト単位では、examples/AGENTS.snippet.md の内容をプロジェクトの AGENTS.md に貼り付けることもできます。
試してみる
エージェントを接続したら、次のようなプロンプトを試してください。
- 「UNPKG MCP を使って
react@^18を解決してください。解決されたバージョンとブラウザーのエントリーポイントは何ですか?次に、存在しないreactのバージョンを試してください。」 - 「
[email protected]/distのファイルを一覧表示し、モジュールファイルのパッチポリシー URL を作成して、それが解決されることを確認してください。」 - 「このプロジェクトの UNPKG への変換を監査してください。」
- 「UNPKG MCP を使ってこのインポートマップをチェックしてください:…」(マップを貼り付けてください)
- 「
[email protected]の読み込みは安全ですか?マルウェアと CVE をチェックして、どのバージョンにアップグレードすればよいか教えてください。」 - 「監査に基づいて、月間 100 万ページビュー、料金が $0.09/GB のサイトでの移行の影響を見積もってください。」
サーバーは検証できる内容を報告し、検証できない内容については回答を控えます。インポートマップはシステム全体として検証され、監査ではフレームワークが管理するパッケージがバンドルされたまま扱われ、見積もりは単一の数値ではなく、前提条件を添えた範囲で提示されます。
MCP レジストリ
このリポジトリの server.json は、名前空間 io.github.unpkg/unpkg-mcp の公式
MCP レジストリに登録するためのマニフェストです。
公開手順(メンテナー向け):MCP レジストリプロジェクトから
mcp-publisher CLI をインストールし、このリポジトリで次を実行します。
mcp-publisher login github
mcp-publisher publish
注:組織の名前空間には、オーナーレベルの GitHub 認証情報が必要です。対話型のデバイスフローで取得できるのは、個人用の名前空間だけです。read:org スコープを持つクラシック PAT を使用してください(MCP レジストリの認証ドキュメントを参照)。使用後は失効させてください。
リリース
このサーバーはリモートエンドポイントなので、ほとんどの配布先は自動で更新されます。接続中のクライアントには Worker のデプロイ後すぐに新しいツールが表示され、Glama はこのリポジトリとエンドポイントを再クロールし、skills.sh は GitHub からスキルを配信します。一方、ディレクトリの掲載情報(awesome リスト、mcp.so)は静的なエントリーで、URL または説明が変更された場合にのみ更新されます。
バージョンをリリースする場合:
- バージョンが記載されている箇所をすべて更新し、すべて同じ値にします:
package.json、src/version.ts、server.json、plugin/.claude-plugin/plugin.json、plugin/plugin.json、plugin/.codex-plugin/plugin.json、および.claude-plugin/marketplace.jsonのプラグインエントリーです。(これらの 値に不一致があると、テストは失敗します。) - Worker をデプロイします(
wrangler deploy)。 - GitHub でリリースにタグを付けます(
vX.Y.Z、リリースノート付き)。 - レジストリのマニフェストを再公開します:
mcp-publisher publish。 下流のディレクトリ(PulseMCP、Smithery など)は公式 MCP レジストリから取り込むため、これがそれらを更新する手順です。 - プラグインを変更した場合は、Claude 開発者ポータルで新しいプラグインバージョンを公開します。マーケットプレイスのユーザーは
claude plugin marketplace updateで取得できます。
Claude プラグイン
このリポジトリは Claude Code プラグイン(独自のプラグインマーケットプレイスも含む)でもあります。
プラグインは plugin/ にあり、上記の MCP サーバーと
unpkg スキルが同梱されているため、1 回のインストールで Claude Code に次の両方が追加されます:
claude plugin marketplace add unpkg/unpkg-mcp
claude plugin install unpkg@unpkg
プラグインの接続先は、デフォルトで匿名利用できる同じサーバー https://mcp.unpkg.com/mcp です。Shield ツールは、使用時にのみサインインします。
ローカルで実行する
pnpm install
pnpm dev # HTTP Worker on http://localhost:8787
- ランディングページ: http://localhost:8787/
- ヘルスチェック: http://localhost:8787/health
- MCP エンドポイント: http://localhost:8787/mcp
- サーバーカード: http://localhost:8787/.well-known/mcp.json
ローカルのクライアントを設定する場合は、上記と同じ設定を使用し、本番 URL の代わりに
http://localhost:8787/mcp を指定してください。
開発
pnpm test # unit, golden-project, and MCP protocol tests
pnpm typecheck # tsc --noEmit
pnpm build # wrangler deploy --dry-run (production bundle check)
構成:src/clients/(npm、UNPKG、Shield API のクライアント)、
src/domain/(監査、import-map のチェック、推定、ガイダンス)、
src/server.ts(MCP の配線)。ゴールデンプロジェクトは
test/fixtures/projects/ にあり、監査の分類動作を固定します。
環境変数(wrangler.jsonc の vars):UNPKG_ORIGIN、NPM_REGISTRY、
SHIELD_API_ORIGIN、OAUTH_ISSUER、OAUTH_RESOURCE、OAUTH_ENABLED。
影響の推定
audit_dependencies はエントリーファイルのバイト数合計を報告します。
estimate_migration_impact は、それらの値とトラフィック量をもとに
帯域幅オフロードの範囲を算出します($/GB の料金が指定されている場合は、金額の範囲も算出します)。レイテンシは予測しません。サイトがすでに高性能な CDN から配信されている場合、レイテンシは通常変わらず、実用上のメリットはバンドルサイズ、キャッシュ可能性、パッチ適用済みバージョンがユーザーに届くまでの速さです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。