vibe-hardware-mcp
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.
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: 100.0% Routed Copper + 3D Raytraced Boards (0 Native KiCad DRC Errors)
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_pcbA
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_dsnA
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_rulesC
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_impedanceA
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_boardA
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_checkoutA
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_bundleA
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_statusA
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_boardsA
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_invoiceC
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_auditA
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_vaultA
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_whitelistB
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_pcbA
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_paymentA
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
Most tools have clearly distinct roles (local analysis vs. DFM audit vs. impedance calc vs. job/payment lifecycle), but calligraphy_route_pcb is explicitly declared an alias of calligraphy_compile_board, creating a genuine duplicate entry an agent could misselect. There is also soft overlap between calligraphy_preflight_audit and analyze_kicad_pcb (both ingest the same file modes and inspect readiness), and between calligraphy_lookup_b2b_invoice and calligraphy_get_job_status.
All names are snake_case with a verb-first construction (analyze_, calculate_, audit_, calligraphy_compile_board, calligraphy_get_job_status), and the calligraphy_ prefix cleanly marks the hosted service namespace versus local tools. Minor deviations: calligraphy_preflight_audit is noun-noun rather than verb_noun, and the 'pcb' token floats inconsistently (analyze_kicad_pcb vs audit_pcb_dfm_rules vs calligraphy_route_pcb).
15 tools sits at the top of the comfortable range and each maps to a real step: local analysis, impedance/DFM checks, compile, status, payment (Stripe/Coinbase/stablecoin), download, invoice, purge, whitelist. The only clearly unearned slot is the redundant calligraphy_route_pcb alias, making it slightly bloated for the underlying workflow.
The surface covers a full lifecycle: input parsing (KiCad, Specctra), local physics/DFM analysis, compile/route, job status polling, three payment paths (Stripe checkout URL, Coinbase/x402, stablecoin tx verification), artifact download, invoicing, and vault destruction. Only marginal gaps exist (no job cancellation/refund or multi-job listing), which agents can work around via job_id status calls.
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.109426 PyPI16GPL 3.0
- AlicenseBqualityDmaintenanceMCP server exposing KiCad PCB Editor functionality via IPC API.4147 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





