EasyGerber: AI PCB design, layout, and routing

io.github.EasyGerberPublished by GitHub account EasyGerberv0.1.1Updated Nov 1, 2026

AI PCB design, layout, and routing

The publisher's own server: Layout

VerifiedStreamable HTTPWeb executableCloud & InfrastructureDeveloper ToolsMedia & Design

Overview

AI-generated overview

Hosted EasyGerber MCP server that lets an assistant design PCBs: pick catalog parts, create and edit boards, generate layout and routing, check, and export.

What you can do
  • Search the published component catalog and read parts with verified pins
  • Create, read, update and delete saved boards, including organization boards
  • Start, poll and cancel layout generation jobs for a board
  • Check a saved layout for problems before review or export
  • Export a board as a manufacturing ZIP or editable .egb file
  • Start a guest session without an account and later claim the guest board to an account, plus send user-approved feedback
When to use it
Use it when you want an assistant to turn a circuit idea or firmware pin assignments into a PCB: selecting parts, editing the schematic, running automatic placement and routing, validating the layout, and producing manufacturing files. Guest mode lets you try one board per session before signing up.
Requirements
A remote Streamable HTTP endpoint at easygerber.com; no local install, build or API key is needed for guest use. Account boards, organization access and saving a guest board need EasyGerber OAuth sign-in; the account-only endpoint requires sign-in before tool discovery. The optional Codex installer needs Node.js 22 or newer.
Before you install
Boards are stored on EasyGerber's servers and layout, routing and scoring run there. Deleting a board is permanent, cancels active jobs, and needs separate boards:delete consent. Guest tokens and private viewer or download links grant access to the design, so keep them out of repositories, issues and logs. Account permissions, plan limits and generation billing apply.

Installation

In SourceWeft

  1. Open EasyGerber: AI PCB design, layout, and routing in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.EasyGerber%2Feasygerber/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "easygerber-ai-pcb-design-layout-and-rout": {
      "type": "http",
      "url": "https://www.easygerber.com/api/mcp"
    }
  }
}

README

EasyGerber: AI PCB design, layout, and routing

[Installer smoke tests] [npm version] [Plugin license: MIT]

This package connects coding agents to EasyGerber's hosted board-design tools. Its public files contain workflow instructions, connection metadata, icons, and a small installer. Board layout, routing, and scoring run on EasyGerber's servers.

Version 0.3.5 updates the shared workflow for the current guest experience and board controls. It explains automatic saving and opening after browser sign-in, stable private downloads of the original exported revision, and authoring part clearances, keepouts, and per-pin current requirements. Downloads still check account or guest access, and browser sign-in remains separate from the agent's OAuth connection. Installer runtime, connection URLs, OAuth scopes, deletion consent, and feedback behavior are unchanged. Hosted tools are discovered dynamically from the connected service.

Source is available in the public integration repository. The npm installer and platform plugin packages have separate client-validation processes and share the EasyGerber workflow skill and hosted service.

Start without signing up

Use https://www.easygerber.com/api/mcp for guest-first access. No EasyGerber account, OAuth grant, or API key is needed to connect, initialize, or discover tools. An agent starts a private session with start_guest_session, then uses its guestToken for catalog searches and work on that session's one board, including layout, checks, previews, and exports. Keep the token and private viewer link private.

Connection URLWhen to use itSign-in
https://www.easygerber.com/api/mcpGeneral MCP connections and guest-first directory listingsNot required for guests; required for account boards, organization access, and saving a guest board to an account
https://www.easygerber.com/api/mcp/accountSaved account boards in clients that request OAuth only during setupRequired before initialization or tool discovery; this connection does not start in guest mode

The Codex installer, OpenAI packages, and Claude package use the general URL. The Grok account connector and native Cursor and Antigravity configurations below use the account-only URL. For a new guest connection, leave authentication unset; a rejected existing account credential must be reauthorized and will not silently become a guest connection. See Try before signing up for session limits and saving a guest board.

Grok

Connect your EasyGerber account once to open and edit saved boards in consumer Grok:

  1. In Grok, open Plugins → New Connector → Custom.
  2. Name the connector EasyGerber and enter https://www.easygerber.com/api/mcp/account as the server URL.
  3. Complete EasyGerber sign-in and choose Allow access. Then ask Grok to open a saved board by its EasyGerber URL and make your requested changes.

