Skip to main content
Glama

pcb_export_stackup_csv

Export a PCB layer stackup to a fab-ready CSV report with one row per physical layer, interleaved copper and dielectric, thickness in mil and mm, and dielectric constant values.

Instructions

Write the layer stackup to a conventional fab CSV report.

Fetches the structured stackup (pcb_get_layer_stackup) and writes it as the board-house stackup table: one row per physical layer, copper and dielectric interleaved top-to-bottom, thickness in mil and mm, dielectric constant where it applies. Columns: index, layer, type, material, thickness_mil, thickness_mm, dielectric_constant.

Args: output_path: Destination .csv file. Defaults to workspace/<board>_stackup.csv.

Returns: {"output_path", "rows", "layer_count", "total_thickness_mils"} or an error dict if the board / stackup could not be read.

Input Schema

NameRequiredDescriptionDefault
output_pathNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4/5.0
Behavior3/5

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

With no annotations present, the description must carry the full disclosure burden. It does disclose the default destination path and that failures surface as an error dict rather than raising, which is useful. It does not state whether an existing file is overwritten, whether the directory is created, or what happens to non-physical layers — material gaps for a file-writing tool.

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 with the action and behavior, then Args and Returns. Every line contributes, though the explicit return-field listing is somewhat redundant given an output schema exists. Still efficiently sized for a one-parameter tool.

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?

For a single-optional-parameter export tool, the definition covers source, output format, columns, default path, and failure mode. With an output schema present, the extra return listing is a bonus rather than a necessity. The main omission is file-overwrite semantics, which prevents a full 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single property has no title or default documented meaningfully, yet the description fully compensates: it says output_path is the 'Destination .csv file' and that it defaults to 'workspace/<board>_stackup.csv'. That is everything an agent needs to either pass a path or omit it.

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 opening line states a specific verb and resource — 'Write the layer stackup to a conventional fab CSV report' — and the following sentence pins down the exact content and column set. It also identifies the source tool (pcb_get_layer_stackup), so an agent can distinguish this from the plain reader sibling without opening either schema.

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 by showing that the tool internally fetches the stackup from pcb_get_layer_stackup, which tells an agent not to call the reader first for this purpose. However, it gives no explicit when-to-use/when-not guidance and doesn't mention alternative exports (e.g. proj_generate_fab_package or pcb_get_fab_stats) or when those would be preferred.

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

Deploy Server

Other Tools