Autonomous multi-layer PCB routing, KiCad 9 DRC/DFM verification & IPC-2141A impedance MCP server.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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`).
Raw CAD file contents (.kicad_pcb, .dsn, .ato, .tsx, .xml) for remote HTTP MCP calls
Optional built-in sample board ID ('2l_rp2040', '2l_stickhub', '4l_carrier')
Base64-encoded CAD file or .zip bundle for remote HTTP MCP calls
Local 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.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http vibe-hardware-mcp https://calligraphyeda.com/api/v1/mcp
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`).
| Argument | Type | Description |
|---|---|---|
| filename | string | |
| pcb_text | string | Raw CAD file contents (.kicad_pcb, .dsn, .ato, .tsx, .xml) for remote HTTP MCP calls |
| sample_id | string | Optional built-in sample board ID ('2l_rp2040', '2l_stickhub', '4l_carrier') |
| upload_b64 | string | Base64-encoded CAD file or .zip bundle for remote HTTP MCP calls |
| project_path | string | Local 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_accepted | boolean | |
| requested_sku | string | |
| rush_delivery | boolean | |
| customer_email | string | |
| include_eco_pass | boolean | |
| retention_policy | string | |
| no_itar_certified | boolean | |
| export_control_certified | boolean |
{
"type": "object",
"required": [],
"properties": {
"filename": {
"type": "string",
"default": "board.kicad_pcb"
},
"pcb_text": {
"type": "string",
"description": "Raw CAD file contents (.kicad_pcb, .dsn, .ato, .tsx, .xml) for remote HTTP MCP calls"
},
"sample_id": {
"type": "string",
"description": "Optional built-in sample board ID ('2l_rp2040', '2l_stickhub', '4l_carrier')"
},
"upload_b64": {
"type": "string",
"description": "Base64-encoded CAD file or .zip bundle for remote HTTP MCP calls"
},
"project_path": {
"type": "string",
"description": "Local 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_accepted": {
"type": "boolean",
"default": true
},
"requested_sku": {
"enum": [
"vibe_micro",
"basic_2l",
"intro_trial",
"dfm_fix",
"route_3d",
"premium_hs",
"turnkey_full"
],
"type": "string",
"default": "route_3d"
},
"rush_delivery": {
"type": "boolean",
"default": false
},
"customer_email": {
"type": "string",
"default": "[email protected]"
},
"include_eco_pass": {
"type": "boolean",
"default": false
},
"retention_policy": {
"enum": [
"auto_purge_on_download",
"expire_24h"
],
"type": "string",
"default": "auto_purge_on_download"
},
"no_itar_certified": {
"type": "boolean",
"default": true
},
"export_control_certified": {
"type": "boolean",
"default": true
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| job_id* | string | Job ID returned by calligraphy_compile_board. |
| network | string | |
| currency | string |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "Job ID returned by calligraphy_compile_board."
},
"network": {
"type": "string",
"default": "base"
},
"currency": {
"type": "string",
"default": "USDC"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| job_id* | string | Job ID returned by calligraphy_compile_board |
| output_dir | string | Local directory to save unlocked files (stdio CLI mode) |
| include_bundle_b64 | boolean | Set True over remote HTTP to inline the base64 .zip bytes and trigger auto-purge immediately; defaults to False so the returned download_zip_url remains active for browser/curl download. |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "Job ID returned by calligraphy_compile_board"
},
"output_dir": {
"type": "string",
"description": "Local directory to save unlocked files (stdio CLI mode)"
},
"include_bundle_b64": {
"type": "boolean",
"default": false,
"description": "Set True over remote HTTP to inline the base64 .zip bytes and trigger auto-purge immediately; defaults to False so the returned download_zip_url remains active for browser/curl download."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| job_id* | string | Job ID returned by calligraphy_compile_board |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "Job ID returned by calligraphy_compile_board"
}
}
}List the 55 / 55 conquered open-source PCB benchmark boards (20/20 PCBench Tier T Frontier + 13/13 Tier D Torture + 22/22 Multi-ECAD — 100.0% routed, 0 native KiCad 9 copper DRC violations) and available 1-click sample demo IDs ('2l_rp2040', '2l_stickhub', '4l_carrier').
No arguments.
{
"type": "object",
"properties": {}
}Look up a Calligraphy EDA job and generate a B2B Tax Invoice & Chain-of-Custody Certificate with custom PO number and company name.
| Argument | Type | Description |
|---|---|---|
| job_id* | string | Job ID returned by calligraphy_compile_board |
| po_number | string | |
| company_name | string | |
| customer_email | string |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "Job ID returned by calligraphy_compile_board"
},
"po_number": {
"type": "string",
"default": ""
},
"company_name": {
"type": "string",
"default": ""
},
"customer_email": {
"type": "string",
"default": "[email protected]"
}
}
}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 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`).
| Argument | Type | Description |
|---|---|---|
| filename | string | |
| pcb_text | string | Raw CAD file contents (.kicad_pcb, .dsn, .ato, .tsx, .xml) for remote HTTP MCP calls |
| sample_id | string | Optional built-in sample board ID ('2l_rp2040', '2l_stickhub', '4l_carrier') |
| upload_b64 | string | Base64-encoded CAD file or .zip bundle for remote HTTP MCP calls |
| project_path | string | Local 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. |
| requested_sku | string | |
| rush_delivery | boolean | +35% Instant <45m Enclave Rush Turnaround |
Immediately shred all enclave CAD and synthesis artifacts for job_id and return a cryptographically signed CertificateOfDestruction (zero_retention_verified=True).
| Argument | Type | Description |
|---|---|---|
| job_id* | string | Job ID to shred immediately. |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "Job ID to shred immediately."
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| reason* | string | Brief description of multi-board or team workflow |
| client_ip | string | |
| customer_email* | string | Work or agency email address |
| organization_name* | string | Company or PCB layout agency name |
| requested_daily_limit | integer |
{
"type": "object",
"required": [
"customer_email",
"organization_name",
"reason"
],
"properties": {
"reason": {
"type": "string",
"description": "Brief description of multi-board or team workflow"
},
"client_ip": {
"type": "string",
"default": "127.0.0.1"
},
"customer_email": {
"type": "string",
"description": "Work or agency email address"
},
"organization_name": {
"type": "string",
"description": "Company or PCB layout agency name"
},
"requested_daily_limit": {
"type": "integer",
"default": 25
}
}
}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 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`).
| Argument | Type | Description |
|---|---|---|
| filename | string | |
| pcb_text | string | Raw CAD file contents (.kicad_pcb, .dsn, .ato, .tsx, .xml) for remote HTTP MCP calls |
| sample_id | string | Optional built-in sample board ID ('2l_rp2040', '2l_stickhub', '4l_carrier') |
| upload_b64 | string | Base64-encoded CAD file or .zip bundle for remote HTTP MCP calls |
| project_path | string | Local 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. |
| requested_sku | string | |
| customer_email | string |
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.
| Argument | Type | Description |
|---|---|---|
| token | string | Stablecoin symbol (`USDT` or `USDC`) |
| job_id* | string | Job ID returned by calligraphy_compile_board |
| network | string | EVM settlement network (`base` recommended for near-zero gas & Coinbase treasury) |
| tx_hash* | string | 0x-prefixed 64-character hex EVM transaction hash |
{
"type": "object",
"required": [
"job_id",
"tx_hash"
],
"properties": {
"token": {
"enum": [
"USDT",
"USDC"
],
"type": "string",
"default": "USDT",
"description": "Stablecoin symbol (`USDT` or `USDC`)"
},
"job_id": {
"type": "string",
"description": "Job ID returned by calligraphy_compile_board"
},
"network": {
"enum": [
"base",
"arbitrum",
"polygon",
"ethereum"
],
"type": "string",
"default": "base",
"description": "EVM settlement network (`base` recommended for near-zero gas & Coinbase treasury)"
},
"tx_hash": {
"type": "string",
"description": "0x-prefixed 64-character hex EVM transaction hash"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 11, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.
| customer_email |
| string |
| Engineer email for 30-day ECO license matching |
| include_eco_pass | boolean | +50% 30-Day Unlimited ECO Re-Spin Pass |
{
"type": "object",
"required": [],
"properties": {
"filename": {
"type": "string",
"default": "board.kicad_pcb"
},
"pcb_text": {
"type": "string",
"description": "Raw CAD file contents (.kicad_pcb, .dsn, .ato, .tsx, .xml) for remote HTTP MCP calls"
},
"sample_id": {
"type": "string",
"description": "Optional built-in sample board ID ('2l_rp2040', '2l_stickhub', '4l_carrier')"
},
"upload_b64": {
"type": "string",
"description": "Base64-encoded CAD file or .zip bundle for remote HTTP MCP calls"
},
"project_path": {
"type": "string",
"description": "Local 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."
},
"requested_sku": {
"enum": [
"vibe_micro",
"basic_2l",
"intro_trial",
"dfm_fix",
"route_3d",
"premium_hs",
"turnkey_full"
],
"type": "string",
"default": "route_3d"
},
"rush_delivery": {
"type": "boolean",
"default": false,
"description": "+35% Instant <45m Enclave Rush Turnaround"
},
"customer_email": {
"type": "string",
"default": "[email protected]",
"description": "Engineer email for 30-day ECO license matching"
},
"include_eco_pass": {
"type": "boolean",
"default": false,
"description": "+50% 30-Day Unlimited ECO Re-Spin Pass"
}
}
}{
"type": "object",
"required": [],
"properties": {
"filename": {
"type": "string",
"default": "board.kicad_pcb"
},
"pcb_text": {
"type": "string",
"description": "Raw CAD file contents (.kicad_pcb, .dsn, .ato, .tsx, .xml) for remote HTTP MCP calls"
},
"sample_id": {
"type": "string",
"description": "Optional built-in sample board ID ('2l_rp2040', '2l_stickhub', '4l_carrier')"
},
"upload_b64": {
"type": "string",
"description": "Base64-encoded CAD file or .zip bundle for remote HTTP MCP calls"
},
"project_path": {
"type": "string",
"description": "Local 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."
},
"requested_sku": {
"enum": [
"vibe_micro",
"basic_2l",
"intro_trial",
"dfm_fix",
"route_3d",
"premium_hs",
"turnkey_full"
],
"type": "string",
"default": "route_3d"
},
"customer_email": {
"type": "string",
"default": "[email protected]"
}
}
}