Skip to main content
Glama
IntelligentElectron

Universal Netlist MCP Server

List designs

list_designs
Read-onlyIdempotent

Lists supported schematic design projects in a directory and returns the exact path each analysis tool needs, so you can query a design without searching the filesystem.

Instructions

List the design projects in a directory, one path each: a .DSN, a .PrjPcb, a .kicad_pro, or a Universal Netlist .netlist.json. That path is what every other tool takes; use this tool instead of searching the filesystem.

path is optional. Omitted or blank, it searches the server's working directory, so check root for the directory actually searched. A misspelled argument name is refused with an error naming it. A result cut short by max_results says so in its notes.

design_variants lists each design's builds: its native variants (Altium, Cadence CIS, KiCad; fabrication where the vendor marks one a build assembly), or <Default> alone when it records none. A design with variants requires design_variant on every query, and <Default> is refused on it.

Cadence: query the .DSN; it carries properties, connectivity, and CIS stuffing. KiCad: query the .kicad_pro; a committed .net export is read directly, otherwise the schematics are read themselves (no KiCad install needed), with kicad-cli as the last resort; a design none of them can read is reported in error.

A design marked unsupported: true cannot be read (for example an OrCAD design saved in an older Capture format); error says why and what to do, and every query on it returns that error, so do not query it.

Input Schema

NameRequiredDescriptionDefault
pathNoPath to directory to search for designs
patternNoRegex pattern to filter design names
max_depthNoMax directory recursion depth (0 = no recursion). Omit for unlimited.
max_resultsNoMax designs to return. Default: 50.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.0-development

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish a safe read-only, idempotent, closed-world profile, and the description goes well beyond them: blank/omitted path falls back to the server working directory (with `root` naming what was actually searched), misspelled arguments are refused by name, and truncation by max_results is surfaced in `notes`. It also discloses the per-format read strategy (Cadence queries the .DSN; KiCad reads a committed .net, else schematics directly with no KiCad install, with kicad-cli as last resort) and that unreadable designs return `error` plus `unsupported: true`.

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?

Front-loaded correctly: the returned path and the filesystem-search alternative come first, then path fallback, then the format-specific caveats. It is dense but a few sentences drift toward downstream query behavior (Cadence CIS stuffing, KiCad fallback chain) that is closer to the query tools' concern than to listing, costing some tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description still names the fields an agent will encounter: `root`, `notes`, `design_variants`, `error`, and `unsupported`. With 0 required params, 100% schema coverage, and four documented annotations, nothing an agent needs in order to call this correctly or interpret the result is missing.

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?

Schema coverage is 100%, so the baseline is 3. The description still adds real meaning for two of the four parameters: `path` being optional and what blank means, and `max_results` truncation being reported in `notes` rather than silently dropping results. `pattern` and `max_depth` are only covered by the schema, so it stops short of a 5.

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?

States a specific verb and resource ('List the design projects in a directory') and enumerates exactly which file types count as a design (.DSN, .PrjPcb, .kicad_pro, .netlist.json), so an agent knows what will be returned. It also names the sibling relationship explicitly: the produced path is 'what every other tool takes', which separates it from the query siblings like list_nets or query_component.

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?

Explicit routing guidance: 'use this tool instead of searching the filesystem' gives a concrete when-to-use and a when-not-to-use in one clause. It adds exclusions for the unsupported case ('every query on it returns that error, so do not query it') and states that a design with variants requires design_variant on every subsequent query, which pre-empts a common mis-call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.