Skip to main content
Glama

npm-mcp

npm-mcp は、公開 npm レジストリ向けの小さな読み取り専用の Model Context Protocol サーバーです。MCP 互換の AI クライアントが npm パッケージを発見し、インストール、公開、ログイン、シェル、ファイルシステム、または任意のフェッチ機能を公開することなく、厳選されたパッケージメタデータを検査できるようにします。

Docker で始める

新規チェックアウトからサーバーと MCP Inspector を起動するには、Docker クイックスタート を参照してください。基本的なコマンドは次のとおりです。

docker compose --profile inspector up --build -d

モデルをローカルで実行せずにモデル駆動の MCP ツール使用をテストするには、LibreChat を OpenRouter の無料モデルルーターとともに使用します:

docker compose -f compose.yaml -f compose.openrouter.yaml --profile openrouter up --build -d

次に、http://127.0.0.1:3080 を開きます。無料モデルであっても OpenRouter API キーが必要です。セットアップと使用方法については OPENROUTER_QUICKSTART.md を参照してください。完全にローカルな代替手段として、ローカル Ollama プロファイル も引き続き利用できます。

Related MCP server: @kongyo2/npm-info-mcp-server

ツール

ツール

使用場面

入力

npm_search_packages

正確なパッケージ名が不明な場合、または代替案が必要な場合

query、オプションの limit(デフォルト10、最大50)

npm_get_package

正確なパッケージ名が既知で、メタデータや依存関係が必要な場合

packageName

npm_get_latest_version

現在の latest dist-tag のみが必要な場合

packageName

npm_get_versions

公開済みのバージョンとすべての dist-tag が必要な場合

packageName

すべてのツールは、幅広いクライアント互換性のために JSON をテキストとして返し、同じ値を MCP 構造化コンテンツとして公開します。パッケージ応答は、レジストリの完全なメタデータドキュメントを返すのではなく、意図的にフィルタリングされます。

要件とインストール

  • Node.js 20 以上(ネイティブの fetch と AbortSignal.timeout 用)

  • npm

git clone <repository-url>
cd npm-mcp
npm install

ローカルでの実行

npm start

プロセスは stdin で MCP メッセージを待機し、プロトコル応答を stdout に書き込みます。対話的に入力しないでください。MCP クライアントが起動する必要があります。開発ウォッチモードは npm run dev で利用できます。

デプロイ

ローカルクライアントの場合は、stdio エントリポイントを使用してください。Docker およびクラウドデプロイの場合は、/mcp にあるステートレスな Streamable HTTP エントリポイントを使用します。これはデフォルトでベアラートークンを必要とし、ヘルスプローブ用に /healthz を公開します。Docker Compose と、Google Cloud Run、Azure Container Apps、AWS App Runner/ECS Fargate、Kubernetes へのデプロイ手順については、Docker およびクラウドデプロイガイド を参照してください。

Compose ファイルには、公式の MCP Inspector がオプションのクライアントとして含まれています。docker compose --profile inspector up --build -d を実行し、http://127.0.0.1:6274 を開いてください。トークンの設定と CLI の使用法については、Docker で MCP クライアントを実行する を参照してください。

テスト

npm test

テストは Node 組み込みのテストランナーとモック化された fetch 応答を使用するため、ライブの npm レジストリは必要ありません。

MCP Inspector でサーバーを対話的に検査するには:

npx @modelcontextprotocol/inspector node src/index.js

Inspector が表示した URL を開き、接続して、ツール を選択し、ツールを選んで引数を入力し、実行してください。

MCP クライアント設定

クライアントが任意の作業ディレクトリからサーバーを起動できるように、絶対パスを使用してください:

{
  "mcpServers": {
    "npm": {
      "command": "node",
      "args": ["/absolute/path/to/npm-mcp/src/index.js"]
    }
  }
}

外側の設定キーの正確な名前は MCP クライアントによって異なる場合がありますが、コマンドと引数は同じです。

呼び出し例

{"name":"npm_search_packages","arguments":{"query":"postgres orm","limit":10}}
{"name":"npm_get_package","arguments":{"packageName":"@nestjs/core"}}
{"name":"npm_get_latest_version","arguments":{"packageName":"react"}}
{"name":"npm_get_versions","arguments":{"packageName":"axios"}}

アーキテクチャ

  • src/index.js は stdio の起動のみを担当します。

  • src/http.js と src/http-server.js は、コンテナで使用される認証付き Streamable HTTP エントリポイントを提供します。

  • src/server.js は MCP サーバーを作成し、4 つのツールを登録します。

  • src/tools/ には、スキーマ、焦点を絞った応答整形、およびハンドラーが含まれています。

  • src/services/npm-registry.js は npm と通信する唯一のモジュールです。パッケージ名を検証し、URL を公式レジストリのエンドポイントに制限し、タイムアウトを適用し、ネットワーク/HTTP/応答エラーを正規化します。

スコープ付き名前は、単一のレジストリパスセグメントとしてエンコードされます。サーバーはステートレスであり、書き込みは行いません。

今後の改善

今後追加される可能性があるものには、ダウンロード統計、依存関係分析、パッケージのセキュリティ情報、キャッシュ、OAuth ベースのリモート認証が含まれます。

Related MCP Connectors

Related MCP Servers