openroad-mcp
OpenROAD MCP 服务器
一个模型上下文协议(MCP)服务器,提供与 OpenROAD 和 ORFS 交互的工具。
关于 OpenROAD MCP
刚接触? 查看 快速入门指南,让您的 AI 助手在 5 分钟内开始分析设计。
OpenROAD MCP 通过将 Claude、Cursor 及其他兼容 MCP 的客户端直接连接到 OpenROAD 布局工具,消除了 AI 助手与物理设计之间的障碍。
OpenROAD 是半导体数字设计领域领先的开源基础应用,提供从 RTL 到 GDSII 的自主、无人工干预(NHIL)流程。OpenROAD-flow-scripts(ORFS)是围绕它构建的全自主流程。
借助此 MCP 服务器,您的 AI 助手可以:
执行命令 - 运行支持完整 PTY 的交互式 OpenROAD 会话。
管理会话 - 创建、列出、检查和终止多个物理设计会话。
跟踪历史与指标 - 访问完整命令历史和性能指标以进行分析。
可视化报告 - 直接在聊天中列出并读取 ORFS 运行生成的报告图像。
Related MCP server: MCP Server
演示

要求与安装
要使用此 MCP 服务器,您需要服务器运行时,以及底层的 OpenROAD 布局工具。
1. 服务器运行时
需要 Node.js 22+ 才能运行
npx发行版。
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 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 对。
将标准配置添加到:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
将标准配置添加到 .cursor/mcp.json。
添加到 .vscode/mcp.json。需要 "type": "stdio":
{
"servers": {
"openroad-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "openroad-mcp"]
}
}
}将标准配置添加到 ~/.codeium/windsurf/mcp_config.json。
将标准配置添加到 cline_mcp_settings.json(Cline)或 .roo/mcp.json(Roo Code)。
添加到您各自的 config.json 中的 modelContextProtocolServers 下:
{
"transport": {
"type": "stdio",
"command": "npx",
"args": ["-y", "openroad-mcp"]
}
}添加到 ~/.config/zed/settings.json:
{
"context_servers": {
"openroad-mcp": {
"command": {
"path": "npx",
"args": ["-y", "openroad-mcp"]
}
}
}
}该服务器可在 MCP 注册表 上获取,也可通过 Docker 获取:
docker run --rm -i ghcr.io/the-openroad-project/openroad-mcp:latest大多数其他标准 STDIO 客户端均完全支持。请参阅您所用工具的 MCP 设置指南。
可用工具
配置完成后,您的 AI 助手将可以访问以下工具。有关详细参数、模式和返回格式,请参阅 API 参考。
interactive_openroad_queryinteractive_openroad_execcreate_interactive_sessionlist_interactive_sessionsterminate_interactive_sessioninspect_interactive_sessionget_session_historyget_session_metricslist_report_imagesread_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代码检查与类型检查:
npm run typecheck
npm run lint贡献
我们欢迎贡献!请参阅 CONTRIBUTING.md 了解我们开发工作流程和代码标准的详细说明。
许可证
BSD 3-Clause 许可证。请参阅 LICENSE 文件。
由 Precision Innovations 用 ❤️ 构建
Available Tools
10 toolscreate_interactive_sessionC
Create a new interactive OpenROAD session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No | ||
| command | No | ||
| env | No | ||
| cwd | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are unhelpful (all false) and the description does not disclose side effects, resource allocation, or required permissions. It merely states 'Create', which is already obvious from the name, and adds no behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is appropriately concise, though it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters, no schema descriptions, and no usage guidance, the description is insufficient. It does not explain output behavior or return value, despite having an output schema. The description lacks necessary context for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any of the four parameters (cwd, env, command, session_id). Schema description coverage is 0%, and the description fails to compensate, leaving the agent with no insight into parameter meaning or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'new interactive OpenROAD session', which distinguishes it from sibling tools like terminate_interactive_session and list_interactive_sessions. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool, prerequisites, or when not to use it. It does not mention any alternatives or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_historyCRead-onlyIdempotent
Get command history for an interactive OpenROAD session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ||
| limit | No | ||
| search | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, safe operations. The description adds the session context but omits behavioral details like behavior on invalid session IDs or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no excess, but too sparse to provide useful guidance. Could include key details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema existing, the description lacks context on when history is available, how it relates to sibling tools, and limitations like pagination or size limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters (limit, search, session_id). The agent must infer meaning from parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves command history for an interactive OpenROAD session, distinguishing it from siblings like get_session_metrics or inspect_interactive_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not mention prerequisites, such as requiring an active session, or contrast with similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_metricsBRead-onlyIdempotent
Get comprehensive metrics for all interactive OpenROAD sessions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds only 'comprehensive metrics for all sessions,' without further behavioral detail (e.g., performance impact, whether sessions must be active). The description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no extraneous words, directly stating the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, output schema exists, and annotations are present, the description covers the core purpose. However, it lacks details about the metrics scope (e.g., active vs. all sessions) and does not reference the output schema for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (100% schema coverage), and the description adds no semantic detail beyond the schema's implicit meaning. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets 'comprehensive metrics for all interactive OpenROAD sessions,' which distinguishes it from siblings like get_session_history (per-session history) and list_interactive_sessions (just listing). However, it does not explicitly differentiate from inspect_interactive_session, which might also provide metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as list_interactive_sessions or get_session_history. The description lacks explicit context for selection or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_interactive_sessionARead-onlyIdempotent
Get detailed inspection data for an interactive OpenROAD session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds minimal behavioral context. It does not elaborate on what data is returned or any side effects, but it does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. However, it could be slightly expanded to add parameter context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 param, output schema present), the description is adequate but lacks guidance on how to obtain the session_id or what 'detailed inspection data' specifically includes. It meets minimum viability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter session_id is described by its type but the description does not explain its purpose or origin (e.g., from list_interactive_sessions). With 0% schema description coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get) and the resource (detailed inspection data for an interactive OpenROAD session). It distinguishes this tool from siblings like get_session_history or get_session_metrics by using 'detailed inspection data'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites or scenarios, leaving the agent to infer from the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interactive_openroad_execADestructive
Execute a state-modifying OpenROAD command (set_*, create_*, read_*, write_*, flow commands).
Use this for loading designs, running placement/routing, applying constraints, and writing output files. Read-only commands are blocked — use interactive_openroad_query instead.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| session_id | No | ||
| timeout_ms | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive hint. The description adds context by specifying state-modifying nature, listing command types (set_*, create_*, etc.) and use cases (loading designs, placement/routing), enhancing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with effective front-loading: the first states the core function, the second gives usage context and alternative tool. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite good purpose and usage guidelines, the description lacks parameter explanations and does not cover session management or timeout behavior. With three parameters and no schema description, the tool is incompletely documented for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about the three parameters (command, session_id, timeout_ms). Schema description coverage is 0%, and the description fails to compensate, leaving the agent without guidance on parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes state-modifying OpenROAD commands and lists examples, distinguishing it from the sibling query tool by explicitly excluding read-only commands.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use (state-modifying commands) and when not (read-only commands), directing to interactive_openroad_query as the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interactive_openroad_queryARead-only
Execute a read-only OpenROAD command (report_*, get_*, check_*, sta, help, etc.).
Use this for querying design state, generating reports, and inspecting timing. Commands that modify design state are blocked — use interactive_openroad_exec instead.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| session_id | No | ||
| timeout_ms | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces that by stating modifying commands are blocked. It also names the sibling for mutable operations, adding context beyond annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences: first defines the tool and lists example commands, second provides usage boundaries and alternative. No extraneous information; every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (context indicates present) and 3 parameters, yet the description omits output semantics and parameter details. While purpose and usage are clear, the lack of parameter documentation leaves the description incomplete for an agent to correctly invoke the tool without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 3 parameters (command, session_id, timeout_ms) with 0% schema description coverage. The description does not mention or explain any of these parameters, leaving the agent with no semantic guidance beyond the schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes read-only OpenROAD commands, lists examples (report_*, get_*, check_*, sta, help), and explicitly contrasts with the sibling tool interactive_openroad_exec for mutable commands. This leaves no ambiguity about purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool (for querying design state, generating reports, inspecting timing) and when not to (commands that modify design state), directing to the alternative sibling. This provides complete guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_interactive_sessionsARead-onlyIdempotent
List all active interactive OpenROAD sessions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe, read-only nature is clear. The description adds 'active interactive' scope but does not disclose any further behavior like pagination, error handling, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no extraneous words. Every word is necessary to convey the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, rich annotations, and an output schema), the description is mostly complete. It could hint at the output format, but the existence of an output schema covers that. The description adequately captures the tool's core function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema coverage is 100%. The description confirms the resource is 'all active interactive OpenROAD sessions', which adds meaning beyond the empty schema. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all active interactive OpenROAD sessions. It uses a specific verb 'List' and identifies the resource, distinguishing it from sibling tools like create_interactive_session or terminate_interactive_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, exclusions, or related tools, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_report_imagesBRead-onlyIdempotent
List available report images from ORFS runs organized by stage.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | ||
| design | Yes | ||
| run_slug | Yes | ||
| stage | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and non-destructive. The description adds that results are organized by stage, providing minimal extra behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with 14 words, efficiently stating the core action. It is well-structured and front-loaded, but could benefit from additional details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters and no schema descriptions, the description is too brief. It does not explain the required parameters or the meaning of 'available', leaving significant gaps for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only mentions the stage parameter's role (organizing by stage). No semantics are provided for the required parameters (platform, design, run_slug), leaving the agent under-informed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists report images from ORFS runs organized by stage. It uses a specific verb and resource, and distinguishes from sibling tools like read_report_image and list_interactive_sessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus its siblings. It lacks context about when to choose list_report_images over read_report_image or list_interactive_sessions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_report_imageCRead-onlyIdempotent
Read a report image and return base64-encoded data with metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | ||
| design | Yes | ||
| run_slug | Yes | ||
| image_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the agent knows the tool is safe and non-destructive. The description adds that the output is base64-encoded data with metadata, but lacks detail on the metadata structure or edge cases (e.g., image not found).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, directly stating the action and output. It is front-loaded with the key verb and object, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description fails to explain the meaning or constraints of the input parameters, which are all required and have zero schema description. The tool may be under-specified for correct usage without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameter descriptions (0% coverage), and the description does not explain any of the four required parameters (design, platform, run_slug, image_name). This leaves the agent guessing the meaning and valid values for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and the object 'report image', and specifies the output as base64-encoded data with metadata. However, it does not distinguish itself from the sibling tool 'list_report_images', which likely lists images without reading content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'list_report_images'. The description merely states the action without any contextual advice on prerequisites or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terminate_interactive_sessionADestructiveIdempotent
Terminate an interactive OpenROAD session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ||
| force | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the description is consistent but adds no behavioral context beyond these annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise with no unnecessary words, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple but lacks details about the force parameter and what happens when the session terminates, given the presence of sibling tools and a destructive hint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the parameters (session_id, force) or their semantics, leaving the agent without guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Terminate') and resource ('interactive OpenROAD session'), distinguishing it from sibling tools like create, inspect, list, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when to end a session) but provides no explicit guidance on prerequisites, when to use alternatives, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clear, distinct purpose: session management (create, list, inspect, history, metrics, terminate), command execution (exec vs query separated by state-modifying vs read-only), and reporting (list and read report images). No overlap.
Most tools follow verb_noun pattern (create_interactive_session, get_session_history, etc.), but interactive_openroad_exec and interactive_openroad_query deviate by using a different prefix. Overall pattern is recognizable.
10 tools is well-scoped for managing interactive sessions, executing commands, and handling reports. Not too many or too few.
Covers session lifecycle (create, list, inspect, terminate) and command execution (read/write), plus reporting. Minor gaps like a tool to get session details by ID are covered by inspect_interactive_session, so mostly complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for progressive tool usage at any scale (see https://klavis.ai)
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol (MCP) server that provides JSON-RPC functionality through OpenRPC.25243Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.214MIT
- FlicenseNot gradedqualityDmaintenanceA server implementation of the Model Context Protocol (MCP) that provides REST API endpoints for managing and interacting with MCP resources.
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that exposes KiCad PCB design automation tools to AI assistants and other MCP clients.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/The-OpenROAD-Project/OpenROAD-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server