For example: “Open this saved EasyGerber board: [your board URL]. Rename it to LED indicator and read it again to confirm the change was saved.”

This account entry requires authorization during connection setup and uses the existing EasyGerber tools and account permissions. For a new connection to the account entry, complete its normal sign-in flow. Existing published package configurations continue to use /api/mcp, which supports guest use and optional account authorization.

On October 16, 2026, consumer Grok completed consent, read an existing private saved board, saved a temporary name change, and restored the original name. Both changes were confirmed after reopening the board on the EasyGerber website. Grok Bot has not been tested. Browser 3D rendering was not verified because WebGL was unavailable in the test browser. This consumer check does not establish Grok Build's interactive OAuth or model-driven board workflow.

Cursor

The public repository includes a native .cursor-plugin/plugin.json manifest. It uses the shared EasyGerber skill and artwork and connects to https://www.easygerber.com/api/mcp/account. This entry requires account authorization before tools become available; complete EasyGerber sign-in and choose Allow access in Cursor's connection flow. Account permissions, plan limits, and generation billing still apply.

To load a checkout of the public repository in the official Cursor CLI:

sh
agent --plugin-dir .

Enter /mcp, select Easygerber (plugin), and choose Manage Server → Login to complete the browser consent flow. Then ask: “Open this saved EasyGerber board: [your board URL]. Read its current name and components.” Cursor manages the account credentials. The npm installer is not required; it configures Codex only. The root OpenAI and Claude connection configurations retain guest-capable /api/mcp access. Marketplace publication is subject to Cursor review.

Antigravity

Design and lay out PCBs in Antigravity using published components, automatic placement and routing, schematic editing, and manufacturing exports. The public repository includes native Antigravity metadata and the shared EasyGerber skill. Its MCP connection uses https://www.easygerber.com/api/mcp/account; account permissions, plan limits, and generation billing still apply.

Install the plugin from the public repository with the current Antigravity CLI and start a session:

sh
agy plugin install https://github.com/EasyGerber/easygerber-agent-pluginagy

Use /mcp to inspect the EasyGerber connection. Complete EasyGerber sign-in and choose Allow access when Antigravity requests account authorization. Then ask: “Open this saved EasyGerber board: [your board URL]. Read its current name and components.” Antigravity manages the account credentials. The npm installer is not required. Marketplace publication is subject to Antigravity review.

See the official plugin guide and MCP guide.

Cline

Cline can connect directly to EasyGerber's hosted MCP endpoint using Streamable HTTP. Use an existing Cline installation with a configured model. The npm setup installer in this repository configures Codex only; it is not the Cline installation path. No local EasyGerber server, build, or API key is needed for a new guest connection.

In the Cline IDE panel, open MCP Servers → Remote Servers, enter EasyGerber as the server name and https://www.easygerber.com/api/mcp as the server URL, choose Streamable HTTP, and select Add Server. Leave authentication unset for guest access.

Alternatively, open MCP Servers → Configure → Configure MCP Servers and merge this entry into the existing mcpServers object, preserving other servers and settings:

json
{  "mcpServers": {    "easygerber": {      "type": "streamableHttp",      "url": "https://www.easygerber.com/api/mcp",      "disabled": false,      "autoApprove": []    }  }}

The explicit streamableHttp type matters: omitting it selects legacy SSE in Cline. Keep tool approval enabled. If easygerber already exists, inspect that entry instead of replacing it or creating a duplicate.

With the current Cline CLI, the equivalent configuration command is:

sh
cline mcp add easygerber https://www.easygerber.com/api/mcp --transport http --yes

This command saves the connection; it does not by itself prove successful setup. In Cline, verify that the connection succeeds and EasyGerber tools such as search_parts, get_part, and start_guest_session appear. For an installation-only check, stop after tool discovery; do not start a guest session, create or modify a board, generate a layout, export files, or send feedback.

For later user-requested board work, guest access supports one board per session before signup. Saved account boards require EasyGerber OAuth consent. Clients that require authorization during connection setup can use the separate https://www.easygerber.com/api/mcp/account entry described above. Account authorization and board workflows need their own Cline validation; the guest connection check does not verify them.

These instructions follow the official Cline MCP guide. On October 18, 2026, Cline CLI 3.0.73 read the proposed README and wrote the native connection configuration into an empty isolated profile with tool approvals enabled. A separate check using its installed @cline/core 0.0.95 connected and discovered 17 EasyGerber tools without authentication. The agent itself did not verify discovery. No EasyGerber tool was called; OAuth and board operations were not tested.

