PluginBench
MCP Server
Active
BSD-3-Clause

io.github.The-OpenROAD-Project/openroad-mcp MCP Server

io.github.The-OpenROAD-Project/openroad-mcp

Connect Claude and Cursor to OpenROAD semiconductor design tools for AI-assisted physical design and RTL-to-GDS flows.

What is the io.github.The-OpenROAD-Project/openroad-mcp MCP server?

The OpenROAD MCP server is a Model Context Protocol bridge that connects AI assistants like Claude and Cursor to OpenROAD, the leading open-source semiconductor digital design tool. It enables interactive physical design sessions, command execution, session management, and visualization of design reports directly within your AI chat interface.

This MCP server eliminates the barrier between AI assistants and semiconductor physical design by providing direct access to OpenROAD and OpenROAD-flow-scripts (ORFS). You can run interactive design sessions, execute layout commands, manage multiple design contexts, track metrics and history, and visualize ORFS reports—all from within Claude, Cursor, or other MCP-compatible clients.

How to install io.github.The-OpenROAD-Project/openroad-mcp

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "openroad-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "openroad-mcp"
      ]
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • interactive_openroad_query — Query OpenROAD with read-only commands in an interactive session.
  • interactive_openroad_exec — Execute state-modifying commands in an interactive OpenROAD session.
  • create_interactive_session — Create a new interactive OpenROAD or ORFS session.
  • list_interactive_sessions — List all active interactive design sessions.
  • terminate_interactive_session — Terminate a specific interactive session.
  • inspect_interactive_session — Inspect details and status of an interactive session.
  • get_session_history — Retrieve full command history from a session.
  • get_session_metrics — Access performance metrics and analysis data from a session.
  • list_report_images — List report images from ORFS runs.
  • read_report_image — Read and retrieve report images from ORFS runs.

Use cases

  • Run interactive RTL-to-GDS physical design flows with AI guidance and real-time feedback.
  • Execute OpenROAD layout commands and analyze design metrics without leaving your chat interface.
  • Manage multiple concurrent design sessions and compare results across different configurations.
  • Visualize ORFS reports and design metrics directly in Claude or Cursor for faster iteration.
  • Automate semiconductor design workflows by combining AI reasoning with OpenROAD's autonomous layout capabilities.

io.github.The-OpenROAD-Project/openroad-mcp MCP server FAQ

What is the OpenROAD MCP server?

It's a bridge that connects AI assistants (Claude, Cursor) to OpenROAD, an open-source semiconductor physical design tool. You can run interactive design sessions, execute commands, and view reports directly in your AI chat.

Is it free?

Yes. OpenROAD and this MCP server are both open-source under the BSD 3-Clause License.

How do I install it in Cursor?

Add the standard config to `.cursor/mcp.json`: `{"command": "npx", "args": ["-y", "openroad-mcp"]}`. Requires Node.js 22+ and OpenROAD installed and in your PATH.

How do I install it in Claude Desktop?

Add the standard config to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows).

What are the requirements?

Node.js 22+, OpenROAD installed and in your PATH, and optionally OpenROAD-flow-scripts (ORFS) for complete RTL-to-GDS flows and report visualization.

Do I need to set environment variables?

Usually no. The server auto-detects OpenROAD in PATH and ORFS at `~/OpenROAD-flow-scripts/flow`. If your installation is in an unusual location, you can pass `PATH` and `ORFS_FLOW_PATH` via the MCP client's `--env` block.

README (reference)

Source of truth, from the repository.

OpenROAD MCP Server

<!-- mcp-name: io.github.The-OpenROAD-Project/openroad-mcp -->

A Model Context Protocol (MCP) server that provides tools for interacting with OpenROAD and ORFS.

About OpenROAD MCP

New here? Check out the Quick Start Guide to get your AI assistant analyzing designs in 5 minutes.

OpenROAD MCP eliminates the barrier between your AI assistant and physical design by connecting Claude, Cursor, and other MCP-compatible clients directly to the OpenROAD layout tools.

OpenROAD is the leading open-source, foundational application for semiconductor digital design, delivering an Autonomous, No-Human-In-Loop (NHIL) flow from RTL-GDSII. OpenROAD-flow-scripts (ORFS) is the fully autonomous flow built around it.

With this MCP server, your AI assistant can:

  • Execute Commands - Run interactive OpenROAD sessions with full PTY support.
  • Manage Sessions - Create, list, inspect, and terminate multiple physical design sessions.
  • Track History & Metrics - Access full command history and performance metrics for analysis.
  • Visualize Reports - List and read report images from ORFS runs directly in the chat.

Demo

OpenROAD MCP Demo

Watch full demo video

Requirements & Installation

To use this MCP server, you need the server runtime, plus the underlying OpenROAD layout tools.

1. Server Runtime

  • Node.js 22+ is required to run the npx distribution.

2. OpenROAD

OpenROAD must be installed and available in your PATH.

3. OpenROAD-flow-scripts (ORFS)

ORFS is optional but highly recommended for complete RTL-to-GDS flows and report visualization.

Configuration

For platform-specific Node.js and C++ toolchain setup instructions, see the Cross-Platform Build Guide.

You do not need to clone this repo or pass path environment variables in the common case. The published npx package does not read a .env file.

