Skip to main content
Glama

EasyGerber: AI PCB design, layout, and routing

List boards

list_boards
Read-onlyIdempotent

Lists accessible boards with their private boardRef, most recently updated first. A supplied boardRef selects only that board. Account access returns personal boards unless organizationId is specified. Without access, returns guidance, not a claim that an account has no boards. Continue existing work using its original boardRef or owning account. Continue with nextOffset until null, then use get_board for the selected board.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum boards to return; defaults to 20.
offsetNoZero-based offset; defaults to 0. Continue with returned nextOffset; null means no further page.
boardRefNoPrivate board reference. For a new board generate 32 random bytes, encode as unpadded base64url, and prepend egbr1_. Keep this same value for creation retries and every later board operation. Copy returned references unchanged. Keep it in this conversation or supported private execution state; never put it in logs or source files. A private board link may carry it in its fragment.
organizationIdNoOrganization ID from list_organizations. Omit for personal account boards; guest sessions cannot use organizations.

Output Schema

NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / boardRef
      Added value: +{
      +  "description": "Private board reference. For a new board generate 32 random bytes, encode as unpadded base64url, and prepend egbr1_. Keep this same value for creation retries and every later board operation. Copy returned references unchanged. Keep it in this conversation or supported private execution state; never put it in logs or source files. A private board link may carry it in its fragment.",
      +  "pattern": "^(?:egbr1_[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]|egba1_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\.[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048])$",
      +  "type": "string"
      +}
    • removedInput schema / properties / guestToken
      Removed value: -{
      -  "description": "Private continuation capability from create_board.guestAccess.guestToken or start_guest_session. Reuse it for this guest board. Never print it or save it in a repository.",
      -  "maxLength": 200,
      -  "minLength": 32,
      -  "type": "string"
      -}
    • addedInput schema / required
      Added value: +[]
    • addedOutput schema / properties / data / properties / boards / items / properties / boardRef
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / data / properties / boards / items / required
      Previous value: -[
      -  "id",
      -  "organizationId",
      -  "ownerUserId",
      -  "createdByUserId",
      -  "name",
      -  "revision",
      -  "url"
      -]New value: +[
      +  "id",
      +  "organizationId",
      +  "ownerUserId",
      +  "createdByUserId",
      +  "name",
      +  "revision",
      +  "url",
      +  "boardRef"
      +]
  2. Changed3 schema fields changed
    • changedInput schema / properties / guestToken / description
      Previous value: -"Private guest-session capability returned by start_guest_session. Never print it or save it in a repository."New value: +"Private continuation capability from create_board.guestAccess.guestToken or start_guest_session. Reuse it for this guest board. Never print it or save it in a repository."
    • addedOutput schema / properties / data / properties / access
      Added value: +{
      +  "const": "anonymous",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / message
      Added value: +{
      +  "type": "string"
      +}
  3. Changed3 schema fields changed
    • addedInput schema / properties / limit / description
      Added value: +"Maximum boards to return; defaults to 20."
    • addedInput schema / properties / offset / description
      Added value: +"Zero-based offset; defaults to 0. Continue with returned nextOffset; null means no further page."
    • addedInput schema / properties / organizationId / description
      Added value: +"Organization ID from list_organizations. Omit for personal account boards; guest sessions cannot use organizations."
  4. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and closed-world traits, so the bar is lower, and the description still adds real behavior: ordering, the boardRef-as-filter effect, and the important quirk that missing access returns guidance rather than implying the account has no boards. Pagination behavior is described but largely duplicates the schema's nextOffset wording.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose and ordering are front-loaded, and most sentences carry distinct information. A few clauses are vague and loosely phrased ('continue existing work using its original boardRef or owning account') and could be tightened without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description still covers pagination, filtering, organization scoping, and the no-access case. The only soft spot is the ambiguous continuation guidance, which an agent may struggle to act on, but overall it is sufficient to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning the schema does not: boardRef acts as a single-board selector, and organizationId determines personal versus organization scope. That goes beyond the schema's field-level documentation of format and generation rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (lists accessible boards), plus the returned key (boardRef) and the sort order (most recently updated first). It also distinguishes itself from get_board by saying get_board is for the selected board, so an agent can separate the two without reading schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete routing: use a supplied boardRef to narrow to one board, specify organizationId for org boards versus personal boards otherwise, and use get_board once a board is selected. It lacks an explicit statement of when not to use this tool (e.g., when the boardRef is already known and full detail is needed), but the practical guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.