Kiro

Install the Kiro power folder through Powers → Add Custom Power, or run kiro-cli --v3 powers install ./kiro from a local checkout of this public repository and start kiro-cli --v3. The npm installer is not needed. The power uses the guest-capable /api/mcp entry and includes the complete EasyGerber workflow in its skill.

On October 18, 2026, Kiro CLI 2.32.0 V3 imported and explicitly activated the power, read its complete skill, and discovered 17 hosted tools without EasyGerber authentication. Its native guest workflow selected published parts, created and revised a board, completed layout generation, read preview data, checked for blockers, and exported manufacturing and EasyGerber files. A separately configured /api/mcp/account connection completed OAuth and successfully saved that guest board to a personal account after resuming the same conversation; a subsequent read confirmed the account board and its saved layout. A separate browser check rendered the saved board's 3D parts.

The power's automatic mid-session OAuth did not complete in this CLI version. Use the optional account connection and resume instructions in the Kiro README for account work and guest-board saving. Complete browser consent while Kiro's local callback listener is active; an earlier account-endpoint attempt expired after about 60 seconds, separately from the power's mid-session authorization-state error. Token refresh, deletion, feedback, and keyword-only activation remain untested in Kiro. Directory approval is separate from these checks.

Gemini CLI

Install the EasyGerber extension in the current Gemini CLI. Gemini's model sign-in is separate from EasyGerber: a new EasyGerber guest connection needs no account or API key.

sh
gemini extensions install https://github.com/EasyGerber/easygerber-agent-plugingemini extensions listgemini skills listgemini mcp list

Review the extension's MCP connection and accept the normal installation prompt. Restart an existing Gemini session after installation. Confirm that the easygerber extension and shared skill are enabled and that the EasyGerber MCP connection is available. Existing user or workspace settings with the same server or skill name can take precedence over an extension; inspect them if the displayed connection or skill comes from another source.

The extension connects to https://www.easygerber.com/api/mcp using Streamable HTTP and loads the existing skills/easygerber workflow. It includes no local EasyGerber server or engine. Keep Gemini's normal tool approval prompts enabled. Try: “Use EasyGerber to create a board from the pin assignments in this firmware.” The agent selects published components and uses the guest workflow described above.

Verified with Gemini CLI 0.65.0: extension installation, shared-skill discovery, and an active MCP connection. A separate check using that installed CLI's MCP transport discovered 17 tools and completed guest-session creation, published-part search, and part lookup. This check did not exercise an interactive model session, board creation, layout, export, or account authorization.

For saved account boards or saving an existing guest board to an account, Gemini documents the interactive /mcp auth easygerber command. Complete EasyGerber consent, then resume the original task and guest-board claim if applicable. Guest discovery does not verify account OAuth, token refresh, or automatic authorization during a tool call. See Gemini's MCP authorization documentation.

The extension is distributed through this repository and its dedicated Gemini release archive. To update an installed copy, run gemini extensions update easygerber. The gemini-cli-extension repository topic enables the gallery's daily discovery process; gallery indexing is separate from publication and is not Google endorsement or distribution in the consumer Gemini app.

Devin

The public source export includes .devin-plugin/plugin.json, which connects to the guest-capable https://www.easygerber.com/api/mcp endpoint and loads the existing skills/easygerber workflow and artwork. Devin's own account sign-in is separate from EasyGerber authorization. A new EasyGerber guest connection needs no account or API key.

For local validation, use a checkout of the exported public integration repository with a signed-in Devin CLI:

sh
devin plugins install --local .devin

Start a new session after installation and use /easygerber:easygerber to load the workflow. Keep normal tool approvals enabled. For a minimal connection check, ask: “Use EasyGerber as a guest to find a published two-pin connector and confirm its catalog pins. Do not create a board.” The agent starts one guest session and uses the catalog tools; it must keep the guest token and private viewer link private.

On October 20, 2026, Devin CLI 3000.11.92 installed the generated local package and discovered its shared skill and hosted MCP configuration. A fresh native session using the Free account's available SWE-1.6 Slow model created one guest session, searched published connectors, and read a returned part to confirm its two catalog pins. No board creation, layout, export, or EasyGerber account authorization was tested. The earlier SWE-2 attempt required Pro and stopped before calling a tool; no paid upgrade was purchased. Marketplace review and listing remain separate from these native checks.

