Skip to main content
Glama

Vibe-Coding Hardware & Autonomous PCB Physical Synthesis MCP Server

calligraphy_compile_board

Compile a PCB through Calligraphy EDA (3D HDI synthesis + Snowman teardrop pad fillets + Zero-VIPPO DFM surgery + 3D nodal G*V=I physics) and return 0-DRC telemetry, preview crops, a single clickable Stripe Checkout URL, and watch-only per-job USDT/USDC stablecoin payment instructions. Mode A (Zero-File Demo): Pass sample_id='2l_rp2040' (or '2l_stickhub', '4l_carrier'). Mode B (User's Local Board over Remote HTTP): Read the user's local .kicad_pcb, .dsn, .ato, or .tsx file and pass its contents in pcb_text + filename (or upload_b64 for .PcbDoc/.zip).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "calligraphy_compile_board"
  }
}

Input Schema

NameRequiredDescriptionDefault
filenameNoboard.kicad_pcb
pcb_textNoRaw CAD file contents (.kicad_pcb, .dsn, .ato, .tsx, .xml) for remote HTTP MCP calls
sample_idNoOptional built-in sample board ID ('2l_rp2040', '2l_stickhub', '4l_carrier')
upload_b64NoBase64-encoded CAD file or .zip bundle for remote HTTP MCP calls
project_pathNoLocal stdio CLI path or built-in sample ID ('2l_rp2040', '2l_stickhub', '4l_carrier'). For remote HTTP MCP, read local files and pass 'pcb_text' or 'upload_b64' instead.
tos_acceptedNo
requested_skuNoroute_3d
rush_deliveryNo
customer_emailNoagent@customer.io
include_eco_passNo
retention_policyNoauto_purge_on_download
no_itar_certifiedNo
export_control_certifiedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3/5.0
Behavior3/5

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

With no annotations at all, the description carries the full burden, and it does disclose that calling this tool emits a Stripe Checkout URL and per-job stablecoin payment instructions — i.e., it is a billable, job-creating operation. It says nothing about cost, whether the uploaded CAD leaves the user's control, what retention_policy governs, or what happens on failure, all of which matter for a 13-parameter paid compile.

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?

The action and return values are front-loaded, which is good, but the opening sentence is a dense 50-word parenthetical of marketing jargon that could be trimmed to a few words without losing meaning. The Mode A/B second half is functional and well-structured, so the overall text is useful but not tight.

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 13-parameter, no-annotation, no-output-schema tool that triggers payment, the definition is under-specified: pricing tiers, retention behavior, delivery speed, and export-control flags are all unexplained, and there is no statement of what a caller gets back beyond a one-line list. Naming the outputs helps, but the gap around the commercial and legal parameters is the kind an agent cannot safely fill by inference.

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 coverage is only 31% across 13 parameters, so the description must compensate and does only partially: it explains sample_id values, pcb_text + filename pairing, and upload_b64 for binary formats. Eight parameters — requested_sku (the pricing tier selector), rush_delivery, customer_email, include_eco_pass, retention_policy, tos_accepted, no_itar_certified, export_control_certified — are left undocumented by both schema and description, including consequential legal/export-certification flags.

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 opens with a specific verb and resource ('Compile a PCB through Calligraphy EDA') and enumerates the outputs (0-DRC telemetry, preview crops, Stripe Checkout URL, payment instructions), so the core action is unambiguous. It never distinguishes itself from sibling tools like calligraphy_route_pcb or calligraphy_preflight_audit, and the jargon stack (Snowman fillets, Zero-VIPPO, 3D nodal G*V=I) adds noise rather than meaning.

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 Mode A / Mode B split gives real guidance on which invocation path to take (built-in sample vs user's local board over HTTP), which is more than most definitions offer. However, it is purely input-mode guidance; there is no statement about when to choose this tool over route_pcb, preflight_audit, or get_job_status, and no prerequisites or exclusions are given.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.