📦 NPM ヘルパー - AI アシスタントの npm パッケージ管理を支援するツール。🤖 
NPM依存関係管理のためのモデルコンテキストプロトコルサーバー。このサーバーは、NPMパッケージ検索ツールとnpmパッケージ更新ツールを提供し、プロジェクトの依存関係を最新の状態に保ち、競合や煩わしさなく、互換性のある最新バージョンに更新します。
プロジェクトのpackage.jsonを安全にアップグレードするために、アシスタントは「peer」パラメータをtrueに設定してupgradePackagetsツールを呼び出すことができます。これにより、すべての依存関係が最新バージョンに更新されるとは限りませんが、エラーなく、互換性のある最新バージョンに安全にアップグレードされます。
すべての依存関係を完全にアップグレードしたい場合は、アシスタントに多くのツールとパラメータが用意されており、安全に利用できます。パラメータのオプションと例は、以下の「利用可能なツール」セクションに記載されています。また、「docs」ディレクトリにも詳細情報が記載されています。
プロジェクトに追加する新しいパッケージのオプションを検討している場合や、特定のパッケージに関する情報を探している場合は、npmjs から情報を検索および取得するためのツールも利用できます。
✨ 特徴
npm-check-updates ツール
🔍 checkUpdates : package.json をスキャンして古い依存関係を検出する
🚀 upgradePackages : 依存関係を最新バージョンにアップグレードします
🔎 filterUpdates : 特定のパッケージの更新をチェックする
🔄resolveConflicts : 依存関係の競合を処理する
⚙️ setVersionConstraints : バージョンアップグレードルールを設定する
🩺 runDoctor : アップグレードとテストを繰り返し実行して、重大な変更を検出します
NPM検索ツール
🔍 searchPackages : npmjs.org レジストリでパッケージを検索
📝 fetchPackageContent : npm パッケージページからコンテンツをスクレイピングして抽出する
📋 getPackageVersions : パッケージのバージョン履歴を取得する
📝 getPackageDetails : 詳細なパッケージメタデータを取得する
🚀 npm-helper-mcp インストールガイド
このガイドは、npm-helper-mcp サーバーのセットアップと実行に役立ちます。
Related MCP server: NPM Sentinel MCP
📋 前提条件
始める前に、以下がインストールされていることを確認してください。
Node.js (バージョン 18.x 以降)
npm (バージョン 8.x 以降)
🔧 構成
npm-helper-mcp サーバーはモデル コンテキスト プロトコルを実装しており、これによりプロトコルをサポートする LLM アプリケーションと通信できるようになります。
設定はアプリケーションによって異なります。一般的に、ほとんどのMCPクライアントアプリケーションには.json設定ファイル、またはサーバーを実行するコマンドを入力する場所が用意されています。ほとんどの場合、これら2つのオプションのいずれかで問題なく動作します。
オプション1: npxで実行
サーバーを使用する最も簡単な方法は、ローカルインストールが不要なnpxで実行することです。MCPクライアントに応じて、以下の2つの方法のいずれかを使用してください。
json 構成をコピーして、アプリケーションの mcp 構成ファイルに貼り付けます。
{
"mcpServers": {
"npm-helper": {
"command": "npx",
"args": [
"-y",
"@pinkpixel/npm-helper-mcp"
]
}
}
}アプリケーションの mcp 構成設定でサーバーを実行するコマンドを入力します。
npx -y @pinkpixel/npm-helper-mcpオプション2: ローカルインストール
サーバーをローカルにインストールする場合は、次のコマンドを使用します。
# Install the package globally
npm install -g npm-helper-mcp構成:
json 構成をコピーして、アプリケーションの mcp 構成ファイルに貼り付けます。
{
"mcpServers": {
"npm-helper": {
"command": "npx",
"args": [
"-y",
"@pinkpixel/npm-helper-mcp"
]
}
}
}アプリケーションの mcp 構成設定でサーバーを実行するコマンドを入力します。
npm-helper-mcpオプション3: ソースからインストールする
# Clone the repository
git clone https://github.com/pinkpixel-dev/npm-helper-mcp.git
cd npm-helper-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Optionally run/test the server
npm start構成:
json 構成をコピーして、アプリケーションの mcp 構成ファイルに貼り付けます。
{
"mcpServers": {
"npm-helper": {
"command": "node",
"args": [
"/path/to/npm-helper-mcp/dist/index.js"
]
}
}
}アプリケーションの mcp 構成設定でサーバーを実行するコマンドを入力します。
node /path/to/npm-helper-mcp/dist/index.jsLLMと併用する
このサーバーはモデルコンテキストプロトコルに準拠しており、ClaudeのようなLLMで使用できます。LLMはサーバーのツールを使用して、さまざまなnpm操作を実行できます。
利用可能なツール
ツール: check_updates
package.json をスキャンして、古い依存関係がないか確認します。
パラメータ:
packagePath(オプション): package.json ファイルへのパス (デフォルト: ./package.json)filter(オプション): チェックするパッケージ名のリストreject(オプション): 除外するパッケージ名のリストtarget(オプション): アップグレードする対象バージョン (latest、newest、greatest、minor、patch、semver)interactive(オプション):更新を選択するためのインタラクティブモードを有効にするpeer(オプション): インストールされたパッケージのピア依存関係をチェックするminimal(オプション):バージョン範囲で既に満たされている新しいバージョンをアップグレードしないpackageManager(オプション): 使用するパッケージ マネージャー (npm、yarn、pnpm、deno、bun、staticRegistry)
例:
{
"name": "check_updates",
"arguments": {
"packagePath": "./package.json",
"filter": ["react", "lodash"],
"peer": true,
"minimal": true,
"packageManager": "npm"
}
}ツール: アップグレードパッケージ
依存関係を最新バージョンにアップグレードします。
パラメータ:
packagePath(オプション): package.json ファイルへのパス (デフォルト: ./package.json)upgradeType(オプション): アップグレードする対象バージョン (latest、newest、greatest、minor、patch、semver)interactive(オプション):更新を選択するためのインタラクティブモードを有効にするpeer(オプション): インストールされたパッケージのピア依存関係をチェックするminimal(オプション):バージョン範囲で既に満たされている新しいバージョンをアップグレードしないpackageManager(オプション): 使用するパッケージ マネージャー (npm、yarn、pnpm、deno、bun、staticRegistry)
例:
{
"name": "upgrade_packages",
"arguments": {
"upgradeType": "minor",
"peer": true,
"minimal": true,
"packageManager": "yarn"
}
}ツール: filter_updates
特定のパッケージの更新を確認します。
パラメータ:
packagePath(オプション): package.json ファイルへのパス (デフォルト: ./package.json)filter(必須): チェックするパッケージ名のリストupgrade(オプション):package.jsonファイルをアップグレードするか、単にチェックするかminimal(オプション):バージョン範囲で既に満たされている新しいバージョンをアップグレードしないpackageManager(オプション): 使用するパッケージ マネージャー (npm、yarn、pnpm、deno、bun、staticRegistry)
例:
{
"name": "filter_updates",
"arguments": {
"filter": ["react", "react-dom"],
"upgrade": false,
"minimal": true
}
}ツール: 競合を解決する
ピア依存関係を使用して依存関係の競合を処理します。
パラメータ:
packagePath(オプション): package.json ファイルへのパス (デフォルト: ./package.json)upgrade(オプション):package.jsonファイルをアップグレードするか、単にチェックするかminimal(オプション):バージョン範囲で既に満たされている新しいバージョンをアップグレードしないpackageManager(オプション): 使用するパッケージ マネージャー (npm、yarn、pnpm、deno、bun、staticRegistry)
例:
{
"name": "resolve_conflicts",
"arguments": {
"upgrade": true,
"packageManager": "npm"
}
}ツール: set_version_constraints
バージョンアップグレードルールを構成します。
パラメータ:
packagePath(オプション): package.json ファイルへのパス (デフォルト: ./package.json)target(必須): ターゲットバージョン制約戦略(latest、newest、greatest、minor、patch、semver)removeRange(オプション): 最終パッケージバージョンからバージョン範囲を削除しますupgrade(オプション):package.jsonファイルをアップグレードするか、単にチェックするかminimal(オプション):バージョン範囲で既に満たされている新しいバージョンをアップグレードしないpackageManager(オプション): 使用するパッケージ マネージャー (npm、yarn、pnpm、deno、bun、staticRegistry)
例:
{
"name": "set_version_constraints",
"arguments": {
"target": "minor",
"removeRange": false,
"upgrade": true,
"packageManager": "pnpm"
}
}ツール: run_doctor
アップグレードを反復的にインストールし、テストを実行して、問題のあるアップグレードを特定します。問題のあるアップグレードは自動的に元に戻し、正常に動作するアップグレードはそのまま維持します。
パラメータ:
packagePath(オプション): package.json ファイルへのパス (デフォルト: ./package.json)doctorInstall(オプション): 使用するカスタムインストールスクリプト (デフォルト: 'npm install' または 'yarn')doctorTest(オプション): 使用するカスタムテストスクリプト (デフォルト: 'npm test')packageManager(オプション): 使用するパッケージ マネージャー (npm、yarn、pnpm、deno、bun、staticRegistry)
例:
{
"name": "run_doctor",
"arguments": {
"packagePath": "./package.json",
"doctorInstall": "npm ci",
"doctorTest": "npm run test:ci",
"packageManager": "npm"
}
}ツール: search_npm
npm パッケージを検索します。
パラメータ:
query(必須): npm パッケージの検索クエリmaxResults(オプション): 返される結果の最大数 (デフォルト: 10)
例:
{
"name": "search_npm",
"arguments": {
"query": "react state management",
"maxResults": 5
}
}ツール: fetch_package_content
npm パッケージ ページから詳細なコンテンツを取得して解析します。
パラメータ:
url(必須): npm パッケージページの URL
例:
{
"name": "fetch_package_content",
"arguments": {
"url": "https://www.npmjs.com/package/react"
}
}ツール: get_package_versions
npm パッケージの利用可能なバージョンを取得します。
パラメータ:
packageName(必須): npm パッケージの名前
例:
{
"name": "get_package_versions",
"arguments": {
"packageName": "react"
}
}ツール: get_package_details
npm パッケージに関する詳細情報を取得します。
パラメータ:
packageName(必須): npm パッケージの名前
例:
{
"name": "get_package_details",
"arguments": {
"packageName": "react"
}
}📝 レスポンスフォーマット
すべてのツールは標準形式で応答を返します。
{
"status": "success" | "error",
"data": {}, // Tool-specific data
"message": "Human-readable message"
}🆘 トラブルシューティング
接続の問題**:
LLM アプリケーションがモデル コンテキスト プロトコルを使用するように正しく構成されていることを確認します。
.json ファイルにエラーがないか確認するか、開始コマンドが正しいことを確認してください。
ローカルで実行している場合は、index.js ファイルへのパスを確認してください。必要に応じて絶対パスを使用してください。
ヘルプの取得
ここに記載されていない問題が発生した場合は、次の手順に従ってください。
同様の問題と解決策については、 GitHub の問題を確認してください。
問題の詳細な説明を記載した新しい問題を作成します。
📄 ライセンス
マサチューセッツ工科大学
🙏 クレジット
Pink Pixel が ❤️ を込めて作りました