Devin documents devin mcp login easygerber for plugin OAuth connections. Account access, guest-to-account continuation, and board workflows need separate native validation; installing a plugin or listing tools does not establish those results. Marketplace submission and listing are separate from the shared package's release checks. See the official Devin plugin guide.

Codex in VS Code or the terminal

Requires Node.js 22 or newer and Codex. To install version 0.3.5:

sh
npx @easygerber/[email protected] setup --dry-runnpx @easygerber/[email protected] setupnpx @easygerber/[email protected] doctor

Setup installs ~/.agents/skills/easygerber and adds a small managed MCP table to $CODEX_HOME/config.toml (default ~/.codex/config.toml). It preserves existing TOML text and other servers. An ownership receipt lives in ~/.easygerber/agent-plugin/codex-install.json. No project files or firmware are changed. Codex is the default and only installer target; optional --client codex makes that choice explicit. All commands support unattended use, and --yes is accepted for scripts.

Restart the Codex chat/IDE after setup, then ask: “Create a small 3.3 V LED board, show a preview, and export the manufacturing files and EasyGerber file.” The agent uses your connected account or starts a guest board automatically through https://www.easygerber.com/api/mcp.

For your saved account boards or organization work, connect EasyGerber from MCP settings. If Codex CLI is installed, run:

sh
codex mcp login easygerber

The client opens the account authorization flow and stores its credentials. The managed MCP configuration requests boards:read, boards:write, boards:generate, boards:export, and offline_access, so account consent covers ordinary board workflows and renewable access, without deletion. Deletion requires separate, explicit boards:delete consent; an existing boards:write grant is insufficient. Organization permissions, account limits, and the user's consent still control account access. The installer never asks for, reads, or stores access tokens or guest capabilities. doctor checks local configuration and skill integrity; it does not prove that authentication, guest mode, or the live service works.

Try: “Use EasyGerber to create a board from the pin assignments in this firmware.” The agent reads relevant local code, selects published parts, and sends board requirements through the MCP service. Ordinary account scopes are boards:read, boards:write, boards:generate, and boards:export; organization permissions, quotas, and billing still apply.

Try before signing up

Guest access is live on EasyGerber's production MCP service and uses the published component catalog. The agent can create one board per session with unlimited edits, layouts, checks, previews, and manufacturing ZIP or .egb exports before signup. The board and session have no automatic expiry. Normal request-rate, board-complexity, and shared compute protections still apply. The service returns limits: { boards: 1 }; expiresAt: null means no scheduled expiration. The board limit applies to a session, not a verified person.

The guest viewer shares the application's workspace and interactive schematic and PCB canvases, without inspector panels. Saved schematics are visible before PCB layout generation. The EasyGerber logo and a compact sign-in form sit beside the preview; signing in saves the board and opens it automatically after the server confirms the save. Existing signed-in users can save directly to their account. The guest page focuses on sign-in and the board preview, without a full-width header, refresh, or download controls. Make changes and request exports through the connected agent; reload the page to see updates. Agent exports and save-to-account actions keep their existing guest authorization.

The agent keeps the guest capability in its tool context. Keep its private viewer link to return to the board; anyone with that link can access the guest design. Neither the raw token nor that link belongs in firmware repositories, public issues, or diagnostic logs. The viewer removes the token fragment and uses a private browser session. Guest access depends on keeping that capability or link; creating another session cannot recover a lost one. Board exports have no automatic expiry. Each stable private download link returns the original exported snapshot, even if the board is edited later. The download page refreshes its internal storage authorization automatically; customers do not need to renew the link. Keep download links private: they contain a download-only capability. Access still depends on the original account or guest session remaining authorized, and can end after lost account permissions, guest claim or revocation, or explicit deletion.

For account ownership, account-based recovery, and additional boards under your normal plan, sign in or create an account from the private viewer. The viewer saves the board to your personal account automatically after that sign-in handoff. Simply opening a guest preview in a browser that was already signed in leaves it as a guest board. In an agent task with a guest board, choosing sign-in or account board work likewise includes saving that board without a separate Keep board confirmation, except when signing in solely to delete an account board or submit feedback: the agent uses claim_guest_board with the original guest token to start authorization and retries the claim after normal account consent. Generic native Settings Authenticate has no guest-board context, so the agent must resume the claim after that sign-in; the callback alone does not save the board.

