vibe-hardware-mcp
A zero-dependency MCP server for local KiCad/Specctra PCB analysis, impedance and DFM checks, plus optional cloud PCB routing/fabrication workflows.
Parse and analyze local
.kicad_pcbor.dsnfiles from text or filesystem path.Extract copper stackup, board dimensions, footprint/pad counts, nets, traces, arcs, and vias.
Calculate microstrip/stripline/differential impedance, propagation delay, and IPC-2152 current capacity.
Audit PCB designs against standard 2-layer, 4-layer, and fine-HDI DFM limits.
List 13 verified open-source benchmark boards and built-in sample IDs.
Run cloud preflight audits and get deterministic price quotes.
Compile or route PCBs through Calligraphy EDA with payment options.
Check job status, verify USDT/USDC payments, and download Gerber/Excellon/IPC-D-356/BOM/CPL fab bundles.
Create Coinbase Pay checkouts, look up B2B invoices, purge job vaults, and request IP whitelisting.
Provides local parsing and analysis of KiCad .kicad_pcb files, extracting copper layer stackup, board outline dimensions, footprint and pad counts, fine-pitch pad density, netlist data, routed track/arc/via statistics, and enabling DFM rule auditing against fabrication limits.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
Vibe-Coding Hardware MCP Server (vibe-hardware-mcp)
A zero-dependency Python 3 Model Context Protocol (
MCP) server (calligraphy_mcp_stdio.py) for local KiCad.kicad_pcb& Specctra.dsnparsing, PCB transmission-line impedance & IPC-2152 current calculation, local Design-for-Manufacturing (DFM) rule auditing, and multi-layer PCB trace routing.
Architecture & Included MCP Tools (calligraphy_mcp_stdio.py)
This repository contains the complete, zero-dependency Python 3 MCP server implementation in calligraphy_mcp_stdio.py (containerized via Dockerfile):
1. Local Offline PCB Analysis, Impedance & DFM Tools (100% Local Execution)
Tool Name | Execution | Description |
| Local Python | Parses |
| Local Python | Parses Specctra |
| Local Python | Closed-form IPC-2141A / Hammerstad-Jensen microstrip & stripline characteristic impedance ($Z_0$), edge-coupled differential pair impedance ($Z_{\text{diff}}$), propagation delay ( |
| Local Python | Audits |
| Local Python | Returns the built-in catalog of 13 verified open-source reference PCBs ( |
2. Optional Cloud Co-Processor Tools (Multi-Layer 3D PCB Routing Offload)
For dense multi-layer boards that require full 3D trace routing, G1 circular arc smoothing, teardrop pad reinforcement, and turnkey Gerber/Excellon/IPC-D-356 .ZIP generation, the server also exposes optional co-processor tools (calligraphy_preflight_audit, calligraphy_compile_board, calligraphy_get_job_status, calligraphy_download_fab_bundle, calligraphy_route_pcb).
Related MCP server: mcp-kicad
Quick Start (Local stdio & Docker)
Option 1: Run Locally via Python 3 (stdio Transport)
No external pip packages are required (uses Python 3.10+ standard library):
{
"mcpServers": {
"vibe-hardware-mcp": {
"command": "python3",
"args": ["/path/to/vibe-hardware-mcp/calligraphy_mcp_stdio.py"]
}
}
}Option 2: Run via Docker (Dockerfile)
docker build -t vibe-hardware-mcp .
docker run -i --rm vibe-hardware-mcpOption 3: Remote Streamable-HTTP Endpoint (Claude Code / Cursor)
claude mcp add --transport http calligraphy-eda https://calligraphyeda.com/api/v1/mcpVisual Proof: 55 / 55 Verified Open-Source Benchmark Sweep (20 / 20 PCBench Tier T + 13 / 13 Tier D + 22 / 22 Multi-ECAD at 100.0% Completion & 0 Native KiCad 9 DRC)

Full 20-Board
PCBench Tier T& 13-BoardTier DScoreboard: github.com/calligraphysystems/open-pcb-routing-benchmark
Benchmark Board | 350-DPI Routed Copper Proof ( | 3D Raytraced Assembly Render |
|
|
|
|
|
|
|
|
|
License
MIT License — Copyright (c) 2026 Calligraphy Systems LLC (https://calligraphyeda.com).
Available Tools
15 toolsanalyze_kicad_pcbAnalyze KiCad PCB LayoutARead-onlyIdempotentInspect
Parse and analyze a KiCad .kicad_pcb board locally (from pcb_text or project_path). Extracts copper layer stackup, board outline dimensions (mm), footprint count, SMD vs THT pad counts, fine-pitch (<=0.50mm) pad count, net count, routed trace/arc segment statistics, and via count.
Inputs: pcb_text, project_path.
analyze_specctra_dsnAnalyze Specctra DSN Autorouter FileARead-onlyIdempotentInspect
Parse and analyze a Specctra .dsn PCB autorouter file locally (from dsn_text or project_path). Extracts units, resolution, signal/power copper layers, board boundary dimensions, component count, netlist summary, and design rule clearances/widths.
Inputs: dsn_text, project_path.
audit_pcb_dfm_rulesAudit PCB DFM Fabrication RulesBRead-onlyIdempotentInspect
Run a local Design-for-Manufacturing (DFM) rule check on a .kicad_pcb or .dsn file against standard 2-layer or 4-layer fabrication limits (minimum trace width, clearance, via hole diameter, and annular ring width).
Inputs: fab_tier, pcb_text, project_path.
calculate_pcb_trace_impedanceCalculate PCB Trace Impedance & IPC-2152 CurrentARead-onlyIdempotentInspect
Local PCB transmission-line impedance & IPC-2152 trace current calculator. Computes single-ended microstrip/stripline Z0 (Ohms), edge-coupled differential Zdiff (Ohms), propagation delay (ps/mm), and recommended trace width for a target impedance or DC current (Amps).
Inputs: er, mode, current_amps, trace_width_mm, +4 more.
calligraphy_compile_boardCompile & Route PCB in Cloud EnclaveAInspect
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): Pass a local file path in project_path (stdio mode) or pass its contents in pcb_text + filename (or upload_b64 for .PcbDoc/.zip).
Inputs: filename, pcb_text, sample_id, upload_b64, +9 more.
calligraphy_create_coinbase_checkoutCreate Coinbase Base L2 USDC Checkout SessionBInspect
Create a 1-Click Coinbase Pay / Coinbase Onchain Payment Protocol checkout session (and x402 AI-agent payment URL) settling in USDC on Base (chain_id=8453) with automatic DEX token conversion and zero gas-dust sweeping.
Inputs: job_id (required), network, currency.
calligraphy_download_fab_bundleDownload Unlocked Turnkey Fabrication BundleARead-onlyIdempotentInspect
Download the unlocked routed .kicad_pcb and turnkey JLCPCB/PCBWay .zip bundle (Gerbers, Excellon drills, IPC-D-356, BOM, CPL, and 3D HTML5 viewer) once paid via Stripe Checkout, autonomous USDT/USDC stablecoin verification, or active 30-day board license.
Inputs: job_id (required), output_dir, include_bundle_b64.
calligraphy_get_job_statusGet PCB Synthesis Job StatusARead-onlyIdempotentInspect
Query the compilation and payment status of a Calligraphy EDA job (job_id). When status is COMPLETED_AWAITING_PAYMENT, returns stablecoin_payment_instructions with the job's unique watch-only deposit_address (0x...) for autonomous USDT/USDC checkout.
Inputs: job_id (required).
calligraphy_list_gallery_boardsList Verified 0-DRC Benchmark Gallery BoardsARead-onlyIdempotentInspect
List the 13 conquered open-source PCB benchmark boards (100.0% routed, 0 native KiCad copper DRC violations) and available 1-click sample demo IDs ('2l_rp2040', '2l_stickhub', '4l_carrier').
Inputs: no named parameters.
calligraphy_lookup_b2b_invoiceLook Up B2B Tax Invoice & Custody CertificateBRead-onlyIdempotentInspect
Look up a Calligraphy EDA job and generate a B2B Tax Invoice & Chain-of-Custody Certificate with custom PO number and company name.
Inputs: job_id (required), po_number, company_name, customer_email.
calligraphy_preflight_auditRun Pre-Flight CAD Doctor & Instant Tier QuoteARead-onlyIdempotentInspect
Inspect a .kicad_pcb file or .zip project bundle (including atopile/tscircuit/Altium/Allegro builds), verify outline/pad readiness, and return a deterministic 3-Lever NRE-anchored price quote ($149 vibe_micro for <=150 pads up to $1,495+ route_3d). Mode A (Zero-File Demo): Pass sample_id='2l_rp2040' (or '2l_stickhub', '4l_carrier'). Mode B (User's Local Board): Pass a local file path in project_path (stdio mode) or pass its contents in pcb_text + filename (or upload_b64 for .PcbDoc/.zip).
Inputs: filename, pcb_text, sample_id, upload_b64, +5 more.
calligraphy_purge_job_vaultPurge Enclave Job VaultADestructiveIdempotentInspect
Immediately shred all enclave CAD and synthesis artifacts for job_id and return a cryptographically signed CertificateOfDestruction (zero_retention_verified=True).
Inputs: job_id (required).
calligraphy_request_ip_whitelistRequest Enterprise IP Whitelist QuotaBInspect
Submit a Support Whitelist Request for an engineering team, corporate NAT IP, or PCB layout agency that needs higher daily compilation write limits (e.g. 25–100 compiles/day).
Inputs: reason (required), customer_email (required), organization_name (required), client_ip, +1 more.
calligraphy_route_pcbSynthesize & Route Multi-Layer PCBAInspect
Alias for calligraphy_compile_board: synthesize and route a PCB through Calligraphy EDA (0 opens, 0 DRC) and return Stripe, Coinbase Pay (x402), and watch-only USDT/USDC payment instructions. Mode A (Zero-File Demo): Pass sample_id='2l_rp2040' (or '2l_stickhub', '4l_carrier'). Mode B (User's Local Board): Pass a local file path in project_path (stdio mode) or pass its contents in pcb_text + filename (or upload_b64 for .PcbDoc/.zip).
Inputs: filename, pcb_text, sample_id, upload_b64, +3 more.
calligraphy_verify_stablecoin_paymentVerify On-Chain Stablecoin PaymentAIdempotentInspect
Submit an on-chain USDT or USDC transaction hash (tx_hash) sent to the job's unique watch-only deposit_address on base, arbitrum, polygon, or ethereum to receive a private HMAC-SHA256 payment receipt (receipt_hmac_sha256) and immediately unlock calligraphy_download_fab_bundle with zero human browser intervention.
Inputs: job_id (required), tx_hash (required), token, network.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
The local analysis tools (analyze_kicad_pcb, analyze_specctra_dsn, calculate_pcb_trace_impedance, audit_pcb_dfm_rules) are cleanly distinct, but calligraphy_route_pcb is explicitly declared an alias of calligraphy_compile_board, so two tools do the same thing. The payment surface is also crowded: a Stripe URL returned by compile, calligraphy_create_coinbase_checkout, and calligraphy_verify_stablecoin_payment overlap in purpose, forcing an agent to reason about which checkout path to take. Descriptions are verbose enough to recover, but the boundaries are not self-evident.
Everything is snake_case with a verb_noun shape, which is easy to read. The deviation is the two-family split: local utilities use bare verb prefixes (analyze_, calculate_, audit_) while the commercial flow is uniformly calligraphy_-prefixed, and calligraphy_route_pcb does not match the verb used by its own alias target compile_board. Minor, but it slightly breaks the predictable pattern.
Fifteen tools is a reasonable scope for a PCB analysis plus fab-compile/payment pipeline, and each of the analysis and lifecycle tools earns its place. The one redundant slot is the route_pcb alias, which inflates the count without adding capability.
The commercial lifecycle is well covered end to end: quote, compile, job status, three payment routes, bundle download, B2B invoice, vault purge, and rate-limit escalation, plus local KiCad/Specctra analysis, impedance, and DFM checks. Gaps are minor — no explicit cancel/refund or re-issue tool, and local analysis supports only KiCad and Specctra despite upload support for Altium/Allegro/tscircuit. Agents can work around these, but they are genuine dead ends.
Maintenance
Related MCP Connectors
Design, route, check, review and export manufacturable PCBs from plain language; KiCad import.
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Amateur radio MCP server with band plans, EIRP, cable loss, antenna gains, and more
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP servers for KiCad schematic, PCB, symbol, footprint, and project automation, enabling AI-assisted electronic design via tools for read/write, analysis, and exports.109349 PyPI16GPL 3.0
- AlicenseBqualityDmaintenanceMCP server exposing KiCad PCB Editor functionality via IPC API.4159 PyPI1MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that exposes KiCad PCB design automation tools to AI assistants and other MCP clients.-
- AlicenseBqualityDmaintenanceMCP server that analyzes, reviews, and exports KiCad 9 designs, with live board editing via IPC and a built-in design-review engine.471MIT





