Skip to main content
Glama

OpenROAD MCP 서버

OpenROADORFS와 상호작용하기 위한 도구를 제공하는 Model Context Protocol(MCP) 서버입니다.

OpenROAD MCP 소개

처음이신가요? 빠른 시작 가이드를 확인하여 5분 만에 AI 어시스턴트로 설계를 분석해 보세요.

OpenROAD MCP는 Claude, Cursor 및 기타 MCP 호환 클라이언트를 OpenROAD 레이아웃 도구에 직접 연결하여 AI 어시스턴트와 물리적 설계 사이의 장벽을 제거합니다.

OpenROAD는 반도체 디지털 설계를 위한 선도적인 오픈소스 기반 애플리케이션으로, RTL-GDSII부터 완전 자동화된 NHIL(No-Human-In-Loop) 플로우를 제공합니다. OpenROAD-flow-scripts(ORFS)는 이를 기반으로 구축된 완전 자동화 플로우입니다.

이 MCP 서버를 통해 AI 어시스턴트는 다음을 수행할 수 있습니다:

  • 명령 실행 - 완전한 PTY 지원으로 대화형 OpenROAD 세션을 실행합니다.

  • 세션 관리 - 여러 물리적 설계 세션을 생성, 나열, 검사 및 종료합니다.

  • 기록 및 메트릭 추적 - 분석을 위한 전체 명령 기록과 성능 메트릭에 접근합니다.

  • 리포트 시각화 - ORFS 실행의 리포트 이미지를 채팅에서 직접 나열하고 읽습니다.

Related MCP server: MCP Server

데모

OpenROAD MCP 데모

전체 데모 비디오 보기

요구 사항 및 설치

이 MCP 서버를 사용하려면 서버 런타임과 기본 OpenROAD 레이아웃 도구가 필요합니다.

1. 서버 런타임

  • npx 배포판을 실행하려면 Node.js 22+ 가 필요합니다.

2. OpenROAD

OpenROAD가 설치되어 PATH에 있어야 합니다.

3. OpenROAD-flow-scripts (ORFS)

ORFS는 선택 사항이지만 완전한 RTL-to-GDS 플로우와 리포트 시각화에 적극 권장됩니다.

구성

플랫폼별 Node.js 및 C++ 툴체인 설정 지침은 크로스 플랫폼 빌드 가이드 를 참조하세요.

일반적인 경우 이 저장소를 클론하거나 경로 환경 변수를 전달할 필요가 없습니다. 게시된 npx 패키지는 .env 파일을 읽지 않습니다.

서버는 시작 시 MCP 클라이언트의 환경을 상속받은 다음, which openroad와 동일한 방식으로 PATH를 채웁니다: 현재 PATH, 로그인 셸 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

CLI가 서버 이름을 또 다른 KEY=value 쌍으로 취급하지 않도록 --transport--env와 서버 이름 사이에 배치하세요.

표준 구성을 다음 위치에 추가하세요:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %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.jsonmodelContextProtocolServers 아래에 추가하세요:

{
  "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_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 섹션에 표시된 대로 --envPATH를 전달하세요.

  • 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 tools
create_interactive_sessionC

Create a new interactive OpenROAD session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNo
commandNo
envNo
cwdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_historyC
Read-onlyIdempotent

Get command history for an interactive OpenROAD session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
limitNo
searchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_metricsB
Read-onlyIdempotent

Get comprehensive metrics for all interactive OpenROAD sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_sessionA
Read-onlyIdempotent

Get detailed inspection data for an interactive OpenROAD session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_execA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
session_idNo
timeout_msNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_queryA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
session_idNo
timeout_msNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_sessionsA
Read-onlyIdempotent

List all active interactive OpenROAD sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_imagesB
Read-onlyIdempotent

List available report images from ORFS runs organized by stage.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYes
designYes
run_slugYes
stageNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_imageC
Read-onlyIdempotent

Read a report image and return base64-encoded data with metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYes
designYes
run_slugYes
image_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_sessionA
DestructiveIdempotent

Terminate an interactive OpenROAD session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
forceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

A3.6/5.0
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

10 tools is well-scoped for managing interactive sessions, executing commands, and handling reports. Not too many or too few.

Completeness4/5

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

ActivityActive
ResponsivenessWithin a week

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

Related MCP Servers

Latest Blog Posts

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