A successful claim returns a new account board ID and ends guest access. The agent reads that account board before making further changes. If layout is still running, it waits and retries automatically without cancelling the job; if the claim fails or its response is lost, it retains the original token for a safe retry. Reuse the original guest session; do not create extra sessions to bypass the board limit or service protections. An expired account connection must be reauthorized; it does not silently become a guest connection.

Delete an account board

Ask explicitly to delete a specified account board. The agent reads its current revision and calls delete_board only for that request. Deletion is permanent, has no restore operation, and cancels active jobs on the board. Creating, editing, or exporting a board does not authorize deletion or cleanup.

Deletion requires separate boards:delete OAuth consent and personal ownership or an organization owner/admin role. The installer and default client configurations do not request that scope; the client must support obtaining the additional approval. An existing boards:write grant cannot delete boards. A client registration limited to the earlier scopes must be deliberately updated or replaced through the client's normal reconnect or registration flow before requesting deletion consent. Existing registrations and grants do not gain deletion access automatically. Guest boards cannot be deleted through this tool, and the agent must not claim one merely to delete it. Signing in solely to delete an account board does not authorize claiming an unrelated guest board.

For the Codex installer's easygerber connection, which has no configured OAuth client ID, explicitly opt into deletion with these commands, verified with Codex CLI 0.163.0-alpha.10.2:

sh
codex mcp logout easygerbercodex mcp login easygerber \  --scopes boards:read,boards:write,boards:generate,boards:export,boards:delete,offline_access \  --oauth-client-registration dcr

Logout clears the locally cached client ID and tokens. Login creates a fresh dynamic client registration with the listed scopes and opens the browser for fresh consent, including deletion. These flags apply to this login; they do not change the installer-managed scopes in config.toml. Logout does not revoke the previous server-side client or grant. See the Codex CLI scope selection and logout implementation.

A connection with a configured OAuth client ID bypasses dynamic registration even with this flag. Its provider registration must allow boards:delete before the client can obtain fresh consent; the commands above are not a general fix for native plugins or other clients. See Codex OAuth client registration. After authorization, the agent still reads the specified account board again and deletes only on the user's explicit request.

Only a successful { boardId, deleted: true } response confirms deletion. With the required OAuth scope, unavailable boards, insufficient ownership, and repeated requests for an absent board return not_found; this result does not prove that a deletion occurred. If the response is lost, the agent reports uncertainty rather than treating a later missing-board result as confirmation.

Send feedback

Ask your agent to send EasyGerber a bug report, feature request, or general feedback. It uses submit_feedback only when you ask or agree, sending a concise message of 10–2000 characters after trimming to a private administrator inbox. It does not automatically send transcripts, raw diagnostics, board exports, credentials, or private links. A successful submission returns a receipt ID and timestamp; it does not promise a response or a roadmap commitment.

The general /api/mcp connection accepts anonymous feedback without signing in, starting a guest session, or creating a board. An already connected account or existing valid guest session can attribute the report. No additional board scope is required, and the default installer scopes remain unchanged. Invalid existing credentials remain denied rather than silently becoming anonymous. Signing in solely to send feedback does not authorize claiming a guest board. The account-only connection still requires sign-in during setup.

The agent keeps the same UUID requestId and identical report content and attribution when retrying an uncertain submission. If the tool, connection, or service is unavailable, use GitHub Issues. GitHub issues are public and require a GitHub account to post: review and redact your report before publishing, and never include credentials, private links, or confidential board data.

ChatGPT and native Codex plugins

The OpenAI listing keeps the subtitle AI PCB design and layout within its 30-character limit. Other clients retain AI PCB design, layout, and routing from the generic package description. The manifest supplies five positive and three negative review cases; the third negative case has separate stages for unsupported actions and explicit deletion authorization checks. Run node scripts/check-agent-openai-readiness.mjs from the private checkout before uploading the generated portable ZIP. Private reviewer access and existing dashboard review materials must be checked in the secure portal, not bundled in the ZIP.

