Skip to main content

EasyGerber: AI PCB design, layout, and routing

io.github.EasyGerber/easygerberVersion 0.1.1

AI PCB design, layout, and routing

Status

Responds245 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 14:37 UTC
Latency
245 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 21:12 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://www.easygerber.com/api/mcpResponds245 ms
No sign-in

Claude Code

claude mcp add --transport http easygerber https://www.easygerber.com/api/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: easygerber
Remote MCP server URL: https://www.easygerber.com/api/mcp

Cursor

{
  "mcpServers": {
    "easygerber": {
      "url": "https://www.easygerber.com/api/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"easygerber","type":"http","url":"https://www.easygerber.com/api/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

16 tools

Tools of EasyGerber: AI PCB design, layout, and routing
Read-only
Idempotent
Open world
check_board_layoutChecks a saved PCB layout at expectedRevision for manufacturing or layout review. Its geometry and applied electrical requirements must both be current. A missing or stale layout must complete first: follow the job a save started with get_generation, or call generate_layout when none is active. electrical_requirements_not_applied also requires a completed regeneration before checking or manufacturing export. Reuses a current assessment or computes and saves one, which requires write access and normal compute capacity. If the board changes during the check, read get_board again. Returns hasBlockingIssues and actionable blockingIssues; no numeric score or deductions.NoNoYesNo
create_boardCreates a saved schematic from published catalog parts and verified pins, and starts its PCB layout automatically. Supply a fresh private boardRef, name, requestId and intent. To make boardRef, generate 32 random bytes locally, encode as unpadded base64url and prepend egbr1_. The server uses the connected account when available; otherwise it establishes private board access automatically. Keep this SAME boardRef for all later reads, edits, status and export calls. Store it in this conversation or supported private execution state before submitting; do not discard it between isolated calls. Identical retries with the same boardRef, requestId and arguments recover the original creation. Do not use a new reference to recover existing work. Return the complete private board link to this user after creation so later turns can continue it; never log private references or put them in source files. Omit boardEdits unless physical customization is requested; server defaults supply settings, footprints, models and manufacturing limits. Account boards are personal unless organizationId is specified. The result includes generation, the layout job this save started: follow it with get_generation using the same boardRef, without calling generate_layout. If layoutNotStarted is returned instead, the board is saved but its layout did not start; call generate_layout after any stated wait. A completed layout saves a new revision, so use boardRevision from get_generation for later edits. Use update_board for existing work. Thin intent format: each parts entry is an array of strings [id, dbId, value], with an optional fourth designator. Choose id as the design-local part ID; copy dbId from the catalog result's id; value is the required value/display label. Omit the fourth designator when it matches id. Each connections entry is {net, class, pins}; class is power, signal, or ground. Each pins entry is [partId, padId]: use the design-local part ID and copy padId from the catalog result's NoNoYesNo
delete_boardPermanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership or organization owner/admin access; guest boards are unsupported. Read get_board first and pass its current revision. Deletion cancels active generation jobs and cannot be undone. A revision conflict requires reading the board again. Missing, already deleted or inaccessible boards return the same not_found error; this does not confirm that an earlier request succeeded. No requestId or replay receipt is supported.YesNoYesNo
export_boardCreates a stable private download of a saved board as a manufacturing ZIP or editable .egb project backup. Read get_board for expectedRevision. Use format egb directly for project backups, including empty or incomplete projects and unapplied geometry or electrical changes; no layout generation or check is required. Manufacturing ZIPs require a current saved layout with applied electrical requirements; generate and wait for completion when needed, then read the new revision. New exports require current board access. Issued download links have no automatic expiry and retain this exact export after board edits, deletion, guest claim or cleanup. Only explicit download-link revocation or deletion of the exported file ends access. Keep each complete private URL unchanged, including its fragment; anyone with it can download the file.NoNoNoNo
generate_layoutStarts one durable layout job for boardRef at expectedRevision and returns generation.id and generation.status without waiting. create_board and update_board start layout automatically, so call this only to retry: after a failed or cancelled layout, after a save returned layoutNotStarted, or to regenerate a current layout. If a layout of that same revision is already running or was just saved, returns that job instead of starting another. Use the latest revision from get_generation or get_board. Read status with get_generation using the same boardRef; do not regenerate to inspect progress. Successful completion replaces the saved layout. A requestId supports IDENTICAL retries only; changed arguments need a new requestId. revision_conflict requires get_board; board_busy identifies the existing job to poll. Subject to normal compute capacity and board complexity limits, without AI credits.YesNoYesNo
get_boardReads the current revision, thin schematic, supported settings, physical context, layout freshness and latest layout job from one saved-state snapshot. Reading never saves or moves a board: a private board has ownerUserId null and a private link as url, while a board in an account has an owner and a /boards/ url; use save_board_to_account to keep a private board in the connected account. Use the same boardRef before editing, checking or exporting. A completed older job does not imply a current layout. Use get_generation with boardRef for status, never generate_layout as a status probe. includePreview optionally adds a saved-layout image; previewing does not change the board design or revision. Normal compute capacity limits apply.NoYesYesNo
get_generationReads stored layout generation status using the same boardRef. Omit generationId to read the active/latest layout job; supply it only to inspect that exact job. Returns generation:null if no layout job exists. While queued or running, wait pollAfterSeconds; stop polling at completed, failed or cancelled. boardRevision is the current saved revision, which a completed layout advances; use it for the next edit, check or export, or read get_board for the saved layout. Never call generate_layout to inspect status. Polling does not save private work to an account.NoYesYesNo
get_partReturns a published catalog part and verified pins. Skip this call when search_parts already supplied the needed pins and facts. Use the selected catalog result’s id; returned pins[].number is the padId used in board connections. Use search_parts to find alternatives. factQuery and factOffset select or page cached datasheet facts. An optional boardRef applies that board’s strict Part List restriction, when enabled.NoYesYesNo
get_profileReturns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. Public catalog browsing and creating a new board do not require probing account identity.NoYesYesNo
list_boardsLists accessible boards with their private boardRef, most recently updated first. A supplied boardRef selects only that board. Account access returns personal boards unless organizationId is specified. Without access, returns guidance, not a claim that an account has no boards. Continue existing work using its original boardRef or owning account. Continue with nextOffset until null, then use get_board for the selected board.NoYesYesNo
list_organizationsReturns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_board for organization work; omit organizationId for personal boards.NoYesYesNo
save_board_to_accountSaves a private board into the connected EasyGerber account when the user asks to keep it there. Requires account authorization; an unauthenticated call requests sign-in. Supply the same boardRef. The board must have no layout running: wait for get_generation to finish, then retry. Saving copies the design and its layout into a personal account board and retires the anonymous access, which cannot be undone. The result is that account board, with a new id and revision to use from now on. Keep the same boardRef; after a save it works only while this account is connected. A board already in the account is returned unchanged.YesNoYesNo
search_partsSearches published catalog components. Supply known catalog filters such as category and exact package. Use query for the remaining terms or exact MPN. Put electrical bounds and applicable test conditions in requirements. Use forwardVoltage for LED Vf. Use candidateIds to check previously found parts under the same constraints. Reuse a qualified candidate’s catalog ID. On mismatch, check the next candidate. For unknown, verify the exact part’s datasheet at the required conditions or leave the requirement unresolved. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and facts; call get_part only when the selected candidate lacks needed pins or facts. factQuery selects cached facts for the matching candidates. Include boardRef on every lookup for a board with a strict Part List. If results are unrelated, make at most two retries with simpler text, preserving every required filter, specification and board restriction. If none qualifies, report the unmet requirement.NoYesYesNo
stop_generationCancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already cancelled job retains its terminal status. Cancellation cannot be undone; starting again requires a new job. It can update the saved board revision, so read get_board before further edits. A later job is unaffected.YesNoYesNo
submit_feedbackSends a bug report, feature request or general feedback to EasyGerber only when the user asks or agrees to report it. Send only the approved message; never automatically attach private board content, raw diagnostics, transcripts or exports. No account, board or guest session is required. A connected account attributes the report to that account; otherwise an optional existing guestToken attributes it to that guest. Reuse requestId with the identical category and message on retries. Returns a submission receipt, without promising a response. Account feedback is limited to 10/hour and 50/day; guest and anonymous feedback share those limits by network.NoNoYesNo
update_boardEdits a saved board at expectedRevision; supply at least one of name, intent or boardEdits. Read get_board first. Omitted fields are preserved; schematic edits require the complete replacement thin intent, while boardEdits is a physical patch. Schematic changes discard the old layout and physical changes make it stale; either way this save starts a new layout automatically and returns it as generation. Follow it with get_generation, without calling generate_layout. An edit made while a layout is running replaces that job with one for the edited board. If layoutNotStarted is returned instead, the edit is saved but its layout did not start; call generate_layout after any stated wait. A stale expectedRevision requires a fresh get_board; a completed layout also advances the revision. Thin intent format: each parts entry is an array of strings [id, dbId, value], with an optional fourth designator. Choose id as the design-local part ID; copy dbId from the catalog result's id; value is the required value/display label. Omit the fourth designator when it matches id. Each connections entry is {net, class, pins}; class is power, signal, or ground. Each pins entry is [partId, padId]: use the design-local part ID and copy padId from the catalog result's pins[].number, both as strings. Optional pinCurrentRequirements uses those same partId and padId identities with requiredCurrentA in amperes and direction into, out, or bidirectional relative to the net. Omit the list to retain existing values; a supplied list replaces it, and [] clears it. If validation rejects the proposal, preserve the schematic and valid catalog parts, correct the returned detailed issues, and keep the same boardRef. Use a new requestId when input changes; reuse the same requestId and arguments for an unchanged retry. Research again only when an issue needs missing part or pin information.YesNoYesNo

Details

Registry status
Active
Published
Oct 17, 2026
Updated
Oct 17, 2026
Categories (suggested)
Design and mediaSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing