npm-run-mcp-server について
npm-run-mcp-server はプロジェクトの package.json スクリプトを AI エージェント向けのツールに変換します。ワークスペースとパッケージマネージャーを検出し、公開するスクリプトや型付き引数を設定できます。
主な機能
- 01ワークスペース内の package.json を自動検出
- 02npm、pnpm、yarn、bun に対応
- 03許可リストまたは除外リストでスクリプトを選択
- 04ツール名と説明の設定
- 05CLI フラグに対応する型付き引数の定義
活用シーン
- 01AI エージェントからプロジェクトのテストを実行
- 02許可したビルドや lint スクリプトだけを公開
- 03設定した引数をプロジェクトコマンドに渡す
MCP 対応
package.json のスクリプトを MCP ツールとして公開し、検出したパッケージマネージャーでプロジェクトのルートから実行します。公開するスクリプトとツール引数を設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
npm-run-mcp-server
npm-run-mcp-server は、プロジェクトの npm スクリプトを AI アシスタントに自動的に橋渡しする Model Context Protocol (MCP) サーバーです。
- 🔍 プロジェクトの
package.jsonを自動検出します(パスのハードコードは不要です)。 - 📦 あらゆる環境で動作します:npm、pnpm、yarn、bun に対応しています。
- 🔒 安全かつ設定可能です:特定のスクリプトを許可リストに登録して、誤実行を防げます。
- ⚡ 設定不要です:すぐに使え、詳細な設定にも対応します。
⚡ クイックスタート
エージェントをスクリプトに数秒で接続できます。グローバルインストールは不要です。npx に任せるだけです。
Claude Desktop
claude_desktop_config.json に次の内容を追加します:
{
"mcpServers": {
"npm-scripts": {
"command": "npx",
"args": ["-y", "npm-run-mcp-server"]
}
}
}
Cursor
- Settings > Features > MCP Servers に移動します。
- + Add New MCP Server をクリックします。
- 詳細を入力します:
- Type:
command - Name:
npm-scripts - Command:
npx - Args:
-y npm-run-mcp-server
- Type:
VS Code(GitHub Copilot)
ワークスペースの .vscode/settings.json に次の内容を追加します:
{
"github.copilot.chat.mcpServers": {
"npm-scripts": {
"command": "npx",
"args": ["-y", "npm-run-mcp-server"]
}
}
}
🛠️ 設定
npm-run-mcp-server はすぐに使えますが、eject や publish など、すべてのスクリプトに AI がアクセスできるようにしたくない場合もあるでしょう。プロジェクトのルートに npm-run-mcp.config.json ファイルを作成すると、アクセスを制御できます。
設定例
package.json と同じ場所に npm-run-mcp.config.json を作成します:
{
"include": ["test", "lint", "build", "start"],
"scripts": {
"test": {
"description": "Run the test suite. Use --watch for interactive mode.",
"inputSchema": {
"properties": {
"watch": { "type": "boolean", "description": "Watch files for changes" }
}
}
}
}
}
設定オプション
| フィールド | 型 | 説明 |
|---|---|---|
include | string[] | 公開するスクリプト名の許可リストです。省略すると、すべてのスクリプトが公開されます。 |
exclude | string[] | 非表示にするスクリプト名の拒否リストです。 |
scripts | object | 特定のスクリプトの詳細設定です。 |
スクリプトごとのオプション
scripts オブジェクト内では、スクリプト名に次の項目を割り当てられます。
toolName:AI に表示されるツール名を変更します(例:test:unitをrun_unit_testsに変更)。description:AI がこのスクリプトを使用するタイミングを理解しやすいよう、カスタムの説明を設定します。inputSchema:AI が渡せる厳密に型付けされた引数を定義します(CLI フラグにマッピングされます)。
📖 仕組み
- 自動検出:サーバーの起動時に、現在のワークスペースで
package.jsonを探します。標準的な書式に加え、npm、pnpm、yarn、bunの規則にも対応しています。 - ツールの作成:スクリプトを MCP ツールに変換します。
test:unitのようなスクリプトは、test_unitのようなツールになります。- ツールの説明には実際のコマンド(例:
vitest run)が含まれるため、AI は何を実行するのか把握できます。
- 実行:AI がツールを呼び出すと、サーバーは検出したパッケージマネージャーを使用して、プロジェクトのルートディレクトリでスクリプトを実行します。
🔧 高度な使い方/CLI の使用
デバッグするときや特定のフラグを渡す必要がある場合は、サーバーを手動で実行できます。
# Run directly
npx npm-run-mcp-server --list-scripts
# Run in a specific directory
npx npm-run-mcp-server --cwd /path/to/project
# Force a specific package manager
npx npm-run-mcp-server --pm pnpm
CLI フラグ
--cwd <path>:作業ディレクトリを手動で設定します。--pm <npm|pnpm|yarn|bun>:使用するパッケージマネージャーを指定します。--config <path>:特定の JSON 設定ファイルへのパスを指定します。--verbose:デバッグログを stderr に出力します。
🤝 コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
- リポジトリをフォークします。
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature)。 - 変更をコミットします(
git commit -m 'Add some amazing feature')。 - ブランチにプッシュします(
git push origin feature/amazing-feature)。 - プルリクエストを作成します。
ライセンス
MIT © Felix Stubner
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。