io.github.luarss/openroad-mcp MCP Server
io.github.luarss/openroad-mcp
Interactive EDA sessions for semiconductor design via AI—connect Claude to OpenROAD layout tools.
What is the io.github.luarss/openroad-mcp MCP server?
The OpenROAD MCP server provides tools for interacting with OpenROAD and ORFS (OpenROAD-flow-scripts), the leading open-source semiconductor digital design platform. It enables AI assistants like Claude and Cursor to execute interactive physical design sessions, manage multiple design workflows, and visualize reports directly in chat. With this server, your AI can run RTL-to-GDS flows autonomously and analyze design metrics in real time.
This MCP server bridges AI assistants and OpenROAD, the foundational open-source tool for semiconductor digital design. You can execute interactive OpenROAD commands, create and manage multiple design sessions, track command history and performance metrics, and visualize ORFS report images—all from within Claude, Cursor, or other MCP-compatible clients. Essential for engineers automating chip design workflows with AI assistance.
How to install io.github.luarss/openroad-mcp
Copy-paste configuration for popular MCP clients.
Tools & capabilities
Tools this server exposes to the agent.
interactive_openroad_query— Query OpenROAD state without modifying itinteractive_openroad_exec— Execute state-modifying commands in OpenROAD sessionscreate_interactive_session— Create a new interactive OpenROAD or ORFS sessionlist_interactive_sessions— List all active physical design sessionsterminate_interactive_session— End a running sessioninspect_interactive_session— Inspect details of a specific sessionget_session_history— Access full command history for a sessionget_session_metrics— Retrieve performance metrics from a sessionlist_report_images— List report images from ORFS runsread_report_image— Read and display report images in chat
Use cases
- Run RTL-to-GDS semiconductor design flows autonomously with AI guidance
- Execute interactive OpenROAD commands and receive real-time feedback on design metrics
- Manage multiple concurrent physical design sessions and compare results
- Visualize ORFS reports and design analysis directly in your AI chat interface
- Automate chip design workflows by combining AI reasoning with OpenROAD's layout tools
io.github.luarss/openroad-mcp MCP server FAQ
It's an MCP server that connects AI assistants (Claude, Cursor, etc.) to OpenROAD and ORFS, the leading open-source tools for semiconductor digital design. You can execute design commands, manage sessions, and visualize reports interactively.
Yes. OpenROAD must be installed and available in your PATH. ORFS (OpenROAD-flow-scripts) is optional but recommended for complete RTL-to-GDS flows and report visualization. See the official installation guides linked in the README.
For Claude: run `claude mcp add --transport stdio openroad-mcp -- npx -y openroad-mcp`. For Cursor: add the standard config to `.cursor/mcp.json`. Full client-specific instructions are in the README.
Node.js 22+ is required to run the server. OpenROAD must be installed and in your PATH. The server inherits your MCP client's environment and auto-detects common install locations.
Yes. The OpenROAD MCP server is open-source (BSD 3-Clause License) and free. OpenROAD itself is also open-source and free.
Yes. The server supports creating, listing, inspecting, and terminating multiple interactive sessions, allowing you to manage parallel design workflows.
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

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
npxdistribution.
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.
Add the standard config to:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the standard config to .cursor/mcp.json.
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.
Add the standard config to cline_mcp_settings.json (Cline) or .roo/mcp.json (Roo Code).
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_queryinteractive_openroad_execcreate_interactive_sessionlist_interactive_sessionsterminate_interactive_sessioninspect_interactive_sessionget_session_historyget_session_metricslist_report_imagesread_report_image
Troubleshooting
- The server fails to start: Ensure you have Node.js 22+. Older versions will fail.
- Session creation fails: Confirm
command -v openroadworks in a terminal. The server inherits PATH and searches common install locations; if your prefix is unusual, passPATHwith--envas shown in the Claude Code section. - Commands rejected with CommandBlocked: You sent a state-modifying command to
interactive_openroad_query. Useinteractive_openroad_execinstead. - Report images not found: The server defaults to
~/OpenROAD-flow-scripts/flow. If ORFS lives elsewhere, setORFS_FLOW_PATHin the MCP client'senvblock (not a.envfile).
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
Private-market data across Southeast Asia via the Alternatives Partner API v3
Portfolio X-Ray with ETF look-through, file analysis, and website analytics in plain English.
View repository →
AI Agent Firewall. Enforce signed authority before consequential actions. Free API key required.
Cooperative persistent memory for LLMs: episodes, memories and traits over SQLite (FTS5, Hebbian)
Philadelphia water and fire damage restoration: assessment, insurance, costs, and knowledge search.
Unofficial, read-only MCP server for the public Querido Diário API (Brazilian municipal gazettes)
View repository →


