mcpField
O
openroad-mcp

openroad-mcp

本地服务
github.com/The-OpenROAD-Project科研与教育315 天前更新

关于 openroad-mcp

OpenROAD MCP 服务让 AI 助手通过 MCP 直接操作 OpenROAD 与 ORFS 的物理设计流程,适合需要分析芯片版图和流程结果的开源 EDA 用户。它以交互式会话的方式运行 OpenROAD 命令,并可查看 ORFS 运行生成的报告图片。

主要功能

  1. 01交互式 OpenROAD 会话,支持 PTY
  2. 02创建、列出、查看和终止多个会话
  3. 03访问命令历史与性能指标
  4. 04列出并读取 ORFS 运行生成的报告图片

适用场景

  1. 01让 AI 助手检查 ORFS 运行结果并解释报告
  2. 02在对话中查看物理设计的报告图片
  3. 03在同一对话中管理多个 OpenROAD 会话

MCP 相关

该项目是 MCP 服务,向 MCP 客户端提供会话管理、命令执行、历史与指标查询以及报告图片读取等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"the-openroad-project-openroad": {
"command": "npx",
"args": [
"-y",
"openroad-mcp"
]
}
}
}
启动命令npx -y openroad-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmopenroad-mcp1.1.0
ocighcr.io/the-openroad-project/openroad-mcp:1.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

OpenROAD MCP 服务

一个模型上下文协议(MCP)服务,提供用于与 OpenROAD 和 ORFS 交互的工具。

关于 OpenROAD MCP

初次使用? 查看快速入门指南,只需 5 分钟即可让 AI 助手分析设计。

OpenROAD MCP 打通了 AI 助手与物理设计之间的壁垒,可将 Claude、Cursor 及其他兼容 MCP 的客户端直接连接到 OpenROAD 布局工具。

OpenROAD 是领先的开源半导体数字设计基础应用,可提供从 RTL 到 GDSII 的自主、无需人工介入(NHIL)流程。OpenROAD-flow-scripts(ORFS)是围绕它构建的完全自主流程。

借助此 MCP 服务,你的 AI 助手可以:

  • 执行命令 - 运行具备完整 PTY 支持的交互式 OpenROAD 会话。
  • 管理会话 - 创建、列出、检查并终止多个物理设计会话。
  • 跟踪历史记录和指标 - 获取完整的命令历史记录和性能指标,以供分析。
  • 可视化报告 - 直接在聊天中列出并读取 ORFS 运行生成的报告图像。

演示

OpenROAD MCP 演示

观看完整演示视频

要求与安装

要使用此 MCP 服务,你需要服务运行时,以及底层的 OpenROAD 布局工具。

1. 服务运行时
  • 运行 npx 发行版需要 Node.js 22+。
2. OpenROAD

必须安装 OpenROAD,并确保它可在你的 PATH 中找到。

3. OpenROAD-flow-scripts(ORFS)

ORFS 是可选项,但强烈建议安装,以支持完整的 RTL 到 GDS 流程和报告可视化。

配置

有关特定平台的 Node.js 和 C++ 工具链设置说明,请参阅**跨平台构建指南**。

通常情况下,你无需克隆此仓库或传递路径环境变量。已发布的 npx 软件包不会读取 .env 文件。

启动时,服务会继承 MCP 客户端的环境,然后按照与 which openroad 相同的方式填充 PATH:先使用当前的 PATH,再使用登录 shell 的 PATH,最后查找常见安装位置(/opt/homebrew/bin、conda、本地 OpenROAD 构建目录)。ORFS_FLOW_PATH 默认为 ~/OpenROAD-flow-scripts/flow;如果 ORFS 与 openroad 二进制文件位于同一目录下,也会自动检测到它。

支持的 MCP 客户端

以下是大多数客户端通用的标准基础配置:

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

请在下方找到对应的客户端,查看准确的配置片段和文件位置。

Claude Code
claude mcp add --transport stdio openroad-mcp -- npx -y openroad-mcp

或者将标准配置添加到 .mcp.json / .claude/settings.json。

如果通过 GUI 启动的客户端仍然无法找到 openroad,请传入覆盖值。使用 command -v,避免将路径写死:

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

将 --transport 放在 --env 和服务名称之间,避免 CLI 将名称误认为另一组 KEY=value 参数。

Claude Desktop

将标准配置添加到:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
Cursor

将标准配置添加到 .cursor/mcp.json。

GitHub Copilot (VS Code)

添加到 .vscode/mcp.json。需要 "type": "stdio":

{
  "servers": {
    "openroad-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "openroad-mcp"]
    }
  }
}
Windsurf

将标准配置添加到 ~/.codeium/windsurf/mcp_config.json。

Cline / Roo Code

将标准配置添加到 cline_mcp_settings.json(Cline)或 .roo/mcp.json(Roo Code)。

Continue / PearAI

在相应的 config.json 中,将配置添加到 modelContextProtocolServers 下:

{
  "transport": {
    "type": "stdio",
    "command": "npx",
    "args": ["-y", "openroad-mcp"]
  }
}
Zed

添加到 ~/.config/zed/settings.json:

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

此服务可通过 MCP Registry 和 Docker 获取:

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

大多数其他标准 STDIO 客户端也完全受支持。请参阅相应工具的 MCP 设置指南。

可用工具

配置完成后,AI 助手即可使用以下工具。如需了解详细参数、架构和返回格式,请参阅 API 参考。

  • 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

故障排查

  • 服务无法启动:确保已安装 Node.js 22+。较旧版本将无法运行。
  • 会话创建失败:确认在终端中运行 command -v openroad 正常。服务会继承 PATH 并搜索常见安装位置;如果安装前缀比较特殊,请按照 Claude Code 部分所示,通过 --env 传入 PATH。
  • 命令因 CommandBlocked 被拒绝:你向 interactive_openroad_query 发送了会修改状态的命令。请改用 interactive_openroad_exec。
  • 找不到报告图像:服务默认使用 ~/OpenROAD-flow-scripts/flow。如果 ORFS 位于其他位置,请在 MCP 客户端的 env 块中设置 ORFS_FLOW_PATH(而不是在 .env 文件中设置)。

如需查看更多信息,请在服务的环境中设置 LOG_LEVEL=DEBUG。

开发

克隆此仓库。.env.example 仅供本地开发参考;如果使用 direnv 或类似工具,请将其复制为 .env。服务仍会读取 process.env(MCP 客户端的 env 块),而不是该文件。

然后运行:

cd typescript
npm install
npm run build

测试:

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

Lint 和类型检查:

npm run typecheck
npm run lint

贡献

欢迎贡献!有关开发工作流和代码规范的详细说明,请参阅 CONTRIBUTING.md。

许可证

BSD 3-Clause License。请参阅 LICENSE 文件。


由 Precision Innovations 用 ❤️ 打造

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。