Npm Run Mcp Server

io.github.fstubnerPublished by GitHub account fstubnerv0.2.13Updated Oct 24, 2026

An MCP server that exposes package.json scripts as tools for agents.

Overview

AI-generated overview

A local MCP server that turns a project's package.json scripts into tools, letting an assistant build, test, lint and run the project.

What you can do
Detect the project's package.json and expose its scripts as tools, naming them after the script names (for example test:unit becomes test_unit). Show each tool's underlying command so the assistant knows what it runs. Execute a chosen script in the project root using the detected package manager (npm, pnpm, yarn or bun). Restrict which scripts are exposed and give individual scripts custom names, descriptions and typed arguments via a config file.
When to use it
Useful when you want an assistant to run your existing build, test, lint or start scripts in a JavaScript or TypeScript project without copying commands by hand. Best for local development work where the assistant should trigger project tasks directly.
Requirements
Runs as a local stdio process, typically launched with npx, so Node.js and npm are needed. A package.json must exist in the workspace, or a working directory must be set with the --cwd flag. No accounts, API keys or environment variables are declared.
Before you install
By default all package.json scripts are exposed, including ones like eject or publish; use the include or exclude config to limit them. Calling a tool executes the script in your project root, which can change files, install packages or deploy, so review what each script does first.

Installation

In SourceWeft

  1. Open Npm Run Mcp Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

npm-run-mcp-server

Give your AI Agent the power to build, test, and deploy your project using your existing package.json scripts.

[Test] [Build & Publish] [NPM Version] [MCP Registry] [Install in Cursor] [Install in VS Code] [License: MIT]

[npm-run-mcp-server MCP server]

npm-run-mcp-server is a Model Context Protocol (MCP) server that automatically bridges your project's npm scripts to your AI assistant.

  • 🔍 Auto-detects your project's package.json (no hardcoded paths).
  • 📦 Works with everything: npm, pnpm, yarn, and bun.
  • 🔒 Safe & Configurable: Whitelist specific scripts to prevent accidental execution.
  • ⚡ Zero-config: Works out of the box, but scales with detailed config.

⚡ Quick Start

Connect your agent to your scripts in seconds. No global installation required—just let npx handle it.

Claude Desktop

Add this to your claude_desktop_config.json:

json
{  "mcpServers": {    "npm-scripts": {      "command": "npx",      "args": ["-y", "npm-run-mcp-server"]    }  }}

Cursor

[Install in Cursor]

  1. Go to Settings > Features > MCP Servers.
  2. Click + Add New MCP Server.
  3. Enter the details:
    • Type: command
    • Name: npm-scripts
    • Command: npx
    • Args: -y npm-run-mcp-server

VS Code (GitHub Copilot)

[Install in VS Code]

Add this to your workspace .vscode/settings.json:

json
{  "github.copilot.chat.mcpServers": {    "npm-scripts": {      "command": "npx",      "args": ["-y", "npm-run-mcp-server"]    }  }}

🛠️ Configuration

While npm-run-mcp-server works instantly, you might not want your AI to have access to every script (like eject or publish). You can control this by creating an npm-run-mcp.config.json file in your project root.

Example Config

Create npm-run-mcp.config.json next to your package.json:

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" }        }      }    }  }}

Configuration Options

FieldTypeDescription
includestring[]Whitelist of script names to expose. If omitted, all scripts are exposed.
excludestring[]Blacklist of script names to hide.
scriptsobjectDetailed configuration for specific scripts.
Per-Script Options

Inside the scripts object, you can map a script name to:

  • toolName: Override the tool name seen by the AI (e.g., rename test:unit to run_unit_tests).
  • description: Provide a custom description to help the AI understand when to use this script.
  • inputSchema: Define strictly typed arguments that the AI can pass (mapped to CLI flags).

📖 How It Works

  1. Auto-Detection: When the server starts, it looks for a package.json in your current workspace. It supports standard formatting as well as npm, pnpm, yarn, and bun conventions.
  2. Tool Creation: It converts your scripts into MCP Tools.
    • Scripts like test:unit become tools like test_unit.
    • The tool description includes the actual command (e.g., vitest run) so the AI knows what it's running.
  3. Execution: When the AI calls a tool, the server executes the script in your project's root directory using the detected package manager.

🔧 Advanced / CLI Usage

You can run the server manually for debugging or if you need to pass specific flags.

bash
# Run directlynpx npm-run-mcp-server --list-scripts
# Run in a specific directorynpx npm-run-mcp-server --cwd /path/to/project
# Force a specific package managernpx npm-run-mcp-server --pm pnpm

CLI Flags

  • --cwd <path>: Manually set the working directory.
  • --pm <npm|pnpm|yarn|bun>: Force a specific package manager.
  • --config <path>: Path to a specific JSON config file.
  • --verbose: Print debug logs to stderr.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repo.
  2. Create your feature branch (git checkout -b feature/amazing-feature).
  3. Commit your changes (git commit -m 'Add some amazing feature').
  4. Push to the branch (git push origin feature/amazing-feature).
  5. Open a Pull Request.

License

MIT © Felix Stubner

Source: README.md at commit 8268fac

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.13LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts