@rushstack/mcp-server

Local stdio server for a Rush monorepo: workspace details, commands, migrations, lockfile conflicts

Official · Microsoft TypeScript Local · stdio Developer tools

48 popularity score ★ 6.5k ↓ 293/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

Claude CodeTerminal
claude mcp add rushstack -- npx -y @rushstack/mcp-server '<RUSH_WORKSPACE_PATH>'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "rushstack": {
      "command": "npx",
      "args": [
        "-y",
        "@rushstack/mcp-server",
        "<RUSH_WORKSPACE_PATH>"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "rushstack": {
      "command": "npx",
      "args": [
        "-y",
        "@rushstack/mcp-server",
        "<RUSH_WORKSPACE_PATH>"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "rushstack": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@rushstack/mcp-server",
        "<RUSH_WORKSPACE_PATH>"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.rushstack]
command = "npx"
args = ["-y", "@rushstack/mcp-server", "<RUSH_WORKSPACE_PATH>"]
Gemini CLITerminal
gemini mcp add --scope user rushstack npx -- -y @rushstack/mcp-server '<RUSH_WORKSPACE_PATH>'

What it does

The Rush MCP server comes from Microsoft's Rush Stack team, the makers of the Rush monorepo manager. You point it at the root folder of a Rush workspace and it gives an AI coding assistant tools for that repository. It can describe the workspace and individual projects, check whether a proposed Rush command is valid, move a project to another folder or subspace, and settle conflicts in a subspace's pnpm-lock.yaml.

It runs on your own machine over stdio. When it starts it loads the Rush SDK from the target repository itself, so it works with the Rush version that repository pins. It then changes its working directory to the workspace root.

A repository can add its own tools through plugins. If common/config/rush-mcp/rush-mcp.json exists, the server reads the plugins listed there, makes sure each plugin's Rush autoinstaller is installed, and loads the plugin package, which must ship a rush-mcp-plugin.json manifest. A plugin can also have its own config file in common/config/rush-mcp/.

The npm README lists six tools, including rush_docs. In the source on the main branch (server.ts), only five built-in tools are registered, and rush_docs is not one of them.

What it needs

RuntimeNode.js

Node.js with npx. A Rush monorepo on local disk, with Rush set up so the server can load the repository's own Rush SDK. Its path goes in the launch command as the first argument. git must be on the PATH for the lockfile conflict tool. The README suggests copying the rushstack repository's .cursor folder into your project for better results.

Limits

It works only on Rush monorepos and will not start without a workspace path argument that exists on disk. The README still lists a rush_docs tool, but the source on main does not register it. The lockfile conflict tool takes the incoming side of pnpm-lock.yaml (git checkout --theirs) and then runs rush update for that subspace, so changes from your own side of the lockfile conflict are dropped. It runs over stdio only and has no hosted endpoint.

Who it suits

It suits teams already on Rush who want their editor's assistant to understand workspace layout, run project migrations, and clear routine pnpm lockfile conflicts without leaving the editor. Because it is from the makers of Rush and loads the repository's own Rush SDK, it follows that repository's Rush version. It is of no use for npm, Yarn, Nx or Turborepo workspaces that do not use Rush. Pick a general file-system or git server if you only need to read files or run git.

Tools 5

rush_workspace_details
Reports the overall layout and settings of the Rush workspace
rush_project_details
Gives details about one named project in the monorepo
rush_command_validator
Checks whether a Rush command is valid and follows recommended practice
rush_migrate_project
Moves a project to a new folder or subspace and updates rush.json and subspaces.json
rush_pnpm_lock_file_conflict_resolver
Settles a pnpm-lock.yaml merge conflict by taking the incoming side and running rush update

Similar servers