PCB Forge MCP
Provides tools for validating and exporting KiCad electronic design projects through kicad-cli, running ERC/DRC checks, verifying netlists, and generating manufacturing outputs such as Gerber files, drill files, STEP models and BOMs.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PCB Forge MCPcreate a workspace and generate a KiCad project for a 3.3V LED blinker"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PCB Forge
Sistema multiagente para transformar requisitos en lenguaje natural en proyectos electrónicos KiCad, con circuit-synth como motor de diseño y MCP como interfaz de herramientas.
Estado
Fundación inicial del repositorio. La estructura y los contratos básicos están implementados; la integración real con versiones concretas de circuit-synth y KiCad debe verificarse en el entorno destino antes de considerar los proyectos aptos para fabricación.
Related MCP server: Coppermind
Arquitectura
Servidor MCP: publica herramientas de generación, validación y exportación.
Orquestador: coordina el ciclo diseño → generación → validación → corrección, con un máximo configurable de cinco iteraciones.
Agentes: diseño, generación, validación y corrección; cada agente tiene responsabilidades acotadas.
Integraciones: adaptadores para circuit-synth y kicad-cli, sin acoplar la lógica central a sus APIs.
Workspace: cada proyecto vive en un directorio controlado y se valida para impedir rutas fuera de la raíz.
Validación: reúne diagnósticos estructurados; la aprobación de fabricación requiere comprobaciones reales de ERC/DRC y revisión humana.
Requisitos
Python 3.10 o posterior.
KiCad 7 o posterior para las comprobaciones y exportaciones CLI.
circuit-synth instalado en el entorno elegido.
Un cliente MCP compatible para consumir las herramientas.
Instalación de desarrollo
Crear un entorno virtual.
Instalar el paquete y dependencias: `pip install -e ".[dev]"`.
Copiar `.env.example` a `.env` y configurar rutas si hace falta.
Ejecutar pruebas: `pytest`.
Iniciar el servidor MCP: `pcb-forge-mcp`.
El servidor no debe ejecutarse con privilegios elevados. El código generado por modelos no se ejecuta sin límites: utiliza un entorno aislado, permisos mínimos y límites de tiempo antes de habilitar generación automática en producción.
Herramientas MCP iniciales
`pcb_create_workspace`: crea un workspace con nombre seguro.
`pcb_generate_project`: ejecuta el flujo de diseño con los adaptadores configurados.
`pcb_validate_project`: ejecuta las validaciones disponibles.
`pcb_export_manufacturing`: exporta solo cuando el proyecto pasa las validaciones requeridas.
Plan por fases
Fundación, contratos, pruebas y CI.
Integración verificable con circuit-synth.
Integración con KiCad CLI: ERC, DRC y comprobación de netlist.
Corrección limitada con diagnósticos reproducibles.
Exportación Gerber, taladros, STEP y BOM.
Pruebas de extremo a extremo con diseños de referencia y revisión de fabricación.
Consulta `docs/ARCHITECTURE.md`, `docs/SECURITY.md` y `docs/INTEGRATION.md`.
Aviso de fabricación
Un resultado generado automáticamente no se considera listo para fabricar hasta que los chequeos de ERC/DRC, huellas, reglas del fabricante y archivos de salida hayan sido revisados. No se promete compatibilidad universal con fabricantes.
Available Tools
4 toolspcb_create_workspaceC
Create a project workspace using a safe project name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but only gestures at it via "safe project name" without defining what makes a name safe, whether the call fails on an existing name, what permissions are required, or what is returned. The mutation semantics of workspace creation remain opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single efficient sentence with the action front-loaded and no wasted words. Its brevity, however, comes at the cost of under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and a wholly undocumented required parameter, the description leaves major gaps an agent would need to call it correctly. It states the action but not the constraints, prerequisites, or result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single required parameter "name" has no schema description. The phrase "safe project name" hints at a naming constraint but gives no format, character rules, length limits, or examples, so it does not compensate for the undocumented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ("Create") with a specific resource ("project workspace"), which is clear. It does not, however, differentiate the tool from the sibling pcb_generate_project, leaving an agent to guess whether creating a workspace and generating a project are distinct actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus pcb_generate_project, pcb_validate_project, or pcb_export_manufacturing, and no prerequisites or exclusions are stated. An agent must infer the workflow position from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcb_export_manufacturingB
Export Gerber files after validation; human review is still required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
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 add one genuinely valuable behavioral fact: human review is still required, so the agent should not treat the export as a final approved artifact. It omits other important traits such as where files are written, whether the export is repeatable/overwriting, and required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the action and the downstream caution front-loaded and no filler. It is efficiently sized, though the semicolon clause could have been spent on parameter clarification instead.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only source of behavioral detail, and it covers the validation prerequisite and human-review requirement. It still leaves open what the required 'name' means and what the caller receives on success, which matters for a file-producing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'name' has 0% schema description coverage, and the description says nothing about what 'name' identifies (project name? workspace? output filename?). With one undocumented required parameter, the description fails to compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Export Gerber files'), so an agent knows exactly what artifact this produces and can distinguish it from the sibling validation/generation tools. It stops short of explicitly contrasting with pcb_validate_project, but the output artifact is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'after validation' implies a prerequisite ordering relative to pcb_validate_project, which is useful sequencing guidance. However, it never names the alternative tool or states what to do when validation has not passed, leaving the workflow conditional implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcb_generate_projectC
Generate a circuit project and run configured validation tools.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not disclose what 'generate' produces, where the project is written, whether validation failures abort generation, whether the operation is idempotent or destructive, or what permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is short enough to be efficient, though the second clause about validation tools adds ambiguity rather than value given the sibling tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a creation/mutation tool with no annotations, no output schema, and fully undocumented parameters. For that complexity profile the description should explain effects, prerequisites, and parameter meaning, and it covers none of them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and neither parameter has a description. The description says nothing about what 'name' means (identifier vs display name, uniqueness/format constraints) or what 'description' is used for, so it fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Generate a circuit project'. It adds a secondary behavior ('run configured validation tools') but does not distinguish the tool from the sibling pcb_validate_project, leaving some ambiguity about which tool owns validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives, no prerequisites, and no exclusions. The overlap with the sibling pcb_validate_project ('run configured validation tools') actively creates confusion rather than resolving it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcb_validate_projectC
Run configured KiCad ERC/DRC checks for an existing workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Checks' hints at a read-only validation pass, but it doesn't say whether KiCad is invoked externally, whether a report artifact is written, whether configured rule sets are required, or how long it takes — all material for a process-running tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, zero filler, and the purpose is front-loaded. It is efficient but borders on under-specified rather than trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and an undocumented parameter, the description should explain what comes back (pass/fail status, violation list, report location) and what failure looks like. None of that is present, leaving an agent unable to predict behavior beyond the one-line purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter 'name', and the description only indirectly implies it identifies the existing workspace. It never states the expected identifier format or whether it is a workspace name vs. path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Run'), a specific resource ('configured KiCad ERC/DRC checks'), and a scope ('for an existing workspace'). It implicitly distinguishes itself from siblings like pcb_generate_project or pcb_create_workspace by operating on an existing workspace, though it never names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'For an existing workspace' implies the prerequisite that the workspace must already exist, but there is no explicit when-to-use vs. when-not guidance and no sibling is referenced. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
pcb_create_workspace - First observed
pcb_export_manufacturing - First observed
pcb_generate_project - First observed
pcb_validate_project
TDQS
Scored across 4 tools
Each tool targets a distinct stage of the PCB workflow (workspace creation, project generation, validation, export). There is mild overlap between pcb_generate_project (which also runs validation tools) and pcb_validate_project, but the descriptions clarify that one creates+validates while the other re-checks an existing workspace.
All tools share the pcb_ prefix and a consistent verb_noun pattern: create_workspace, generate_project, validate_project, export_manufacturing. The convention is uniform and predictable throughout.
Four tools map cleanly onto a single linear pipeline and each earns its place. The set is somewhat thin but well-scoped rather than padded or redundant.
The create→generate→validate→export lifecycle is covered, but there is no way to list or inspect existing workspaces, modify a project, or delete one. These are notable gaps that could force agents into dead ends when revisiting prior work.
Maintenance
Related MCP Connectors
Design and revise PCBs from plain language, track jobs, and retrieve design artifacts.
Turn datasheets into source-backed JSON contracts, pinout matrices, and KiCad CAD for AI agents.
11AI electronics blueprint generator — BOM, wiring, firmware, renders for Arduino/ESP32/RPi.
EasyGerber brings AI printed circuit board (PCB) design, layout, and routing to MCP-compatible assistants. Describe a circuit or start from firmware pin assignments, search published electronic components, and build schematics using catalog parts with their footprints and available 3D models. Create and revise boards, generate layouts with automatic component placement and routing, inspect previews, and check saved layouts for blocking design issues. Export manufacturing ZIPs containing Gerber and drill files, a bill of materials, and component placement data, or download an editable EasyGerber (.egb) file. Start without signing up. Your agent creates a private guest session for one board, including catalog access, edits, layout, checks, previews, and exports. Sign in through OAuth to work with saved account boards, access permitted organization boards, or save the guest design to your account. Guest support depends on your MCP client and installed integration.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables natural language interaction with KiCad projects, schematics, and PCBs, supporting project management, design rule checking, netlist extraction, and datasheet RAG search.2MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to design PCBs in KiCAD through natural language, with transactional preview-verify-commit workflow, undo/redo, and an engineering knowledge base.141MIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language control of KiCad PCB design software through Claude Desktop, automating project creation, design rule checks, component management, export, and cost estimation.4 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with KiCAD for PCB design automation. Users can design PCBs using natural language, including component placement, routing, checks, and export.35 npmMIT