Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
STA_BINNoOpenSTA binarysta
STA_ARGSNoExtra arguments passed to OpenSTA-no_splash -no_init
OPENSTA_MCP_LOGNoServer log level (stderr + `server.log`)INFO
OPENSTA_MCP_HOMENoWhere sessions and ownership files live~/.opensta-mcp
OPENSTA_MCP_STDERRNo`file`: sta's stderr goes to `sta.stderr.log`; `merge`: into stdoutfile
OPENSTA_MCP_STALL_SNoSeconds of silence before the server checks whether sta is idle60
OPENSTA_MCP_MAX_OUTPUTNoCharacters returned per tool call before truncation (about 150 report lines)12000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
load_designA

Load a design into the OpenSTA session. Call this once before any analysis.

liberty: Liberty (.lib) file path, or a list of paths verilog: gate-level netlist (.v) path top: top module name to link sdc: SDC constraints file (optional but required for meaningful timing) spef: parasitics file (optional; without it delays use wire-load / no parasitics)

Returns per-step timings and a digest of warnings. Warnings raised here (unmatched SPEF nets, missing cells, unconstrained ports) affect every later result, so read them. Starts a new analysis state (see get_conditions). Loads on top of the running sta: to drop earlier constraints and run_tcl changes, call restart_session first.

get_summaryA

Timing and size summary as numbers: worst setup/hold slack, TNS, WNS, minimum clock period and fmax per clock, design-rule violation counts, cell and net counts.

report_timingA

Report timing paths (OpenSTA report_checks).

path_delay: "max" = setup paths, "min" = hold paths path_count: paths per path group (-group_path_count) scope: "reg2reg" = register to register only, "in2reg" = from input ports, "reg2out" = to output ports, "all" = no restriction from_pin / to_pin: restrict to a start or end point (pin, port or instance name; bus bits like reg_next_pc[31] are fine, they are quoted for you) fields: include input-pin rows (separates wire from cell delay) and slew, capacitance, fanout and net columns format: "end" and "summary" are one line per path; "json" only if this OpenSTA supports it (check with run_tcl "help report_checks") timeout_s: 0 = wait as long as it takes (a stalled sta is still detected)

report_powerB

Report power by group (sequential, combinational, clock, macro, pad) and component (internal, switching, leakage), in watts.

top_instances: also list this many highest-power instances (0 = none) format: "text" table or "json" (the instance list is always text)

The result states where switching activity came from: a VCD/SAIF read through run_tcl, or OpenSTA's default activity (then values are estimates).

run_tclA

Run any OpenSTA Tcl command(s) in the live session.

Rules:

  • OpenSTA syntax. Unsure of a command name? Use find_commands. Unsure of its options? Run help <command> here first.

  • Wrap bus bit names in braces: -to {reg_next_pc[31]}.

  • exec, exit, socket, source, cd and load are disabled. Files (reports via > file, write_* commands) can be written only under the session directory shown by get_status.

  • State changes made here (read_*, set_*, create_*, ...) stay in effect, start a new analysis state and are listed by get_conditions.

  • The script's Tcl return value is returned too, so puts is not needed.

  • Long output is truncated; narrow the query instead of asking for everything. timeout_s: 0 = no limit. sta is never restarted automatically.

find_commandsA

Names of the OpenSTA commands matching a glob pattern (e.g. "power", "report_*"). Use this when you do not know a command's name or run_tcl answered "invalid command name". Returns names only; read a command's description and options with run_tcl "help ".

get_statusA

What the OpenSTA session is doing. Safe to call at any time, including while another tool is waiting: shows the running command and its elapsed time, whether sta is computing or idle, the loaded design and its state number, constraint changes made through run_tcl, and the session log directory.

get_conditionsA

The analysis conditions behind a result: the Liberty, netlist, SDC and SPEF files (full paths), every constraint change made through run_tcl since, the switching-activity source and the scenes. Analysis results end with "[conditions #n]"; pass that n as state to see the conditions they were computed under, or 0 for the current state. Answers from the session journal, so earlier states can be read even after sta died.

restart_sessionA

Stop the sta process and start a fresh one. The loaded design and any constraint changes are lost; call load_design again. Use this after get_status reports sta as exited, stalled, or holding an unfinished command.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have clearly distinct purposes: load_design loads, report_timing/report_power produce specific reports, restart_session resets, etc. However, run_tcl is a general escape hatch that overlaps functionally with report_timing and report_power, and get_status vs get_conditions both report session state, creating some potential for misselection. Descriptions mitigate this well.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (get_summary, load_design, report_timing, run_tcl, find_commands, get_status, get_conditions, restart_session). There are no deviations in casing or style.

Tool Count5/5

Nine tools is a well-scoped set for an STA server. Each tool covers a distinct operation (load, report, inspect, reset, discover) and there is no redundant tool that could be removed without losing functionality.

Completeness5/5

The surface covers the full lifecycle: loading a design, querying conditions/status, producing timing and power reports, discovering commands, running arbitrary Tcl, and restarting. Missing specialized reports (e.g., area, clocks) can be accessed via run_tcl, so there are no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues