Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
EasyGerber: AI PCB design, layout, and routing is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
AI PCB design, layout, and routing
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http easygerber-pcb-design-and-layout-mcp https://www.easygerber.com/api/mcp
# 2 — ask your agent for something these tools do
# submit_feedback, get_profile, list_organizations and 14 more
EasyGerber: AI PCB design, layout, and routing costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http easygerber-pcb-design-and-layout-mcp https://www.easygerber.com/api/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
17 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Sends 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | yes | bug reports a problem; feature_request proposes a change; general shares other EasyGerber feedback. |
| message | string | yes | User-approved feedback, 10–2000 Unicode characters after trimming. Include only what the user agreed to send; do not automatically include private board content, credentials, transcripts or diagnostic |
| requestId | string | yes | Unique UUID for this report. Reuse it with the identical category and message after an uncertain result; use a new UUID for a different report. |
| guestToken | string | no | Optional existing guest-session capability for attribution when no account is connected. Omit for anonymous or account feedback; never start a session solely to submit feedback or print this token. In |
Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session instead of probing account identity.
No parameter schema on file.
Returns 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.
No parameter schema on file.
Searches published catalog components to find IDs for board authoring or get_part. Supplied filters apply together; query ranks matching candidates, while factQuery only selects cached facts for those candidates. An optional boardId applies that board’s strict Part List restriction, when enabled. Check candidates against the requested component type and specifications. If results are unrelated, ma
| Parameter | Type | Required | Notes |
|---|---|---|---|
| boardId | string | no | Optional saved board ID. Enforces that board’s strict Part List when enabled; omit to use the full published catalog. |
| category | string | no | Exact catalog category; omit when unknown. |
| subcategory | string | no | Exact catalog subcategory, such as chip_resistor, mlcc, or ldo. |
| package | string | no | Exact catalog label; use query for package families. |
| mountingType | string | no | smt: surface mount; tht: through-hole; mixed: both. |
| query | string | no | PCB selection terms: MPN, manufacturer, description or package family. For exact MPNs omit unverified categories unless user-required. Preserve explicit filters and Part Lists; factQuery does not sele |
| factQuery | string | no | Cached-fact terms only; requires query. Omit for filter-only searches. It never changes which parts match. |
| limit | integer | no | Maximum catalog candidates to return, from 1 to 20; defaults to 3. |
| jlcpcbBasic | boolean | no | Restrict to JLCPCB Basic parts when true; false or omission leaves this filter unset. |
| resistance | number | no | Exact resistance in ohms (10000 = 10 kΩ). |
| capacitance | number | no | Exact capacitance in farads (1e-7 = 100 nF). |
| inductance | number | no | Exact inductance in henries (1e-6 = 1 µH). |
| voltageRating | number | no | Exact voltage rating in volts. |
| frequency | number | no | Exact frequency in hertz (8e6 = 8 MHz). |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Returns a published catalog part, its catalog ID and verified pad IDs. Use a catalog ID from search_parts when needed pins or facts are missing; use search_parts to find alternatives. factQuery and factOffset select or page cached datasheet facts. An optional boardId applies that board’s strict Part List restriction, when enabled. Guest access uses guestToken and excludes organization access.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Exact published catalog ID returned by search_parts. |
| boardId | string | no | Optional saved board ID. Enforces that board’s strict Part List when enabled; omit to use the full published catalog. |
| factQuery | string | no | Terms selecting relevant cached datasheet facts for this part; omit for the default fact bundle. |
| factOffset | integer | no | Zero-based fact offset; defaults to 0. Continue with datasheetFacts.nextFactOffset and the same factQuery. |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that session’s board. Continue with nextOffset until null, then use get_board for a selected board’s editable state. Guest access uses guestToken and excludes organization access.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| organizationId | string | no | Organization ID from list_organizations. Omit for personal account boards; guest sessions cannot use organizations. |
| limit | integer | no | Maximum boards to return; defaults to 20. |
| offset | integer | no | Zero-based offset; defaults to 0. Continue with returned nextOffset; null means no further page. |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation to poll an active job and check_board_layout to refresh validation. includePreview optionally adds a saved-layout image. Account cache misses render and store a private image; guest previews render per request without an image cache. Previe
| Parameter | Type | Required | Notes |
|---|---|---|---|
| boardId | string | yes | Saved board ID from list_boards, create_board, claim_guest_board, or an account board URL. Must be accessible to the current account or guest session. |
| includePreview | boolean | no | Include an image of the current saved layout; omitted or false skips rendering. Returns preview: null when no current layout is available. |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Creates a new saved schematic from published catalog parts, verified pins and supported physical settings. Account boards are personal unless organizationId is specified; a guest session supports one board. Use update_board for an existing board and generate_layout after creation to produce its PCB layout. A unique requestId identifies the operation and supports identical retries. Server hydration
| Parameter | Type | Required | Notes |
|---|---|---|---|
| organizationId | string | no | Organization ID from list_organizations. Omit for personal account boards; guest sessions cannot use organizations. |
| requestId | string | yes | New UUID for this operation. Reuse it with identical arguments when retrying an uncertain result; use a new UUID for a different operation. |
| name | string | yes | Display name for the board. |
| intent | object | yes | Complete initial schematic using published catalog IDs and verified pins. Parts and connections use the thin intent format described by this tool. |
| boardEdits | object | no | Physical patch; omitted fields retain existing values. settings changes only supplied app-supported settings (dimensions in mm). outline replaces the outline with a library choice or complete generate |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Edits 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 can discard an old layout; physical changes can make it stale. Use generate_layout if a current layout is needed afterward. A unique reque
| Parameter | Type | Required | Notes |
|---|---|---|---|
| boardId | string | yes | Saved board ID from list_boards, create_board, claim_guest_board, or an account board URL. Must be accessible to the current account or guest session. |
| expectedRevision | integer | yes | Saved revision returned by get_board. A mismatch returns revision_conflict; read the board again before preparing a new operation. |
| requestId | string | yes | New UUID for this operation. Reuse it with identical arguments when retrying an uncertain result; use a new UUID for a different operation. |
| name | string | no | Display name for the board. |
| intent | object | no | Complete replacement schematic, including every part and connection to retain. Omit for name-only or physical-only edits. |
| boardEdits | object | no | Physical patch; omitted fields retain existing values. settings changes only supplied app-supported settings (dimensions in mm). outline replaces the outline with a library choice or complete generate |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Permanently 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| boardId | string | yes | Saved account board ID from list_boards or get_board. Deletion requires personal ownership or organization owner/admin access. |
| expectedRevision | integer | yes | Saved revision returned by get_board. A mismatch returns revision_conflict; read the board again before preparing a new operation. |
Starts a durable layout job for a saved board at expectedRevision and returns without waiting for completion. Use after creating or editing a schematic; poll its exact generation ID with get_generation. Successful completion replaces the saved layout. A unique requestId supports identical retries. revision_conflict requires a fresh get_board; board_busy identifies an already active job to poll. Su
| Parameter | Type | Required | Notes |
|---|---|---|---|
| boardId | string | yes | Saved board ID from list_boards, create_board, claim_guest_board, or an account board URL. Must be accessible to the current account or guest session. |
| expectedRevision | integer | yes | Saved revision returned by get_board. A mismatch returns revision_conflict; read the board again before preparing a new operation. |
| requestId | string | yes | New UUID for this operation. Reuse it with identical arguments when retrying an uncertain result; use a new UUID for a different operation. |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop polling at completed, failed or cancelled; read get_board after completion before editing, checking or exporting. Use stop_generation to cancel rather than starting a replacement job. Guest access uses guestToken and excludes organization ac
| Parameter | Type | Required | Notes |
|---|---|---|---|
| boardId | string | yes | Saved board ID from list_boards, create_board, claim_guest_board, or an account board URL. Must be accessible to the current account or guest session. |
| generationId | string | yes | Layout generation ID returned by generate_layout for this same board. Use the exact job ID when polling or stopping it. |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Cancels 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. Guest access uses guestTo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| boardId | string | yes | Saved board ID from list_boards, create_board, claim_guest_board, or an account board URL. Must be accessible to the current account or guest session. |
| generationId | string | yes | Layout generation ID returned by generate_layout for this same board. Use the exact job ID when polling or stopping it. |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. 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. G
| Parameter | Type | Required | Notes |
|---|---|---|---|
| boardId | string | yes | Saved board ID from list_boards, create_board, claim_guest_board, or an account board URL. Must be accessible to the current account or guest session. |
| expectedRevision | integer | yes | Saved revision returned by get_board. A mismatch returns revision_conflict; read the board again before preparing a new operation. |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Creates a private download of a fresh saved layout as a manufacturing ZIP or editable .egb file. Read get_board for expectedRevision; a missing or stale layout requires generate_layout and completion first. Inherited licensing requires changeNote. Each call creates a download artifact; links expire in 15 minutes. Guest access uses guestToken and excludes organization access.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| boardId | string | yes | Accessible saved board ID from get_board, create_board, or list_boards. |
| expectedRevision | integer | yes | Revision from get_board. A mismatch returns revision_conflict; read the board again before exporting. |
| format | string | yes | manufacturing: ZIP with Gerber, drill, BOM and placement files. egb: editable EasyGerber board file. |
| changeNote | string | no | Description of modifications, required when get_board returns inherited licensing. Added to the exported license notices. |
| guestToken | string | no | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
Creates a private session for one board without an account; use its guestToken with create_board to create the board. Reuse this task’s existing guest session or authorized account when available. Use claim_guest_board to save an existing guest board after sign-in. Returns guestToken, viewerUrl, limits and expiresAt; a null expiresAt means no scheduled expiration. Edits, layouts, checks, previews
No parameter schema on file.
Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the connected account without guestToken. Requires account authorization and an idle board. The transfer preserves the design, returns a new account board ID and retires guest access. Within 24 hours, repeating a successful claim with the same toke
| Parameter | Type | Required | Notes |
|---|---|---|---|
| guestToken | string | yes | Private guest-session capability returned by start_guest_session. Never print it or save it in a repository. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install EasyGerber: AI PCB design, layout, and routing or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| submit_feedback | state-write | state-write: declares readOnlyHint: false |
| get_profile | no tags | |
| list_organizations | no tags | |
| search_parts | no tags | |
| get_part | no tags | |
| list_boards | no tags | |
| get_board | state-write | state-write: declares readOnlyHint: false |
| create_board | state-write | state-write: declares readOnlyHint: false |
| update_board | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| delete_board | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| generate_layout | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| get_generation | no tags | |
| stop_generation | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| check_board_layout | state-write | state-write: declares readOnlyHint: false |
| export_board | untrusted-inputstate-write | untrusted-input: keyword "download"; state-write: declares readOnlyHint: false |
| start_guest_session | state-write | state-write: declares readOnlyHint: false |
| claim_guest_board | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.1.1.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish EasyGerber: AI PCB design, layout, and routing can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.