The OpenROAD MCP server - interactive EDA sessions via Model Context Protocol
Runs on your machine from its package; the steps are below.

At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx openroad-mcp
MCP client config
{
"mcpServers": {
"openroad": {
"command": "uvx",
"args": [
"openroad-mcp"
]
}
}
}Run
docker run -i --rm ghcr.io/luarss/openroad-mcp:0.5.3
MCP client config
{
"mcpServers": {
"openroad": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/luarss/openroad-mcp:0.5.3"
]
}
}
}A Model Context Protocol (MCP) server that provides tools for interacting with OpenROAD and ORFS.
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:

To use this MCP server, you need the server runtime, plus the underlying OpenROAD layout tools.
npx distribution.OpenROAD must be installed and available in your PATH.
ORFS is optional but highly recommended for complete RTL-to-GDS flows and report visualization.
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.
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.
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:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd 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"]
}
}
}
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"]
}
}
Add to ~/.config/zed/settings.json:
{
"context_servers": {
"openroad-mcp": {
"command": {
"path": "npx",
"args": ["-y", "openroad-mcp"]
}
}
}
}
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.
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_imagecommand -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.interactive_openroad_query. Use interactive_openroad_exec instead.~/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.
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
We welcome contributions! Please see CONTRIBUTING.md for detailed instructions on our development workflow and code standards.
BSD 3-Clause License. See LICENSE file.
Built with ❤️ by Precision Innovations