The portable root manifest and mcp.json support review for OpenAI's plugin directory. They declare mixed public and OAuth access: guests can discover tools without account authorization, and account operations use a registered public OAuth client with PKCE and normal consent. Its client ID is public metadata, not a credential. This does not alter the npm installer's automatic Codex registration. Guest discovery and optional account authorization need separate checks in each client; package validation does not establish directory approval or native-client acceptance. The native Codex package uses a separate compatible manifest and MCP file with automatic OAuth discovery; it does not copy the directory-only client ID. Use that native package in a supported desktop client, or the standalone installation above for Codex in the terminal and IDE. The portable directory ZIP is not interchangeable with the native ZIP. Avoid installing duplicate integrations in the same client.

For saved account boards in custom connectors that request account authorization only during setup, use https://www.easygerber.com/api/mcp/account and complete sign-in and consent when connecting. This account entry requires OAuth before initialization and uses the same tools, permissions, and board services. For guest-first access, use https://www.easygerber.com/api/mcp; account authorization is optional on that connection.

The two entries have distinct OAuth resources. Start a new connection when choosing the account entry; existing client registrations and tokens remain bound to their original resource. Do not copy tokens between entries. The published package manifests keep their existing connection URL.

Claude

The Claude package is prepared in the claude folder of the public repository, with .claude-plugin/plugin.json and .mcp.json. It shares the EasyGerber skill, artwork, and hosted service with the OpenAI packages. The npm installer remains Codex-only. For local validation and loading with Claude Code 2.1.281 or newer, from a checkout of the public repository:

sh
claude plugin validate ./claude --strictclaude --plugin-dir ./claude

Use /mcp in Claude Code to inspect the EasyGerber connection and authorize account access when needed. In Claude chat and Cowork, add or connect EasyGerber from the plugin’s Connectors tab. EasyGerber is approved and published in the Claude directory, with guest access through /api/mcp.

Update and remove

Run npx @easygerber/[email protected] setup, then restart the Codex chat/IDE to load the current guest-saving, download, and board-control instructions. Upgrading from 0.2.x also replaces the retired score_board name with check_board_layout; no compatibility alias is provided.

Run setup from the new package version to update unchanged managed files. Repeating the same setup is a no-op. A conflicting MCP entry or modified skill file causes setup to stop without replacing it. Keep the file, or move it aside yourself before retrying. Symlinked managed destinations are refused to avoid changing unexpected locations.

sh
npx @easygerber/[email protected] uninstall --dry-runnpx @easygerber/[email protected] uninstall

Uninstall removes only unchanged files and the unchanged managed connection, preserving unrelated settings and modified files. It reports preserved paths and retains their ownership receipt. Revoke the account connection separately in Codex or EasyGerber; deleting local files does not revoke OAuth grants or invalidate an existing guest viewer link. Guest access ends after claim or revocation, not on an automatic timer. Ending guest access does not automatically delete the retained guest board or exports; the claimed account copy stays available. Interrupted setup can resume from its receipt. If a stale installer lock remains, verify no installer process is running before removing the lock path reported by the CLI.

Network and data

The integration connects directly to https://www.easygerber.com/api/mcp, or /api/mcp/account for the native Cursor and Antigravity configurations and consumer Grok account connector; authorization uses the metadata and account flow advertised by the selected entry. Tool requests can contain the board requirements, component selections, schematic edits, board/organization identifiers, and feedback messages you approve for your task. Generated artifact links are returned by EasyGerber. The hosted service retains agent activity analytics for one year, including guest history after a board is claimed. The installer does not upload repositories, inspect environment files, run lifecycle hooks, or collect telemetry. Ordinary npm package retrieval is handled by npm.

See integration documentation and support, privacy policy, and terms.

Maintainer validation and release

The public repository's default branch is main. The square Grok marketplace logo is exported only to the repository, outside the npm and plugin packages. The archival codex/grok-submission-assets tag preserves the original artwork URL.

The repository's server.json declares release 0.1.1 of the MCP Registry entry io.github.EasyGerber/easygerber, using the general https://www.easygerber.com/api/mcp URL for guest discovery and optional account authorization. Directories that import Registry metadata should use that URL for guest-first access. Account-only client configurations remain available separately as described above. The manifest is exported only to the public repository; the npm and plugin packages contain no local MCP server or private engines. Registry version 0.1.1 tracks hosted-service metadata independently of npm and plugin version 0.3.5.

