Skip to main content
Glama

Calligraphy EDA MCP Server

Compile & Route PCB in Cloud Enclave

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.3/5.0
Behavior3/5

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

Adds real context beyond the annotations by disclosing that the call returns a Stripe Checkout URL and stablecoin payment instructions, making clear this is a billable cloud job in an open-world enclave. However, it never states that it creates a persistent job record (relevant given idempotentHint=false and destructiveHint=false), nor what tos_accepted, retention_policy, or the export-control flags do to the call. With annotations only covering the safety profile, more behavioral disclosure was warranted.

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?

Three sentences, front-loaded with purpose then modes, so the structure is sound. The parenthetical technology stack ('3D HDI synthesis + Snowman teardrop pad fillets + Zero-VIPPO DFM surgery + 3D nodal G*V=I physics') is dense marketing jargon that consumes significant space without helping an agent decide or invoke correctly.

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

Completeness3/5

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

It does cover return payload contents, which matters in the absence of an output schema, and it resolves the input-mode question. But for a thirteen-parameter, no-required-field, commercially gated tool with no output schema, omitting the SKU ladder, retention behavior, TOS acceptance, and export-control certifications leaves the agent unable to configure a correct non-default call.

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?

Only four of thirteen parameters are explained (sample_id, pcb_text, filename, upload_b64) and even those largely restate the schema descriptions. The nine remaining parameters — including requested_sku with its seven-value pricing enum, retention_policy, tos_accepted, and no_itar_certified/export_control_certified — get no explanation at all. At 31% schema coverage the description needed to compensate and does not, leaving commercially consequential choices undocumented.

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?

Opens with a specific verb+resource ('Compile a PCB through Calligraphy EDA') and enumerates the returned artifacts (DRC telemetry, preview crops, Checkout URL, payment instructions). The two operating modes are named distinctly. It does not contrast itself against siblings like calligraphy_route_pcb or analyze_kicad_pcb, so the agent must infer that this is the full-pipeline entry point, but the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly splits usage into Mode A (Zero-File Demo, pass sample_id) and Mode B (local board over remote HTTP, pass pcb_text+filename or upload_b64), which is exactly the decision an agent must make. Missing is guidance on when to pick this over the route-only or analysis siblings, and there are no stated exclusions or prerequisites despite tos_accepted and export-control flags.

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.

Resources