On startup the server inherits the MCP client's environment, then fills PATH the same way which openroad would: current PATH, then your login-shell PATH, then common install locations (/opt/homebrew/bin, conda, local OpenROAD builds). ORFS_FLOW_PATH defaults to ~/OpenROAD-flow-scripts/flow, and is also detected when ORFS sits next to the openroad binary.

Supported MCP Clients

Here is the standard base configuration used across most clients:

{
  "command": "npx",
  "args": ["-y", "openroad-mcp"]
}

Find your specific client below for the exact configuration snippet and file location.

<details><summary><b>Claude Code</b></summary>
claude mcp add --transport stdio openroad-mcp -- npx -y openroad-mcp

Or add the standard config to .mcp.json / .claude/settings.json.

If a GUI-launched client still cannot find openroad, pass an override. Use command -v so you do not hard-code paths:

claude mcp add \
  --env PATH="$(dirname "$(command -v openroad)"):${PATH}" \
  --env ORFS_FLOW_PATH="${HOME}/OpenROAD-flow-scripts/flow" \
  --transport stdio openroad-mcp \
  -- npx -y openroad-mcp

Put --transport between --env and the server name so the CLI does not treat the name as another KEY=value pair.

</details> <details><summary><b>Claude Desktop</b></summary>

Add the standard config to:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
</details> <details><summary><b>Cursor</b></summary>

Add the standard config to .cursor/mcp.json.

</details> <details><summary><b>GitHub Copilot (VS Code)</b></summary>

Add to .vscode/mcp.json. Requires "type": "stdio":

{
  "servers": {
    "openroad-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "openroad-mcp"]
    }
  }
}
</details> <details><summary><b>Windsurf</b></summary>

Add the standard config to ~/.codeium/windsurf/mcp_config.json.

</details> <details><summary><b>Cline / Roo Code</b></summary>

Add the standard config to cline_mcp_settings.json (Cline) or .roo/mcp.json (Roo Code).

</details> <details><summary><b>Continue / PearAI</b></summary>

Add to your respective config.json under modelContextProtocolServers:

{
  "transport": {
    "type": "stdio",
    "command": "npx",
    "args": ["-y", "openroad-mcp"]
  }
}
</details> <details><summary><b>Zed</b></summary>

Add to ~/.config/zed/settings.json:

{
  "context_servers": {
    "openroad-mcp": {
      "command": {
        "path": "npx",
        "args": ["-y", "openroad-mcp"]
      }
    }
  }
}
</details> <details><summary><b>Docker / MCP Registry / Others</b></summary>

The server is available on the MCP Registry and via Docker:

docker run --rm -i ghcr.io/the-openroad-project/openroad-mcp:latest

Most other standard STDIO clients are fully supported. Refer to your tool's MCP setup guide.

</details>

Available Tools

Once configured, your AI assistant will have access to the following tools. For detailed parameters, schemas, and return formats, see the API Reference.

  • interactive_openroad_query
  • interactive_openroad_exec
  • create_interactive_session
  • list_interactive_sessions
  • terminate_interactive_session
  • inspect_interactive_session
  • get_session_history
  • get_session_metrics
  • list_report_images
  • read_report_image

Troubleshooting

  • The server fails to start: Ensure you have Node.js 22+. Older versions will fail.
  • Session creation fails: Confirm command -v openroad works in a terminal. The server inherits PATH and searches common install locations; if your prefix is unusual, pass PATH with --env as shown in the Claude Code section.
  • Commands rejected with CommandBlocked: You sent a state-modifying command to interactive_openroad_query. Use interactive_openroad_exec instead.
  • Report images not found: The server defaults to ~/OpenROAD-flow-scripts/flow. If ORFS lives elsewhere, set ORFS_FLOW_PATH in the MCP client's env block (not a .env file).

To get more detail, set LOG_LEVEL=DEBUG in the server's environment.

Development

Clone the repository. .env.example is a local-dev reference only; copy it to .env if you use direnv or similar. The server still reads process.env (the MCP client's env block), not the file.

Then run:

cd typescript
npm install
npm run build

Testing:

npm run test             # unit tests
npm run test:integration # integration tests
npm run test:performance # performance benchmarks

Linting & type checking:

npm run typecheck
npm run lint

Contributing

We welcome contributions! Please see CONTRIBUTING.md for detailed instructions on our development workflow and code standards.

License

BSD 3-Clause License. See LICENSE file.


Built with ❤️ by Precision Innovations

Related MCP servers

KYA MCP gate: evaluate, ingest, request approval. Sole PEP is Shield.

0
TypeScript
MIT
View repository →
RFRFP Hub logo

RFP Hub

Active

Search Ethereum-ecosystem funding opportunities; submit one behind a human approval step.

2
TypeScript
MIT
View repository →
ANAnvil logo

Anvil

Active

Local physics/chemistry bench as MCP: plain words in, 12-domain simulations out.

1
TypeScript
Apache-2.0
View repository →
HAHarvest logo

Harvest

Active

Plain-English training-data scout: 12 experts sweep HuggingFace + GitHub, compose scored packs.

1
TypeScript
Apache-2.0
View repository →

Agentic-AI route optimization for delivery fleets, capacity- and time-window-safe.

Local research agent that verifies its own answers. Runs on Gemma 3 4B + Ollama, $0/query.

0
Python
MIT
View repository →