The product's normal save and release scripts do not publish npm, the public integration repository, or MCP Registry. The private checkout's npm run release:agent-plugin -- --output <directory> prepares sanitized artifacts; npm run check:agent-release -- --release-dir <directory> verifies them. Publish only the generated public-source files to the existing public repository, preserving reviewed client configurations. Validate public-source/server.json with mcp-publisher validate, then publish it with mcp-publisher publish under the existing Registry identity and verify the latest metadata. Registry versions are immutable, so Registry metadata changes require a new Registry version independently of npm package releases.

For npm version 0.3.5, run npm pack --ignore-scripts --pack-destination .. from <directory>/public-source. From the private checkout, verify the resulting archive with npm run check:agent-release -- --release-dir <directory> --npm-tarball <directory>/easygerber-agent-plugin-0.3.5.tgz. Publish that exact verified archive with npm publish <directory>/easygerber-agent-plugin-0.3.5.tgz --access public.

The package contains the installer runtime, connection metadata, skills, and assets. The public repository also contains a GitHub Actions workflow and an installer smoke test. On pushes and pull requests, the workflow checks the packed installer on Linux, Windows, and macOS with Node.js 22 and 24. It tests temporary user profiles without connecting to EasyGerber or using account credentials. These checks cover installation behavior; they do not certify authentication or board operations in a particular agent client. See the Actions results for actual run status.

The production service supports guest creation, layout, previews, blocker checks, both exports, and account saving. Validate those operations and the sign-in continuation with the exact package and client being released; earlier service or package checks do not establish acceptance of a new client artifact.

The workflow and smoke test are excluded from the npm package and plugin ZIPs. The broader regression suite and release tooling remain in EasyGerber's private development checkout. That tooling creates the OpenAI ZIP, Claude ZIP, and public source from explicit file allowlists and verifies the resulting archive contents. The public source includes a generated claude folder: submit that plugin path in the existing repository. Claude requires the separate folder because the root npm installer has a bin/ directory that Claude chat and Cowork cannot install. Shared skills and artwork are copied from their canonical sources during release; maintainers do not edit a second copy. The exported installer runtime uses only Node.js built-ins and the public smol-toml parser; it never imports EasyGerber's private packages. The Claude package contains only documentation, artwork, and remote connection metadata.

The same release also generates the root .cursor-plugin/plugin.json from shared metadata. Its inline MCP connection selects the account entry without changing the root OpenAI authentication settings. Cursor uses the existing root skill and assets; there is no separate copy to maintain. The Cursor manifest is included only in the public repository, outside the npm package and OpenAI/Claude ZIPs. Submit the public repository URL for Cursor review.

Antigravity uses the generated .antigravity-plugin/plugin.json and root mcp_config.json with the same root skill and artwork. These two files are included only in the public repository, outside the npm package and OpenAI/Claude ZIPs. The root OpenAI manifest and the other clients' configurations remain unchanged.

Kiro uses the generated eight-file kiro folder with standard Agent Plugins manifests and the guest-capable endpoint. Its skill includes the complete canonical workflow inline because relative workflow references did not resolve in the tested native session. The standalone reference remains unchanged. The Kiro folder is repository-only and adds no files to the npm package or OpenAI/Claude ZIPs; submit its public folder URL for Kiro review.

Gemini CLI uses the generated root gemini-extension.json and the same root skill. Its Streamable HTTP configuration uses httpUrl and leaves authorization optional for guest access. The release also generates easygerber-gemini-extension-0.3.5.zip, containing the manifest, shared skill and workflow reference, artwork, README, and license. The manifest and Gemini archive are outside the npm and other clients' packages. Publish that verified archive as the sole installable asset of the matching GitHub release; Gemini prefers the latest release when installing from the repository URL. Preserve historical releases, including the review video, and keep a valid extension archive on the latest release. No npm publication is needed for Gemini distribution.

Devin uses the generated root .devin-plugin/plugin.json, with the shared root skill and assets/logo.svg. Its inline MCP configuration selects the general guest-capable endpoint; native Devin manifests do not automatically read the portable root mcp.json. This repository-only metadata adds no files to the npm package or other clients' archives. Marketplace entries reference the existing public repository at a reviewed full commit SHA. Before submitting one, follow the marketplace's native installation and real tool-call requirement. Preserve the published Gemini release and its asset when publishing repository-only metadata.

