{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_7t4ebb2qatxm","handle":"easygerber-ai-pcb-design-layout-and-routing","url":"https://wellknown.network/agents/easygerber-ai-pcb-design-layout-and-routing","links":{"self":"https://wellknown.network/agents/easygerber-ai-pcb-design-layout-and-routing/record.json","html":"https://wellknown.network/agents/easygerber-ai-pcb-design-layout-and-routing","markdown":"https://wellknown.network/agents/easygerber-ai-pcb-design-layout-and-routing/record.md","api":"https://wellknown.network/api/v1/agents/easygerber-ai-pcb-design-layout-and-routing","status":"https://wellknown.network/api/v1/agents/easygerber-ai-pcb-design-layout-and-routing/status","claim":"https://wellknown.network/agents/easygerber-ai-pcb-design-layout-and-routing/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/easygerber-ai-pcb-design-layout-and-routing/claim.json","badge":"https://wellknown.network/agents/easygerber-ai-pcb-design-layout-and-routing/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/easygerber-ai-pcb-design-layout-and-routing/history","tools":"https://wellknown.network/api/v1/agents/easygerber-ai-pcb-design-layout-and-routing/tools"},"ard":{"identifier":"urn:air:www.easygerber.com:server:easygerber-ai-pcb-design-layout-and-routing","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"EasyGerber: AI PCB design, layout, and routing","summary":"AI PCB design, layout, and routing","description":"AI PCB design, layout, and routing","publisher":{"name":"EasyGerber","url":null},"homepage":"https://www.easygerber.com/agents","repository":"https://github.com/EasyGerber/easygerber-agent-plugin","version":"0.1.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://www.easygerber.com/api/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-17T20:56:51.787175Z","publishedAt":"2026-10-17T20:56:51.787175Z","registryName":"io.github.EasyGerber/easygerber"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"media.3d","name":"3D & Design","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"productivity.hr","name":"HR & Recruiting","confidence":0.554,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.51,"provenance":"derived"}],"categories":["commerce","content","media","productivity","security"],"language":"sv"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-28T10:26:14.890Z","lastProbedAt":"2026-10-28T10:26:14.890Z","statusComputedAt":"2026-10-28T10:30:49.720Z","reliability30d":{"probes":33,"successRate":1,"p50Ms":557,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":33,"ok":33,"authBoundaryOk":0,"serviceOk":33,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-28T10:26:14.890Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":236,"error":null,"detail":{"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"toolCount":17,"toolsHash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","serverName":"easygerber","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T02:29:34.854Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":895,"error":null,"detail":{"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"toolCount":17,"toolsHash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","serverName":"easygerber","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T18:30:38.556Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":242,"error":null,"detail":{"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"toolCount":17,"toolsHash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","serverName":"easygerber","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T11:26:11.075Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":230,"error":null,"detail":{"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"toolCount":17,"toolsHash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","serverName":"easygerber","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T04:24:37.656Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":253,"error":null,"detail":{"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"toolCount":17,"toolsHash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","serverName":"easygerber","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T21:23:43.733Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":194,"error":null,"detail":{"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"toolCount":17,"toolsHash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","serverName":"easygerber","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T13:29:15.905Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":200,"error":null,"detail":{"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"toolCount":17,"toolsHash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","serverName":"easygerber","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T06:23:06.705Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":237,"error":null,"detail":{"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"toolCount":17,"toolsHash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","serverName":"easygerber","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T22:24:54.035Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":232,"error":null,"detail":{"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"toolCount":17,"toolsHash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","serverName":"easygerber","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T15:28:16.209Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1187,"error":null,"detail":{"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"toolCount":17,"toolsHash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","serverName":"easygerber","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"submit_feedback","description":"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 auto"},{"name":"get_profile","description":"Returns the connected account identity. Requires account authorization; unauthenticated calls request OAuth. For a new guest board, use start_guest_session inst"},{"name":"list_organizations","description":"Returns the connected account’s organizations and membership roles. Requires account authorization. Use the returned organizationId with list_boards or create_b"},{"name":"search_parts","description":"Searches published catalog components. The first candidate includes verified pins when available; other candidates may omit them. Reuse returned IDs, pins and f"},{"name":"get_part","description":"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"},{"name":"list_boards","description":"Lists accessible boards, most recently updated first. Account access returns personal boards unless organizationId is specified; guest access returns that sessi"},{"name":"get_board","description":"Reads the current revision, thin schematic, supported settings, physical context and layout freshness before editing, checking or exporting. Use get_generation "},{"name":"create_board","description":"Creates a saved schematic from published catalog parts and verified pins. Supply name, requestId, intent and the existing guestToken for guest work. Omit boardE"},{"name":"update_board","description":"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 "},{"name":"delete_board","description":"Permanently deletes the specified saved account board when the user requests its removal. Requires explicit boards:delete authorization and personal ownership o"},{"name":"generate_layout","description":"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_boa"},{"name":"get_generation","description":"Polls the exact layout generation ID returned by generate_layout for the same board. While queued or running, wait pollAfterSeconds before polling again. Stop p"},{"name":"stop_generation","description":"Cancels a queued or running layout generation belonging to the specified board; use get_generation when only checking progress. A completed, failed or already c"},{"name":"check_board_layout","description":"Checks a current saved PCB layout at expectedRevision before export or review. A missing or stale layout requires generate_layout first. Reuses a current assess"},{"name":"export_board","description":"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 "},{"name":"start_guest_session","description":"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, "},{"name":"claim_guest_board","description":"Transfers an existing guest board to the connected account using its original guestToken. An empty guest session has nothing to transfer; continue with the conn"}],"package":null,"toolSurface":{"id":"ts_9yawh5qsduu7","endpointId":"ep_gqkpdbkz64zu","hash":"eb0619de20d7386cbed982d778a099e69d03ce1adc1d3eed99dab20762d499b4","toolCount":17,"serverName":"easygerber","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-24T03:22:32.344Z","lastSeenAt":"2026-10-28T10:26:14.895Z","observations":15,"toolNames":["submit_feedback","get_profile","list_organizations","search_parts","get_part","list_boards","get_board","create_board","update_board","delete_board","generate_layout","get_generation","stop_generation","check_board_layout","export_board","start_guest_session","claim_guest_board"],"distinctSurfaces":4},"endpointFacts":[{"id":"ep_gqkpdbkz64zu","url":"https://www.easygerber.com/api/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-28T10:26:14.914Z","auth":{"observedAt":"2026-10-28T10:26:15.409Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://www.easygerber.com/.well-known/oauth-protected-resource/api/mcp","resource":"https://www.easygerber.com/api/mcp","authorizationServers":["https://www.easygerber.com/api/auth"],"scopesSupported":["boards:read","boards:write","boards:generate","boards:export","boards:delete"]},"authorizationServer":{"url":"https://www.easygerber.com/.well-known/oauth-authorization-server/api/auth","issuer":"https://www.easygerber.com/api/auth","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none","client_secret_basic","client_secret_post","private_key_jwt"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":["EdDSA","ES256","ES512","PS256","RS256"],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":true,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-28T10:26:15.435Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"*.easygerber.com","issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validFrom":"2026-09-07T23:37:20.000Z","validTo":"2026-12-06T23:37:19.000Z","daysToExpiry":39,"sanCount":2,"fingerprint256":"FD:85:CE:F3:06:8B:4B:BC:FF:7C:0C:D8:04:32:14:DD:EB:A0:53:86:6D:D0:1F:55:13:CA:DF:71:1E:22:D0:E5"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.EasyGerber/easygerber","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.EasyGerber%2Feasygerber","firstSeenAt":"2026-10-18T21:21:12.893Z","fetchedAt":"2026-10-25T21:22:26.570Z","normalizedAt":"2026-10-25T21:22:26.570Z"}]},"firstSeenAt":"2026-10-18T21:21:12.893Z","updatedAt":"2026-10-28T10:33:42.354Z"}