Skip to main content
Glama
melo1015
by melo1015

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

  1. Crear un entorno virtual.

  2. Instalar el paquete y dependencias: `pip install -e ".[dev]"`.

  3. Copiar `.env.example` a `.env` y configurar rutas si hace falta.

  4. Ejecutar pruebas: `pytest`.

  5. 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

  1. Fundación, contratos, pruebas y CI.

  2. Integración verificable con circuit-synth.

  3. Integración con KiCad CLI: ERC, DRC y comprobación de netlist.

  4. Corrección limitada con diagnósticos reproducibles.

  5. Exportación Gerber, taladros, STEP y BOM.

  6. 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 tools
pcb_create_workspaceC

Create a project workspace using a safe project name.

NameRequiredDescriptionDefault
nameYes

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

NameRequiredDescriptionDefault
nameYes

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
nameYes
descriptionYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

NameRequiredDescriptionDefault
nameYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 4 tool updatesv0.1.0
    • First observedpcb_create_workspace
    • First observedpcb_export_manufacturing
    • First observedpcb_generate_project
    • First observedpcb_validate_project

TDQS

B3.2/5.0

Scored across 4 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness3/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language interaction with KiCad projects, schematics, and PCBs, supporting project management, design rule checking, netlist extraction, and datasheet RAG search.
    2
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI assistants to design PCBs in KiCAD through natural language, with transactional preview-verify-commit workflow, undo/redo, and an engineering knowledge base.
    14
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language control of KiCad PCB design software through Claude Desktop, automating project creation, design rule checks, component management, export, and cost estimation.
    4 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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 npm
    MIT