Before publishing, confirm ownership of the npm scope, the official public integration repository, and the vendor publishing identities. Verify production sign-in and one complete create/revise/generate/export flow in supported clients. Inspect npm pack --dry-run --json from the public export. Publish only that sanitized package/repository; the product monorepo and its history stay private. Icons and listing copy in this package are editable release materials, not evidence of marketplace approval. Do not add npm install lifecycle hooks.

The MIT license covers this integration package, not the hosted service or private engines.

Source: README.md at commit a1ea661

Tools

17

submit_feedback

Submit EasyGerber feedback

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

ParametersmessagerequiredcategoryrequiredrequestIdrequiredguestToken

get_profile

Get EasyGerber profile

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.

Takes no parameters.

list_organizations

List organizations

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.

Takes no parameters.

search_parts

Search published parts

Searches published catalog components. 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. 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, make at most two retries for that part using a simpler component name or a relevant category from the input schema. Preserve required specifications and explicit restrictions, including any boardId Part List restriction, on every retry. If no suitable part is found, report that you could not find a suitable part rather than claiming the catalog lacks it. Guest access uses guestToken and excludes organization access.

ParameterslimitqueryboardIdpackagecategoryfactQueryfrequencyguestTokeninductanceresistancecapacitancejlcpcbBasic+3 more

get_part

Get part and pins

Returns 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 boardId applies that board’s strict Part List restriction, when enabled. Guest access uses guestToken and excludes organization access.

ParametersidrequiredboardIdfactQueryfactOffsetguestToken

list_boards

List boards

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.

ParameterslimitoffsetguestTokenorganizationId

get_board

Read board

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. Previewing does not change the board design or revision. Normal compute capacity limits apply. Guest access uses guestToken and excludes organization access.

ParametersboardIdrequiredguestTokenincludePreview

create_board

Create board

Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardEdits unless physical customization is requested; server defaults supply board settings, footprints, models and manufacturing limits. Account boards are personal unless organizationId is specified; a guest session supports one board. Use the returned id and revision directly as boardId and expectedRevision for generate_layout; no get_board call is needed just to obtain them. Use update_board for an existing board. 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. If validation rejects the proposal, preserve the schematic and valid catalog parts, correct the returned detailed issues, and keep the same account or guest session. 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; do not restart the guest session. Guest access uses guestToken and excludes organization access.

ParametersnamerequiredintentrequiredrequestIdrequiredboardEditsguestTokenorganizationId

update_board

Edit board

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 stale expectedRevision requires a fresh get_board. 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. If validation rejects the proposal, preserve the schematic and valid catalog parts, correct the returned detailed issues, and keep the same account or guest session. 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; do not restart the guest session. Guest access uses guestToken and excludes organization access.

ParametersnameintentboardIdrequiredrequestIdrequiredboardEditsguestTokenexpectedRevisionrequired

delete_board

Permanently delete an account board

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

ParametersboardIdrequiredexpectedRevisionrequired

generate_layout

Generate PCB layout

Starts a durable layout job for a saved board at expectedRevision and returns without waiting for completion. Use the id and revision from the latest create_board, update_board or get_board response; poll the returned 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. Subject to normal compute capacity and board complexity limits, without AI credits. Guest access uses guestToken and excludes organization access.

ParametersboardIdrequiredrequestIdrequiredguestTokenexpectedRevisionrequired

get_generation

Read generation status

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

ParametersboardIdrequiredguestTokengenerationIdrequired

stop_generation

Stop generation

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 guestToken and excludes organization access.

ParametersboardIdrequiredguestTokengenerationIdrequired

check_board_layout

Check PCB layout for blocking issues

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. Guest access uses guestToken and excludes organization access.

ParametersboardIdrequiredguestTokenexpectedRevisionrequired

export_board

Export board files

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.

ParametersformatrequiredboardIdrequiredchangeNoteguestTokenexpectedRevisionrequired

start_guest_session

Start a guest board session

For board work without an account, reuse this task’s guest session; start one only when none exists. Use the returned guestToken to search parts, create_board, then generate_layout. Reuse an 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 and both export formats have no lifetime count limits. Normal request-rate, compute-capacity and board-complexity limits apply. Starting a new session does not recover an earlier session.

Takes no parameters.

claim_guest_board

Save the guest board after account sign-in

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 token and account returns the existing account board ID while that board remains owned by the account and available.

ParametersguestTokenrequired

Version history

2
  1. v0.1.1LatestOct 18, 2026
  2. v0.1.0Oct 17, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Layout integrations