# openroad_pnr

Performs end-to-end automated digital ASIC physical design (floorplanning, placement, routing, and static timing analysis) on a gate-level netlist using OpenROAD, returning area, utilization, wirelength, and timing slack metrics.

Agent View of the PolicyLayer registry record for `openroad_pnr`. HTML page: https://policylayer.com/tools/zesun33-mcp-openroad/openroad-pnr

## Facts

- Tool: `openroad_pnr`
- Server: Mcp Openroad (`@zesun33/mcp-openroad`) — https://policylayer.com/tools/zesun33-mcp-openroad.md
- Install: `npx -y @zesun33/mcp-openroad`
- Homepage: https://www.npmjs.com/package/@zesun33/mcp-openroad
- Risk category: Other (Low risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 9 (2 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `cwd` | string | no | Optional working directory where source files reside. |
| `pdn` | boolean | no | Insert stdcell PDN after floorplan/tap and before place (Sky130 only; default false). |
| `sdc_file` | string | no | Optional SDC timing constraints file path. |
| `output_def` | string | no | Optional output routed DEF file path. |
| `timeout_ms` | number | no | Timeout in milliseconds (default: 45000). |
| `top_module` | string | yes | Name of the top-level module to place and route. |
| `netlist_file` | string | yes | Gate-level Verilog netlist file path. |
| `clock_period_ns` | number | no | Target clock period in ns if no SDC provided (default: 1.0). |
| `core_utilization` | number | no | Target core cell placement density from 0.0 to 1.0 (default: 0.7). |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "openroad_pnr",
    "arguments": {
      "top_module": "<top_module>",
      "netlist_file": "<netlist_file>"
    }
  }
}
```

## Why openroad_pnr is rated Low

Without any rule in front of it, every call an agent makes to openroad_pnr happens silently: no trail, no cap, no way to know it misbehaved until something breaks downstream.

Risk signals: Accepts file system path (cwd)

## Use case

AI agents call openroad_pnr as a supporting operation in Mcp Openroad workflows.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Mcp Openroad:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "openroad_pnr": {
      "limits": [
        {
          "counter": "openroad_pnr_rate",
          "window": "minute",
          "max": 60,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Mcp Openroad (11)

- `openroad_power` — Destructive — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-power.md
- `openroad_cts` — Other — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-cts.md
- `openroad_detail_route` — Other — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-detail-route.md
- `openroad_floorplan` — Other — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-floorplan.md
- `openroad_pdn` — Other — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-pdn.md
- `openroad_place` — Other — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-place.md
- `openroad_route` — Other — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-route.md
- `openroad_sta` — Other — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-sta.md
- `openroad_sta_corners` — Other — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-sta-corners.md
- `openroad_toolchain_info` — Other — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-toolchain-info.md
- `openroad_eval` — Read — https://policylayer.com/tools/zesun33-mcp-openroad/openroad-eval.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=zesun33-mcp-openroad · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/zesun33-mcp-openroad
