Skip to main content
Glama
oaslananka
by oaslananka

easyeda-mcp-pro

Ask DeepWiki


Trust and Supply Chain

easyeda-mcp-pro keeps its public OpenSSF Best Practices evidence in docs/OPENSSF_BEST_PRACTICES.md and its security assurance case in docs/SECURITY_ASSURANCE_CASE.md. The header badges link to workflow-backed signals only: CI, generated docs deployment, the project security policy, OpenSSF Best Practices self-certification, and the OpenSSF Scorecard. Release integrity evidence (npm provenance, signed-release status) is tracked in docs/RELEASE_VERIFICATION.md. Coverage, Test Analytics, and extension bundle monitoring are documented in docs/CODECOV_ANALYTICS.md.

Current OpenSSF Best Practices status: Passing (100%) — see live badge and Silver evidence map for in-progress Silver criteria.


Related MCP server: mcp-server-kicad

Quick Start

The fastest way to install and configure easyeda-mcp-pro for your favorite AI assistant or IDE:

  1. Auto-configure your MCP client:

    npx easyeda-mcp-pro setup all

    This detects and configures Claude Desktop, Cursor, VS Code, Windsurf, Cline, Gemini, Zed, etc. to run the MCP server automatically. (Or run for a specific client, e.g., npx easyeda-mcp-pro setup claude)

  2. Locate and install the EasyEDA Pro bridge extension:

    npx easyeda-mcp-pro extension --open

    This opens the folder containing the extension package easyeda-bridge-extension.eext. Import it via EasyEDA Pro → Settings → Extensions → Extension Manager.

  3. Connect the bridge: In EasyEDA Pro, click MCP Bridge → Connect in the menu bar.

For advanced configurations, manual instructions, and specific clients, see Installation & Client Configuration.


Overview

easyeda-mcp-pro is a Model Context Protocol (MCP) server that bridges AI assistants with hardware design workflows in EasyEDA Pro. It exposes up to 115 profile-gated MCP tools for schematic inspection and editing, controlled EasyEDA Pro API calls, BOM management, design rule checks, PCB board analysis, fabrication exports, diagnostics, and supplier integration.

The server connects to EasyEDA Pro via a WebSocket bridge extension, enabling real-time access to open project data. It integrates with JLCPCB, LCSC, Mouser, and DigiKey for BOM sourcing and pricing.

Key Capabilities

Area

What you can do

Schematic

List nets/components, search and place devices, edit wires/primitives

BOM

Generate, validate, export, and source bill of materials

DRC/ERC

Run design rule and electrical rule checks

Board

Inspect layers, stackup, dimensions, features

Export

Export Gerbers, pick-and-place, PDF, netlist

Diagnostics

Health check, bridge status, API inventory, capabilities, self-test


Prerequisites

  • Node.js: Node.js 24.x is required; repository automation is pinned to 24.18.0.

  • pnpm: local development and automation require exactly 11.5.1.

Prepare the supported runtime before installing dependencies:

nvm install 24.18.0
nvm use 24.18.0
corepack enable
corepack prepare pnpm@11.5.1 --activate
node scripts/check-runtime.mjs --require-pnpm
  • EasyEDA Pro with the bundled bridge extension installed and running

  • For supplier integration: API credentials from JLCPCB, LCSC, Mouser, or DigiKey


Installation & Client Configuration

Testing the v1 release candidate? Follow Migrating to v1. Stable npm and container channels remain on 0.35.4 during the candidate soak.

You can configure easyeda-mcp-pro automatically or manually.

1. Automatic Configuration (CLI)

The CLI setup automates editing the configuration files for your client:

# Configure all detected clients automatically
npx easyeda-mcp-pro setup all

# Or configure a specific client
npx easyeda-mcp-pro setup <client>

Supported Client Keys:

  • claude (Claude Desktop)

  • cursor (Cursor IDE)

  • vscode (VS Code Copilot)

  • windsurf (Windsurf)

  • cline (Cline)

  • gemini (Gemini CLI / Antigravity)

  • zed (Zed Editor)

  • amazonq (Amazon Q Developer)

  • continue (Continue.dev)

Options:

  • --profile <name>: Specify the tool profile. Options: core (default), pro, full, dev. Example: npx easyeda-mcp-pro setup cursor --profile full

2. Extension Installation

To bridge the MCP server with EasyEDA Pro:

# Open the directory containing the .eext extension package in your file manager
npx easyeda-mcp-pro extension --open

# Or copy it to a specific directory
npx easyeda-mcp-pro extension --copy /path/to/destination

Installation steps in EasyEDA Pro:

  1. Open EasyEDA Pro.

  2. Go to SettingsExtensionsExtension Manager.

  3. Click Import Extension and select the easyeda-bridge-extension.eext file.

  4. Ensure Allow External Interaction is enabled for the extension.

  5. Click MCP BridgeConnect in the menu bar.


3. Manual Client Configurations

If you prefer to configure your clients manually, add the following configuration to the respective settings files:

Config Path:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "core"
      }
    }
  }
}

Config Path: Project-specific .cursor/mcp.json or global ~/.cursor/mcp.json

{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "pro"
      }
    }
  }
}

Config Path: %APPDATA%\Code\User\mcp.json (Windows), ~/Library/Application Support/Code/User/mcp.json (macOS), or ~/.config/Code/User/mcp.json (Linux)

{
  "servers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "pro"
      }
    }
  }
}

Config Path: ~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "pro"
      }
    }
  }
}

Config Path: Cline VS Code extension global storage (cline_mcp_settings.json)

{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "pro"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Config Path: ~/.gemini/settings.json or ~/.gemini/config/mcp_config.json

{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "pro"
      }
    }
  }
}

Config Path: ~/.config/zed/settings.json

{
  "context_servers": {
    "easyeda-mcp-pro": {
      "command": {
        "path": "npx",
        "args": ["-y", "easyeda-mcp-pro@latest"]
      },
      "settings": {}
    }
  }
}

Config Path: ~/.continue/config.json

{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "pro"
      }
    }
  }
}

Config Path: ~/.aws/amazonq/mcp.json

{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "pro"
      }
    }
  }
}

4. Running from Source (Development)

If you are developing or running a modified local build:

git clone https://github.com/oaslananka/easyeda-mcp-pro.git
cd easyeda-mcp-pro
cp .env.example .env
pnpm install

# Build the server and the bridge extension package
pnpm build
pnpm build:extension

To configure your clients to use the local development build:

# Print instructions and local config block pointing to dist/index.js
node dist/index.js --setup-local

Local Diagnostics & Health Check

You can diagnose your environment and bridge connectivity at any time:

pnpm doctor

This checks:

  1. Node.js version compatibility.

  2. Runtime mode: source checkout, installed package, or production runtime.

  3. The CLI entry shebang and the .eext extension package checksum.

  4. Bridge port availability. Note: The bridge status will show as offline until an MCP client starts the server and connects to the EasyEDA Pro extension.

pnpm is required only for a source checkout and must match the repository pin. pnpm is not required for an installed package or production runtime, including the hardened Docker image. Doctor exits with status 1 for unsupported required runtimes, invalid configuration, or missing/corrupt runtime artifacts; an offline bridge by itself remains informational.


Configuration

Copy .env.example to .env and edit. All variables have safe defaults — only configure what you need.

Boolean environment variables use strict literals: true / 1 enable a setting and false / 0 disable it. Matching is case-insensitive and surrounding whitespace is ignored. Other values—including yes, no, on, off, enabled, disabled, empty strings, and misspellings—fail startup validation and report the offending variable. Leave a variable unset to use its documented default.

Essential

Variable

Default

Description

NODE_ENV

development

Set to production in production

LOG_LEVEL

info

Pino log level: trace, debug, info, warn, error, fatal, silent

TOOL_PROFILE

core

Tool set: core, pro, full, dev, experimental

TOOL_SCOPES

empty

Optional capability allowlist such as schematic:read,bom:read

MCP_PROTOCOL_VERSION

2025-11-25

MCP protocol version string

MCP_BRIDGE_BACKEND

local_bridge

Bridge backend: local_bridge or experimental remote_relay

MCP_REMOTE_SESSION_ID

empty

Optional fixed Remote Relay session id for remote_relay backend

TRANSPORT

stdio

Server transport: stdio (default) or http

For Remote Relay experiments, run npx easyeda-mcp-pro doctor --fix after setting MCP_BRIDGE_BACKEND=remote_relay; the doctor output validates HTTP transport, session selection, OAuth, and loopback-only development auth settings.

Bridge (EasyEDA Pro connection)

Variable

Default

Description

BRIDGE_HOST

127.0.0.1

Bridge WebSocket host

BRIDGE_PORT

49620

Primary bridge port

BRIDGE_PORT_SCAN

49620-49629

Port scan spec (comma/range)

BRIDGE_TIMEOUT_MS

15000

Bridge call timeout (ms)

BRIDGE_HEARTBEAT_MS

10000

Heartbeat interval (ms)

BRIDGE_WAIT_FOR_EDA_MS

30000

Wait for EasyEDA Pro on startup (ms)

BRIDGE_MAX_PAYLOAD_SIZE

1048576

Max bridge payload (bytes, default 1 MiB)

BRIDGE_TOKEN

''

Session token for extension auth

BRIDGE_RAW_EXEC_ENABLED

false

First explicit gate for raw EasyEDA runtime JavaScript execution

MCP_RAW_EXEC_EXPERIMENTAL

false

Second experimental gate required before easyeda_execute is registered

Storage

Variable

Default

Description

DATA_DIR

~/.easyeda-mcp-pro

Base directory for writable local state

SQLITE_PATH

<DATA_DIR>/easyeda-mcp-pro.sqlite

SQLite database path

ARTIFACT_DIR

<DATA_DIR>/artifacts

Artifact export directory

CACHE_DIR

<DATA_DIR>/cache

Cache directory

Storage paths are resolved in two stages. DATA_DIR is resolved first; each subordinate path is then derived from it with the current operating system's native path separator unless that variable was explicitly supplied. Setting only DATA_DIR therefore relocates the default database, artifact, and cache paths together. Explicit overrides are applied independently and retain their supplied absolute or relative semantics; relative paths remain relative to the MCP process working directory. Changing these settings does not migrate existing data automatically.

Supplier integration

Enable suppliers by setting their credentials. All suppliers are disabled by default.

  • JLCPCB: JLCPCB_MODE=approved_api + client ID/secret

  • LCSC: JLCSEARCH_ENABLED=true (default, no key required for basic search)

  • Mouser: MOUSER_ENABLED=true + API key

  • DigiKey: DIGIKEY_ENABLED=true + OAuth2 client ID/secret

Shared sourcing behavior is controlled independently of any one vendor:

Variable

Default

Description

KEYLESS_SOURCING_ENABLED

true

Allow supported public keyless fallbacks when credentials are absent

SOURCING_CACHE_TTL_SECONDS

21600

Cache sourcing responses for six hours (0 disables cache reuse)

VENDOR_MIN_REQUEST_INTERVAL_MS

150

Minimum delay between outbound requests to the same sourcing vendor

Reserved AI configuration

No in-process AI provider client is currently implemented. The AI_* variables remain accepted for configuration compatibility but are reported as reserved, are always ineffective, and must not be used to infer that the server sends design data to an AI provider. Do not supply an API key.

Variable

Default

Current behavior

AI_PROVIDER

none

Reserved; no provider client is invoked

AI_MODEL

''

Reserved; no model is selected

AI_API_KEY

''

Reserved; no credential consumer exists

AI_MAX_TOKENS

8000

Reserved compatibility setting

AI_TIMEOUT_MS

60000

Reserved compatibility setting

AI_ALLOW_DESIGN_MUTATIONS

false

Reserved; cannot enable AI-originated design mutation

Use easyeda_get_feature_flags or easyeda_get_capabilities to inspect configured, effective, and maturity values for optional settings.

HTTP transport

When using TRANSPORT=http:

Variable

Default

Description

HTTP_HOST

127.0.0.1

Bind address; non-loopback requires OAuth

HTTP_PORT

3000

Port

HTTP_AUTH_DISABLED

false

Disable HTTP auth for non-production loopback only

HTTP_RATE_LIMIT_MAX

100

Max requests per minute per IP

CORS_ORIGIN

''

Legacy allowed origin for loopback browser clients

ALLOWED_ORIGINS

''

Explicit remote origin allowlist; * is rejected

Remote HTTP Security

Every non-loopback HTTP deployment requires OAuth 2.0 / OpenID Connect authentication, regardless of NODE_ENV:

Variable

Default

Description

OAUTH_ENABLED

false

Enable Bearer token validation

OAUTH_ISSUER

''

Expected token issuer (iss claim)

OAUTH_AUDIENCE

easyeda-mcp-pro

Expected token audience (aud claim)

OAUTH_JWKS_URI

''

JWKS endpoint for token signature validation

OAUTH_REQUIRED_SCOPES

easyeda:read

Required token scope

When OAUTH_ENABLED=true, every request to /mcp must include an Authorization: Bearer <token> header unless HTTP_AUTH_DISABLED=true is explicitly set for non-production loopback development. Tokens are verified against OAUTH_JWKS_URI, iss/aud claims are validated, and OAUTH_REQUIRED_SCOPES is enforced against scope, scp, permissions, or roles claims.

The server enforces startup safety checks in every environment: non-loopback HTTP_HOST without OAuth is rejected, OAUTH_JWKS_URI / OAUTH_ISSUER / OAUTH_AUDIENCE are required, wildcard ALLOWED_ORIGINS=* is rejected, and HTTP_AUTH_DISABLED=true remains limited to non-production loopback development. Requests without an Origin header still require a valid bearer token on authenticated deployments; CORS is not an authentication boundary.

Docker defaults

The Docker image starts in HTTP mode with HTTP_HOST=127.0.0.1 so the default container boot path is safe and passes the same startup safety checks as local HTTP mode. For an externally reachable container, override the bind address and configure OAuth plus an explicit, non-wildcard origin allowlist:

docker run --rm \
  -e HTTP_HOST=0.0.0.0 \
  -e ALLOWED_ORIGINS=https://your-client.example.com \
  -e OAUTH_ENABLED=true \
  -e OAUTH_ISSUER=https://issuer.example.com/ \
  -e OAUTH_JWKS_URI=https://issuer.example.com/.well-known/jwks.json \
  -e OAUTH_AUDIENCE=easyeda-mcp-pro \
  -p 127.0.0.1:3000:3000 \
  ghcr.io/oaslananka/easyeda-mcp-pro:latest

Do not expose non-loopback HTTP without OAuth. ALLOWED_ORIGINS restricts browsers but never replaces authentication. Use a reverse proxy or platform gateway for TLS termination and external access.

HTTP Security Features

  • Rate limiting: Per-IP sliding window (configurable via HTTP_RATE_LIMIT_MAX), returns 429 Too Many Requests with retry-after header

  • Security headers: X-Content-Type-Options: nosniff, X-Frame-Options: DENY, X-XSS-Protection: 0, Referrer-Policy: strict-origin-when-cross-origin

  • Health endpoints: /healthz (liveness) and /readyz (readiness) return JSON status

See .env.example for the complete list of configuration variables.


MCP Tools

The server registers profile-gated tools according to the active TOOL_PROFILE. The table below is generated from the same registry used at runtime:

Profile

Registered tools

core

73

pro

100

full

112

dev

117

experimental

117

core exposes the standard workflow tools, pro adds manufacturing exports, full adds controlled documented EasyEDA API calls, and dev adds runtime probes for debugging.

Capability scopes add a second authorization layer when TOOL_SCOPES is set. Leave it empty for the default local all-capabilities mode, or restrict it with comma/space separated scopes such as diagnostics:read, schematic:read, schematic:write, bom:read, bom:source, checks:read, pcb:read, pcb:write, export:write, api:read, api:write, and bridge:execute.

Raw JavaScript execution is intentionally not part of the default dev tool set. easyeda_execute is registered only when both BRIDGE_RAW_EXEC_ENABLED=true and MCP_RAW_EXEC_EXPERIMENTAL=true are set; when TOOL_SCOPES is set it also requires bridge:execute.

L0 — Diagnostics (core)

Tool

Description

easyeda_health_check

Server health, runtime version, profile, bridge state

easyeda_bridge_status

Bridge connection status, version, capabilities

easyeda_get_capabilities

Available profiles, features, supported operations

easyeda_get_server_config

Safe/redacted server configuration

easyeda_get_tool_profiles

Available tool profiles

easyeda_get_feature_flags

Current feature flags

easyeda_run_self_test

Internal self-test

easyeda_api_inventory

Live EasyEDA API classes, runtime paths, and methods

L0 — Full-control and dev probes

Tool

Profile

Description

easyeda_api_call

full

Call a documented EasyEDA Class.method path through the bridge

easyeda_bridge_probe_methods

dev

Probe bridge method availability

easyeda_component_probe

dev

Inspect live schematic component runtime objects and state getters

easyeda_api_call is intentionally not raw JavaScript execution. It only accepts documented EasyEDA Pro API class prefixes (DMT_, SCH_, PCB_, LIB_) and a direct method name such as SCH_PrimitiveWire.getAll. Methods that can mutate project state, such as create, delete, modify, openProject, save, import, or export, require confirmWrite=true.

To enable the controlled full-control API tool in your MCP client, set:

TOOL_PROFILE=full

L1 — Schematic (core)

Tool

Description

easyeda_schematic_nets

List all nets with node connections

easyeda_schematic_components

List components with ref, value, footprint, LCSC, datasheet

easyeda_schematic_net_detail

Full detail for a specific net

easyeda_schematic_search_device

Search EasyEDA library devices

easyeda_schematic_place_component

Place a library component on the active schematic sheet

easyeda_schematic_add_wire

Add a schematic wire segment

easyeda_schematic_delete_primitive

Delete schematic components or wires by primitive ID

easyeda_schematic_modify_primitive

Modify schematic component or wire properties

The schematic write APIs use EasyEDA Pro extension APIs that EasyEDA currently marks as beta. The bridge checks for the documented API class names at runtime and returns an explicit error when the installed EasyEDA Pro build does not expose a required method.

L1 — BOM (core)

Tool

Description

easyeda_bom_generate

Generate bill of materials

easyeda_bom_validate

Validate BOM against LCSC inventory

easyeda_bom_export

Export BOM to file

easyeda_bom_sourcing

Pricing and availability from suppliers

L1 — DRC/ERC (core)

Tool

Description

easyeda_drc_run

Design rule check for PCB

easyeda_erc_run

Electrical rule check for schematic

easyeda_rule_check_summary

Combined DRC + ERC summary

L1 — Board (core)

Tool

Description

easyeda_board_layers

List PCB layers with type, color, visibility

easyeda_board_stackup

Layer stackup with thickness, material

easyeda_board_dimensions

Board outline, shape, mounting holes

easyeda_board_features

Counts of vias, tracks, zones, pads, components

L1 — Export (core/pro)

Tool

Profile

Description

easyeda_export_gerbers

core

Export Gerber files for fabrication

easyeda_export_pick_place

pro

Export pick-and-place centroid file

easyeda_export_pdf

pro

Export schematic/board to PDF

easyeda_export_netlist

pro

Export netlist


Architecture

┌─────────────────┐     WebSocket      ┌─────────────────────┐
│   AI Assistant   │ ◄──── MCP ──────► │  easyeda-mcp-pro    │
│  (Claude, etc.)  │     Protocol      │  (MCP Server)       │
└─────────────────┘                    │                     │
                                       │  ┌───────────────┐  │
┌─────────────────┐     WebSocket      │  │  BridgeManager │──┼──► EasyEDA Pro
│  EasyEDA Pro     │ ◄── Bridge ──────►│  │  (WS Client)   │  │   (Plugin)
│  (via Plugin)    │     Protocol      │  └───────────────┘  │
└─────────────────┘                    │  ┌───────────────┐  │
                                       │  │  ToolRegistry  │  │
                                       │  │ (up to 115 tools) │ │
                                       │  └───────────────┘  │
                                       │  ┌───────────────┐  │
                                       │  │    Storage     │──┼──► SQLite
                                       │  │  (Cache/DB)   │  │
                                       │  └───────────────┘  │
                                       │  ┌───────────────┐  │
                                       │  │   Vendors     │──┼──► JLCPCB/LCSC/
                                       │  │ (API Clients) │  │    Mouser/DigiKey
                                       │  └───────────────┘  │
                                       └─────────────────────┘

Transports

  • stdio (default): Standard MCP transport — works with Claude Desktop, Cursor, and most MCP clients

  • HTTP: Streamable HTTP transport with /healthz, /readyz, /mcp endpoints, CORS, and optional OAuth — suitable for remote deployments

Deployment modes

Beyond local stdio/HTTP, the server supports a hosted remote runtime (gateway, session router, and approval-scoped relay under src/remote/) for managed connector deployments such as Claude Web or ChatGPT app integrations, plus a self-hosted remote mode for user-managed endpoints. See Remote MCP Modes for the full mode matrix and network/security boundaries of each.

Bridge extension

pnpm build:extension
pnpm verify:extension

The extension build writes easyeda-bridge-extension.eext at the repository root. It contains extension.json, the bundled browser script, and the image assets required by EasyEDA Pro.

Installation: Open EasyEDA Pro → SettingsExtensionsExtension Manager...Import Extension, then select the .eext file. Make sure Allow External Interaction is enabled for the extension.

For local bridge development, an experimental loopback-only CDP transport is documented in the CDP Bridge guide. The extension remains the recommended transport for normal use. Public delivery targets and milestone lifecycle rules are maintained in the roadmap.


Agent plugin and skills

This repository owns the product-level agent plugin and EasyEDA-specific skills for EasyEDA MCP Pro. The central agent-tools repository should catalog this plugin, but the manifest and workflow instructions live here so they stay synchronized with the actual MCP server, bridge extension, tool profiles, and EasyEDA runtime behavior.

File

Purpose

.claude-plugin/plugin.json

Claude Code-valid plugin manifest for compatible agent runtimes and marketplace catalogs.

.mcp.json

Project-local Claude Code MCP server configuration.

.codex/config.example.toml

Codex CLI MCP configuration example.

.vscode/mcp.example.json

VS Code / GitHub Copilot workspace MCP configuration example.

opencode.example.jsonc

OpenCode project MCP configuration example.

.opencode/skills/

OpenCode-native mirrored skill definitions.

docs/agent-runtime-config.md

Agent runtime setup and validation matrix.

skills/easyeda-workflow/SKILL.md

End-to-end EasyEDA setup, inspection, controlled write, export, and reporting workflow.

skills/component-search/SKILL.md

Component search, BOM review, sourcing, pricing, availability, and part-risk workflow.

skills/design-validation/SKILL.md

DRC/ERC, semantic ERC, PCB constraints, production QA, export, and release-validation workflow.

Agent setup

EasyEDA MCP Pro can be launched with the published npm package or from a source checkout:

npx easyeda-mcp-pro
TRANSPORT=http HTTP_HOST=127.0.0.1 HTTP_PORT=3000 npx easyeda-mcp-pro
pnpm build && node dist/index.js

For live EasyEDA Pro workflows, install the EasyEDA bridge extension and confirm the bridge is reachable with easyeda_health_check and easyeda_bridge_status. Tool availability depends on TOOL_PROFILE and optional TOOL_SCOPES restrictions.

For source checkouts, run the normal validation path before publishing plugin changes:

python3 -m json.tool .claude-plugin/plugin.json >/dev/null
claude plugin validate .
pnpm format:check
pnpm typecheck
pnpm test
pnpm build
pnpm check:metadata

Validation workflow

Before listing this plugin as active from agent-tools, verify at least one compatible agent runtime can:

  1. Discover .claude-plugin/plugin.json.

  2. Launch or connect to easyeda-mcp-pro over stdio or HTTP.

  3. Call easyeda_health_check, easyeda_bridge_status, or easyeda_get_capabilities.

  4. Load a skill from skills/ and follow the workflow without referencing missing tools.

  5. Report bridge state, tool profile, ERC, DRC, BOM, export artifacts, assumptions, and human-review requirements separately.

EasyEDA MCP Pro is an engineering assistant, not an autonomous manufacturing sign-off authority. Generated designs, component selections, and fabrication outputs require qualified human review before purchase, fabrication, or assembly.

Development

Prerequisites

  • Node.js: Node.js 24.x is required; repository automation is pinned to 24.18.0.

  • pnpm: local development and automation require exactly 11.5.1.

Prepare the supported runtime before installing dependencies:

nvm install 24.18.0
nvm use 24.18.0
corepack enable
corepack prepare pnpm@11.5.1 --activate
node scripts/check-runtime.mjs --require-pnpm
  • Go Task (optional, for Taskfile commands)

Quick Start

# Setup
pnpm install
cp .env.example .env

# All quality gates (lint + format + typecheck + test + build)
pnpm verify

# Or, if you use Go Task:
task verify

# Use focused checks while iterating:
pnpm format:check          # Prettier
pnpm typecheck             # TypeScript
pnpm lint                  # ESLint

# Test
pnpm test                  # Vitest suite
pnpm test:coverage         # With coverage report

# Golden E2E fixture smoke tests are included in `pnpm test`
# See docs/golden-fixtures.md for fixture architecture

# Build & run
pnpm build                 # tsc -> dist/
pnpm build:extension       # Bundle EasyEDA Pro extension
pnpm verify:extension      # Verify extension package contents
pnpm dev                   # Hot-reload dev mode
pnpm start                 # Run compiled build

# MCP Inspector (debug UI)
pnpm inspector

Available Taskfile Commands

This project includes a Taskfile.yml with the following commands:

Command

Description

task install

Install dependencies

task lint

Run ESLint

task format

Check formatting with Prettier

task typecheck

Run TypeScript type checking

task test

Run tests

task build

Build the project

task verify

Run all quality gates via Taskfile

The package also exposes pnpm verify, which runs the same CI-equivalent local gate without requiring Go Task.

Install Go Task to use these commands.

Project structure

src/
├── index.ts                 # Entry point (stdio or HTTP)
├── bridge/                  # EasyEDA Pro WebSocket bridge protocol
│   ├── manager.ts, protocol.ts, types.ts
├── cli/                     # Client auto-setup (setup/extension CLI commands)
├── config/                  # Environment, tool profiles, feature flags
│   ├── env.ts, profiles.ts, feature-flags.ts, version.ts
├── remote/                  # Hosted/self-hosted remote MCP gateway, session router, scopes
├── schemas/                 # Shared Zod schemas
├── server/                  # MCP server core
│   ├── factory.ts, resources-prompts.ts
│   └── transports/
│       ├── http.ts                    # HTTP/Streamable HTTP transport
│       └── oauth-resource-metadata.ts
├── storage/                 # Node.js sqlite storage (cache, artifacts)
├── tools/                   # Up to 115 profile-gated MCP tool definitions
│   ├── register.ts, registry.ts, types.ts, transaction.ts
│   ├── L0_diagnostics_core.ts, L0_diagnostics_api.ts
│   ├── L1_schematic_read.ts, L1_schematic_write.ts
│   ├── L1_bom_core.ts, L1_bom_sourcing.ts
│   └── L1_drc_erc.ts, L1_board.ts, L1_export.ts, L1_pcb_constraints.ts, L1_pcb_write.ts
├── vendors/                 # Supplier API clients (lcsc/, jlcpcb/, mouser/, digikey/)
└── ...                      # circuit, pcb-layout, net-validation, power-tree, production-qa,
                              # quote-gating, safety, observability, catalog, bom-quality,
                              # export-manifest, live, easyeda-runtime

easyeda-bridge-extension/    # EasyEDA Pro bridge extension workspace package

Security

See Security Architecture & Threat Model for the complete security reference, including deployment modes, authentication, tool safety controls, secrets management, safe defaults, supplier API security, threat scenarios, and deployment checklists.

  • Network safety: Validates config at startup in every environment — rejects non-loopback HTTP without complete OAuth and an explicit non-wildcard origin allowlist

  • OAuth/JWKS: Bearer token validation via JWKS endpoint for HTTP transport (see OAuth section)

  • Rate limiting: Per-IP sliding window rate limiter on HTTP transport (default 100 req/min)

  • Path traversal protection: All file export paths validated against ARTIFACT_DIR

  • Secret redaction: API keys, tokens, passwords are redacted from logs and diagnostic output

  • Branch protection: Governance policy requires code reviews and status checks on the main branch (see Repository Governance)

  • Code scanning: CodeQL analysis runs on every push and PR (security-extended + security-and-quality queries)

  • Dependency management: Renovate automatically updates dependencies with security patches

  • Supply-chain hygiene: pnpm workspace build, pinned GitHub Actions, and no native SQLite addon dependency

  • Reporting: See SECURITY.md for vulnerability disclosure


Release & Dependency Automation

This repository uses automated workflows to manage dependencies and releases:

  • Renovate: Automatically scans and updates dependencies based on rules configured in .github/renovate.json. For details on PR policies and automerging, see Repository Governance.

  • Release Please: Automates stable version bumps, release metadata, and CHANGELOG.md. Numbered rc.N candidates use the isolated prerelease path. See the Release Policy and Release Process.

  • Secure Publishing: The release workflow rebuilds and verifies all assets, publishes npm with provenance to channel-safe latest or next dist-tags, uploads the extension and SBOM to the matching GitHub Release, and keeps GHCR/MCP Registry promotion aligned with the selected channel.


Support the project

If this project helps you save time while working with EasyEDA Pro, BOM workflows, or MCP integrations, you can support ongoing development via the Buy me a coffee button at the top of this README.


License

MIT


Available Tools

70 tools
easyeda_api_inventoryEasyEDA API inventoryB
Read-onlyIdempotent

Inspect the live EasyEDA extension runtime and list available documented API classes, runtime paths, and methods.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
totalYes
classesYes
not_availableNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint as true, so the safety profile is covered. The description adds that it inspects the 'live' runtime and lists 'documented' APIs, implying dynamic behavior. However, it does not disclose details like performance impact or scope of what is listed.

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?

The description is a single sentence, concise and free of fluff. However, it omits critical information about the filter parameter, which would improve clarity. It is efficient but could be more comprehensive without sacrificing conciseness.

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

Completeness3/5

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

Given that the tool has an output schema (not shown) and one optional parameter, the description provides a basic understanding of the tool's purpose. However, it fails to explain the filter parameter, which is necessary for correct usage. The presence of an output schema somewhat mitigates the need to describe return values, but the filter gap remains.

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

Parameters1/5

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

The single 'filter' parameter has no description in the schema (0% coverage), and the tool description does not mention it at all. This leaves the agent with no clue about its purpose, allowed values, or how to use it. The description must compensate for the lack of schema descriptions.

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?

The description clearly states the tool lists 'documented API classes, runtime paths, and methods' from the live EasyEDA extension runtime. The verb 'inspect' and 'list' are specific, and the resource is well-defined. This distinguishes it from sibling tools that focus on board dimensions, schematic editing, or other tasks.

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

Usage Guidelines3/5

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

The description implies the tool is for discovering available APIs, but it does not provide explicit guidance on when to use it versus alternatives, nor does it mention when not to use it. The context is clear enough for most agents, but lacks explicit usage boundaries.

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

easyeda_board_dimensionsGet board dimensionsB
Read-onlyIdempotent

Get the PCB board outline dimensions, shape, and mounting hole information.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
shapeNo
area_mm2No
width_mmNo
height_mmNo
project_idYes
has_outlineYes
not_availableNo
mounting_hole_countYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint and idempotentHint. Description adds some behavioral context (what data is retrieved) but does not disclose further traits beyond annotations.

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

Conciseness5/5

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

Single sentence that is clear and to the point, with no unnecessary words.

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

Completeness3/5

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

The tool is simple with one parameter and annotations, but the description omits explaining the required projectId parameter. It adequately covers the output but lacks parameter context.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the projectId parameter or its role, failing to compensate for the lack of schema documentation.

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?

The description clearly states the tool retrieves PCB board outline dimensions, shape, and mounting hole information, using a specific verb and resource. It distinguishes from siblings like board_features and board_stackup.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. The description only states what it does, without mentioning context or exclusions.

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

easyeda_board_featuresGet board featuresA
Read-onlyIdempotent

Get counts of board features including vias, tracks, copper zones, and pads.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
padsYes
viasYes
zonesYes
tracksYes
componentsNo
project_idYes
not_availableNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and idempotentHint=true. Description adds list of feature types counted, but does not mention edge cases like invalid projectId or performance. No contradiction with annotations.

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?

Single sentence of 12 words, efficient and front-loaded. Could add more context without becoming verbose, but not overly sparse.

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

Completeness3/5

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

Simple tool with one parameter, output schema, and annotations. Description is adequate but missing parameter semantics and does not mention that output schema documents return values. Slightly incomplete for a complete picture.

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

Parameters2/5

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

Schema coverage is 0%, and description does not describe the sole parameter projectId. The description implies the tool operates on a board identified by projectId, but provides no format, validation, or usage guidance.

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?

Description clearly states verb 'get' and resource 'counts of board features' and lists examples (vias, tracks, copper zones, pads). Distinguishes from sibling tools like easyeda_board_dimensions or easyeda_board_layers which handle different aspects.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance. Implied usage is for retrieving summary feature counts, but with many sibling tools, more context on selection would help.

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

easyeda_board_layersList PCB layersB
Read-onlyIdempotent

List all layers in the PCB design including signal, power, plane, and mechanical layers.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
totalYes
layersYes
project_idYes
not_availableNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, informing the agent of safe, side-effect-free behavior. The description adds that layers include signal, power, plane, and mechanical types, but this is already implied. No additional behavioral traits (e.g., pagination, caching) are disclosed. Score 3 as description adds minimal value beyond annotations.

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

Conciseness3/5

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

The description is a single sentence (12 words), making it concise. However, it omits parameter details, making it too brief for the complexity of the tool. Conciseness is valued, but not at the expense of necessary information.

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

Completeness3/5

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

The tool has only one parameter and an output schema (not shown), but the description only lists layer types without describing the return format or behavior. While minimal, it covers the basic purpose. Given the simplicity, the description is adequate but could mention the output structure or data shape.

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

Parameters1/5

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

The input schema has a single required parameter 'projectId' with type string, but the description does not mention it at all. Schema description coverage is 0%, so the description should compensate, but it fails to explain what projectId is or how to obtain it. This leaves the agent without essential parameter information.

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?

The description clearly states the verb 'List' and the resource 'layers in the PCB design', specifying types (signal, power, plane, mechanical). It distinguishes this tool from siblings like 'easyeda_board_stackup' which deals with stackup. This provides a specific and clear purpose.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It only states the basic function, leaving the agent to infer usage context from the tool name and sibling list.

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

easyeda_board_stackupGet board stackupA
Read-onlyIdempotent

Get the PCB layer stackup including thickness, material, and dielectric constants.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
layersYes
project_idYes
data_sourceNo
total_layersYes
not_availableNo
board_thickness_mmNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds no behavioral safety info beyond specifying the return fields. It does not contradict annotations, but provides minimal additional behavioral context.

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

Conciseness5/5

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

The description is a single sentence of 10 words, front-loading the purpose without any extraneous information. Every word is necessary and contributes to clarity.

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

Completeness3/5

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

The description covers what the tool returns but fails to mention that it operates on a specific project (projectId) or any context about the output schema. Given the presence of an output schema, the omission of project context is a reduction in completeness.

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

Parameters2/5

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

Schema description coverage is 0%. The description does not explain the sole parameter 'projectId' or its purpose, leaving the agent without guidance on how to correctly invoke the tool despite a required parameter.

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?

The description states a specific verb ('Get') and resource ('PCB layer stackup') with included fields (thickness, material, dielectric constants). It clearly distinguishes from sibling tools like easyeda_board_dimensions and easyeda_board_layers, which cover different board properties.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. No when-to-use, when-not-to-use, or alternative tool mentions are included, leaving the agent to infer context from the purpose alone.

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

easyeda_bom_exportExport BOMB

Export the bill of materials to a file on disk in the specified format.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNocsv
filePathYes
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatYes
exportedYes
file_pathYes
project_idYes
entry_countNo
not_availableNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, so the tool is a write operation but not destructive. The description adds that it writes to a file on disk, providing context beyond annotations. However, it does not disclose potential side effects like overwriting existing files or required permissions.

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?

The description is a single sentence with no wasted words. It is front-loaded with the action and resource. However, it is overly terse and omits parameter details, so it sacrifices completeness for brevity.

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

Completeness2/5

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

Given the tool has 3 parameters (2 required), no schema descriptions, and an output schema (not shown), the description should provide more guidance on parameter usage and expected output. It fails to compensate for the lack of schema descriptions, making the tool definition incomplete.

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

Parameters1/5

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

The schema has 0% description coverage, meaning no parameter descriptions in the schema. The description fails to explain any parameters: it does not mention projectId, filePath, or the format enum (csv, json, xlsx). This leaves the agent without crucial information for correct invocation.

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?

The description clearly states the verb 'Export' and the resource 'bill of materials' to a file, with the specified format. This distinguishes it from sibling tools like easyeda_bom_generate or easyeda_bom_validate, which focus on generation or validation rather than file export.

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

Usage Guidelines3/5

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

The description implies usage for exporting a BOM to a file, but it provides no explicit guidance on when to use this tool versus alternatives such as easyeda_bom_generate or easyeda_bom_sourcing. No exclusions or prerequisites are mentioned.

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

easyeda_bom_generateGenerate BOMA
Read-onlyIdempotent

Generate a bill of materials for the project with grouping and formatting options.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNojson
groupByNovalue
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatYes
entriesYes
group_byYes
project_idYes
not_availableNo
total_entriesYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint and idempotentHint as true, so the tool is safe and idempotent. The description uses 'Generate', which might imply mutation, but it's not a strong contradiction. It does not add behavioral context beyond what annotations provide, such as no side effects or rate limits.

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

Conciseness5/5

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

The description is a single sentence that conveys the core purpose without any extraneous information. Every word is necessary and contributes to understanding.

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

Completeness3/5

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

The tool has an output schema, so return values are covered. It has 3 parameters with enums. The description mentions grouping and formatting but does not explain that projectId is required or its format. Given the complexity (simple BOM generation) and presence of output schema, the description is adequate but lacks differentiation from sibling tools like easyeda_bom_export.

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

Parameters3/5

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

With 0% schema description coverage, the burden is on the description. It mentions 'grouping and formatting options', which partially describes the 'groupBy' and 'format' parameters. However, it does not explain the 'projectId' or the enum values. The schema already defines enums, so the description adds some meaning but not full compensation.

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?

The description clearly states it generates a bill of materials for the project, mentioning grouping and formatting options. The title 'Generate BOM' directly conveys the action. It distinguishes from siblings like easyeda_bom_export and easyeda_bom_validate, which focus on exporting or validating, not generating.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, context, or when not to use it. For example, it does not differentiate from easyeda_bom_export for outputting the BOM.

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

easyeda_bom_quality_reportBOM Quality ReportB
Read-onlyIdempotent

Generate a BOM quality report that identifies unavailable, single-source, missing-MPN, missing-footprint, and low-stock items across configured suppliers.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes
require_mpnNo
require_footprintNo
low_stock_thresholdNo
minimum_quality_scoreNo
stale_vendor_data_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
bom_idYes
entriesYes
summaryYes
generated_atYes
not_availableNo
total_entriesYes
has_supplier_errorsYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnly and idempotent. The description adds context about the report contents (what issues are identified), which is useful but not extensive. No contradiction with annotations.

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?

The description is a single concise sentence (22 words) that front-loads the main purpose. It could be more structured (e.g., listing the identified issues in a clearer format), but it is not verbose.

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

Completeness2/5

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

Given the tool has 6 parameters, 1 required, and 0% schema coverage, the description is too short to provide sufficient context. It does not cover parameter meanings or usage constraints. The presence of an output schema does not justify the lack of parameter context.

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

Parameters2/5

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

Schema description coverage is 0%, meaning no parameter descriptions in the schema. The description does not explain any of the 6 parameters (projectId, require_mpn, etc.), placing full burden on the description which it fails to meet.

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

Purpose4/5

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

The description uses specific verb 'Generate' and resource 'BOM quality report', listing the categories it identifies (unavailable, single-source, missing-MPN, etc.). It is clear what the tool does, but does not explicitly distinguish from sibling tools like easyeda_bom_validate or easyeda_bom_sourcing.

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

Usage Guidelines3/5

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

The description implies usage for quality assessment, but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.

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

easyeda_bom_sourcingGet BOM sourcing infoA
Read-onlyIdempotent

Retrieve pricing and availability information for all parts in the project BOM from specified suppliers.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes
suppliersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
partsYes
project_idYes
total_partsYes
not_availableNo
keyless_sourcing_enabledNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, covering safety. The description adds no further behavioral details (e.g., data freshness, rate limits). No contradiction exists.

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

Conciseness5/5

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

The description is a single sentence that efficiently states the tool's function and key constraints, with no unnecessary words.

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?

Given the presence of an output schema, the description adequately covers the tool's purpose for a read-only operation. However, it could better differentiate from siblings and add more guidance on supplier selection.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must add meaning for parameters. It only hints at 'suppliers' usage but does not explain 'projectId' or provide format/constraints for either parameter, leaving gaps.

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?

The description specifies the verb 'Retrieve' and the resource 'pricing and availability information for all parts in the project BOM from specified suppliers', clearly distinguishing it from other BOM-related siblings like export or generate.

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?

The description implies use for sourcing data with optional supplier filtering. While no explicit alternatives are mentioned, the context is clear and the name differentiates it from other BOM operations.

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

easyeda_bom_validateValidate BOMA
Read-onlyIdempotent

Validate the project BOM against LCSC inventory to identify missing, obsolete, or alternate parts.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
obsoleteYes
validatedYes
project_idYes
total_partsYes
valid_countYes
invalid_lcscYes
missing_lcscYes
not_availableNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds that it identifies missing, obsolete, or alternate parts, which is behavioral context beyond the annotations. No contradictions.

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

Conciseness5/5

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

A single, clear sentence that front-loads the action and purpose. No extraneous words.

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

Completeness5/5

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

Given the simple tool (one parameter, read-only) and presence of an output schema, the description sufficiently covers the tool's function without needing to detail return values.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the 'projectId' parameter format or meaning. While the parameter name is somewhat self-explanatory, the description should compensate for the lack of schema details.

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?

The description clearly states the verb 'validate' and the resource 'project BOM' against LCSC inventory, and specifies the purpose (identify missing, obsolete, or alternate parts). This distinguishes it from siblings like easyeda_bom_export or easyeda_bom_generate.

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

Usage Guidelines3/5

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

The description implies usage for BOM validation but does not explicitly state when to use it vs. siblings like easyeda_bom_sourcing or easyeda_bom_quality_report. No exclusion criteria or alternative guidance is provided.

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

easyeda_bridge_statusBridge statusA
Read-onlyIdempotent

Check EasyEDA Pro bridge connection status, version, and capabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dev_modeNo
connectedYes
uptime_msNo
diagnosticsNo
capabilitiesNo
status_errorNo
bridge_versionNo
easyeda_versionNo
last_heartbeat_msNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds value by specifying the exact checks (status, version, capabilities), which is consistent and provides behavioral context beyond the annotations.

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

Conciseness5/5

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

Single, clear sentence that is front-loaded and contains no unnecessary words. Every word earns its place.

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?

The description adequately covers the tool's purpose and outputs for a simple status check. The presence of an output schema reduces the need to detail return values. Some users might benefit from example outputs, but overall it is complete enough.

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?

The input schema has zero parameters, so the description does not need to explain parameter semantics. Baseline of 4 is appropriate given the schema coverage is 100%.

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?

The description uses a specific verb ('Check') and clearly identifies the resource ('EasyEDA Pro bridge connection status, version, and capabilities'). This distinguishes the tool from its siblings, many of which are feature-specific or perform other actions.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like easyeda_health_check or easyeda_get_capabilities. The agent is left without context for selection in an ambiguous scenario.

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

easyeda_canvas_captureCapture canvas imageA
Read-only

Capture the currently visible EasyEDA schematic/PCB canvas as a PNG image, so the caller can visually verify the result of a draw/place/route action. Captures the given tab (or last-focused); use easyeda_canvas_capture_region first to frame a specific area. Image is delivered once, as its own content block.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
capturedYes
file_nameNo
mime_typeNo
byte_lengthNo
image_base64No
not_availableNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations indicate readOnlyHint (true) and idempotentHint (false). The description adds that the image is delivered once as its own content block, which is useful behavioral info beyond the annotations.

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

Conciseness5/5

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

Two sentences, each serving a purpose: first defines the action and rationale, second provides usage guidance and output format. No unnecessary words.

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

Completeness5/5

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

Covers purpose, tab selection, output type (PNG image, content block), and sequencing hint. Given the tool's simplicity and presence of an output schema, the description is fully adequate.

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?

The sole parameter 'tabId' has no schema description (0% coverage). The description explains that it 'captures the given tab (or last-focused)', adding crucial context that the parameter is optional and defaults to the last-focused tab.

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?

Clearly states it captures the currently visible EasyEDA schematic/PCB canvas as a PNG image for visual verification. Distinguishes itself from sibling 'easyeda_canvas_capture_region' by mentioning that one for framing specific areas.

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?

Explicitly advises using 'easyeda_canvas_capture_region' first to frame a specific area. Clarifies that it captures the given tab or the last-focused one. Provides context for use after draw/place/route actions, though does not explicitly state when not to use.

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

easyeda_canvas_capture_regionCapture canvas region imageA
Read-only

Zoom the EasyEDA canvas to a rectangular region (document/canvas coordinates) and capture it as a PNG, so the caller can visually verify a specific area. This moves the user's visible viewport — EasyEDA Pro has no offscreen rendering API. The image is delivered once, as its own content block.

ParametersJSON Schema
NameRequiredDescriptionDefault
topYesFirst vertical edge in document/canvas coordinates.
leftYesFirst horizontal edge in document/canvas coordinates.
rightYesSecond horizontal edge; either edge order is accepted.
tabIdNo
bottomYesSecond vertical edge; either edge order is accepted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
capturedYes
file_nameNo
mime_typeNo
byte_lengthNo
image_base64No
not_availableNo

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses that the viewport moves and that the image is delivered once as its own block. This adds significant behavioral context not captured by annotations alone.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and key limitations. Every word adds value; no redundancy.

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

Completeness5/5

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

With an output schema present, the description does not need to cover return values. It covers input behavior, side effects, and delivery mechanism completely for a focused tool.

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

Parameters3/5

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

Schema description coverage is 80%, and the description adds no meaningful extra semantic detail beyond what the schema already provides (e.g., coordinate ordering acceptance is already in schema). Baseline is appropriate.

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?

The description clearly states the action ('Zoom...and capture as a PNG') and the resource ('rectangular region on canvas'), with the purpose of visual verification. It distinguishes from siblings like easyeda_canvas_capture by specifying region vs full canvas.

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?

The description explains when to use (to verify a specific area) and mentions a crucial tradeoff (viewport movement due to no offscreen API). It does not explicitly exclude alternatives like easyeda_canvas_capture, but the context is clear.

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

easyeda_canvas_locateZoom canvas to coordinateA
Read-only

Zoom the EasyEDA canvas to a coordinate/scale (document/canvas coordinates), returning the resulting viewport rectangle. Useful to frame a location before calling easyeda_canvas_capture, or standalone to navigate the user's view to a point of interest.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
tabIdNo
scaleRatioNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
topNo
leftNo
errorNo
rightNo
bottomNo
locatedYes
not_availableNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=false. Description adds that it zooms and returns viewport, but doesn't contradict annotations. Transparency is adequate but adds little beyond annotations.

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

Conciseness5/5

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

Two concise sentences: first states purpose and return, second provides usage guidance. No wasted words, front-loaded with key action.

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?

Given the presence of an output schema and low complexity, the description covers purpose and usage well. However, parameter semantics are lacking, which slightly reduces completeness.

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

Parameters2/5

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

Schema has 4 parameters with 0% description coverage. Description mentions 'coordinate/scale' but does not explain each parameter's meaning or format. tabId is not mentioned. This is insufficient for an agent to correctly set the parameters.

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?

The description clearly states the tool zooms the EasyEDA canvas to a coordinate/scale and returns the viewport rectangle. It distinguishes itself from siblings by mentioning it is useful before calling easyeda_canvas_capture.

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?

Description explicitly says when to use: 'before calling easyeda_canvas_capture' or 'standalone to navigate'. No explicit when-not or alternatives, but the sibling list provides context.

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

easyeda_design_rules_lookupLook up engineering design-rule reference guidanceA
Read-onlyIdempotent

Look up generic engineering reference guidance: IPC-2221 trace-width/current-capacity, clearance bands, protocol routing data (USB/RS-485/I2C/SPI/UART/Ethernet), decoupling recipes and bulk capacitance sizing, and a static DFM checklist. Every result cites a source and caveat: these are estimates, not certified values.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOptional DFM checklist item id.
layerNoRequired for trace-width and max-current. Conductor layer location.
loadANoRequired when topic is bulk-capacitance. Load current in amperes.
topicYesReference topic to look up.
categoryNoOptional category filter for decoupling or dfm-checklist.
currentANoRequired when topic is trace-width. Load current in amperes.
locationNoRequired when topic is clearance. Clearance location.
protocolNoOptional protocol filter when topic is protocol-routing.
voltageVNoRequired when topic is clearance. Working voltage in volts.
copperWeightOzNoRequired for trace-width and max-current. Copper weight in oz/ft².
traceWidthMilsNoRequired when topic is max-current. Trace width in mils.
temperatureRiseCNoRequired for trace-width and max-current. Allowed temperature rise in °C.
minBulkCapacitanceUfNoOptional absolute minimum bulk capacitance in µF.
minBulkCapacitanceUfPerANoOptional minimum bulk capacitance per ampere in µF/A.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
topicYes
clearanceNo
decouplingNo
maxCurrentNo
traceWidthNo
dfmChecklistNo
decouplingListNo
bulkCapacitanceNo
protocolRoutingNo
dfmChecklistItemNo
protocolRoutingListNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the tool as read-only and idempotent. The description adds valuable context: results cite sources and are estimates with caveats. This enhances transparency beyond annotations but does not contradict them.

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

Conciseness5/5

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

The description is concise: two sentences that front-load the key action and list covered topics without unnecessary detail. Every sentence adds value.

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?

Given the complexity (14 parameters, conditional requirements) and the presence of detailed schema descriptions and an output schema, the description provides a good overview. It could mention conditional parameter dependencies, but the schema already addresses this, so completeness is adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameter semantics are already well-documented in the schema. The description adds minimal additional meaning beyond listing topics; it does not elaborate on parameter relationships or conditional requirements.

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?

The description clearly states the tool's purpose: lookup generic engineering reference guidance, listing specific topics like IPC-2221 trace-width, clearance bands, protocol routing, decoupling recipes, bulk capacitance sizing, and DFM checklist. This clearly distinguishes it from sibling tools that manipulate designs or perform other analyses.

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

Usage Guidelines2/5

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

The description lacks any guidance on when to use this tool versus alternatives. No explicit contexts, preconditions, or exclusions are provided, leaving the agent without direction on appropriate usage scenarios relative to sibling tools.

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

easyeda_drc_runRun design rule checkB
Idempotent

Run the native design rule check (DRC): same as clicking "Check DRC" in EasyEDA Pro, so the bottom DRC panel opens/refreshes in the user's window as a visible side effect. Returns coarse per-severity counts only — which specific wire/net/component is affected is shown only in EasyEDA Pro's own DRC panel.

ParametersJSON Schema
NameRequiredDescriptionDefault
rulesNo
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
passedYes
project_idYes
violationsYes
error_countYes
not_availableNo
warning_countYes
total_violationsYes

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already indicate idempotent (idempotentHint=true) and non-destructive (destructiveHint=false). The description adds valuable behavioral context: a visible side effect (DRC panel opens/refreshes) and the limitation that only coarse counts are returned, with specific details only in the panel. No contradiction with annotations.

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?

Two sentences, front-loaded with purpose. Efficient but could benefit from slightly more structure (e.g., listing the side effect and return behavior separately). No wasted words.

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

Completeness2/5

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

While the description notes the visible side effect and coarse return, it omits parameter semantics entirely. Given that an output schema exists (from context), the return value limitation is described, but the tool's behavior regarding the 'rules' parameter is absent. Incomplete for effective agent use.

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

Parameters1/5

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

Schema coverage is 0% and the description provides no explanation for the two parameters (projectId and rules). The agent is left guessing what 'rules' array does and that projectId is required. This is a critical gap.

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?

Clearly states it runs the native DRC, analog to clicking 'Check DRC', and specifies return of coarse per-severity counts. Distinguishes from siblings like easyeda_erc_run and easyeda_rule_check_summary by mentioning the interaction with EasyEDA Pro's DRC panel and the limited return data.

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

Usage Guidelines2/5

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

Provides context by comparing to clicking 'Check DRC' and noting coarse returns, but does not explicitly specify when to use this tool over siblings such as easyeda_erc_run or easyeda_rule_check_summary. No exclusions or alternative guidance given.

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

easyeda_erc_runRun electrical rule checkB
Idempotent

Run the native electrical rule check (ERC). Native counts are coarse; inferred_floating_pins supplements them with located, unconnected pins from this bridge's own inference (best-effort — other categories still need the DRC panel).

ParametersJSON Schema
NameRequiredDescriptionDefault
checksNo
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
passedYes
project_idYes
violationsYes
error_countYes
detail_sourceNo
not_availableNo
warning_countYes
total_violationsYes
inferred_floating_pinsNo

TDQS

B3/5.0
Behavior2/5

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

Annotations indicate idempotentHint=true and destructiveHint=false. The description adds little beyond stating it runs a check; it does not disclose safety implications, side effects, or confirm idempotency. No contradiction with annotations.

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?

The description is short at two sentences, but the second sentence is dense and could be clearer. Still, it is efficient and avoids unnecessary detail.

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

Completeness2/5

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

The tool has two parameters with no schema descriptions and an output schema (not shown). The description does not explain what the tool returns or how to interpret results, leaving significant gaps for an agent to understand the full context of using this tool.

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

Parameters1/5

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

Schema description coverage is 0%, meaning no parameter descriptions. The tool description does not explain the two parameters (checks, projectId) or their expected values, leaving the agent without semantic guidance beyond the schema's basic structure.

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

Purpose4/5

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

The description clearly states the tool runs the native electrical rule check (ERC). It distinguishes from alternatives by mentioning that native counts are coarse and that inferred_floating_pins supplements them, but does not explicitly differentiate from the sibling easyeda_drc_run.

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?

The description provides guidance on when to use this tool by noting that native counts are coarse and that inferred_floating_pins is a supplement, and mentions that other categories still need the DRC panel. This implies when not to rely solely on this tool. However, it could be more explicit about when to prefer this tool over others.

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

easyeda_export_gerbersExport Gerber filesC
Idempotent

Export PCB design to Gerber files for PCB fabrication.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathNo
ledPanelNo
projectIdYes
drillFormatNo
excludeLayerNo
productionReviewNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
exportedYes
file_countNo
project_idYes
byte_lengthNo
artifact_pathNo
not_availableNo
production_reviewNo
blocked_by_production_reviewNo

TDQS

C2.4/5.0
Behavior2/5

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

The description adds minimal behavioral context beyond the annotations. Annotations indicate it is idempotent and not destructive, but the description does not explain side effects, state changes, or file generation behavior. The description does not contradict annotations, so no contradiction flag.

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

Conciseness3/5

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

The description is brief (one sentence), but it is too minimal given the tool's complexity. It is front-loaded with the action but lacks structure or details. Conciseness should not sacrifice completeness, so it scores a 3.

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

Completeness2/5

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

The description is insufficient for the tool's complexity. It fails to explain what Gerber files are, how the export works, what the parameters do, or how the output is provided. An output schema exists but is not referenced. The description is incomplete.

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

Parameters1/5

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

The input schema has 6 parameters with 0% description coverage. The description provides no information about any parameter, including the required projectId. Therefore, it fails to add meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the verb 'Export', the resource 'PCB design to Gerber files', and the purpose 'for PCB fabrication'. It distinguishes from sibling tools, as no other tool focuses on Gerber export. However, it could be more precise about what Gerber files are, but it's effective.

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

Usage Guidelines2/5

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

No usage guidelines are provided. The description does not specify when to use this tool, prerequisites, or alternatives. Sibling tools like easyeda_board_layers and easyeda_pcb_production_review exist, but there is no guidance on when to choose this tool over others.

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

easyeda_get_capabilitiesGet capabilitiesA
Read-onlyIdempotent

Return server capabilities, including available profiles, enabled feature flags, and supported operations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
profilesYes
transportsYes
server_nameYes
feature_flagsYes
server_versionYes
current_profileYes
protocol_versionYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint true. Description adds no further behavioral details beyond what is stated. Adequate but not enhanced.

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

Conciseness5/5

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

Single sentence, concise, and front-loaded with the action. No wasted words, every word contributes to clarity.

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?

No parameters, output schema present. Description gives sufficient context about what is returned (capabilities, profiles, flags, operations). Could mention that it's a read-only/idempotent operation, but annotations already cover. Complete enough.

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?

No parameters; schema coverage is 100%. Description adds no parameter info, which is appropriate. Baseline 4 for zero parameters.

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?

Description clearly states 'Return server capabilities' with specific examples (profiles, feature flags, supported operations), distinguishing it from siblings like easyeda_get_feature_flags and easyeda_get_tool_profiles.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives guidance, but context implies this is for a broad overview. Implicit usage from sibling names, but not explicit.

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

easyeda_get_feature_flagsGet feature flagsA
Read-onlyIdempotent

Return current feature flag values.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
flagsYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's burden is lower. The phrase 'current' adds minimal behavioral context (snapshot semantics). It does not contradict annotations, but neither does it disclose any additional behavioral traits like caching or side-effects.

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

Conciseness5/5

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

The description is a single, concise sentence that communicates the core function without unnecessary words. It is front-loaded and every word earns its place.

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?

For a simple, parameterless getter tool with an existing output schema, the description is adequate. It could be improved by briefly noting the domain (e.g., EasyEDA feature flags) but is otherwise sufficient.

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?

The tool has zero parameters, so schema coverage is 100% by default. With no parameters to describe, the description logically has nothing to add. The baseline for zero-parameter tools is 4, as the schema suffices.

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?

The description 'Return current feature flag values' uses a specific verb and resource, clearly indicating it retrieves feature flag values. The name 'get_feature_flags' reinforces this, and the tool is distinct from siblings like 'get_capabilities' or 'get_server_config' which handle different configuration data.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention scenarios, prerequisites, or exclusions. Annotations indicate readOnly and idempotent hints but these are not elaborated in the description.

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

easyeda_get_server_configGet server configA
Read-onlyIdempotent

Return safe (redacted) server configuration. Secrets are never exposed.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_flagsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
flagsNo
profileYes
node_envYes
log_levelYes
transportYes
bridge_hostYes
bridge_portYes
mcp_protocol_versionYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds value by explicitly stating that secrets are never exposed, which is a behavioral guarantee beyond annotations. No contradictions.

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

Conciseness5/5

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

Two short sentences with no wasted words. The core purpose is front-loaded and immediately clear.

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

Completeness3/5

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

Given the tool's simplicity (1 optional param, output schema exists), the description is minimally adequate but lacks detail on what the configuration contains and the effect of the parameter, leaving some ambiguity.

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

Parameters2/5

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

The description does not explain the only parameter (include_flags) at all. With 0% schema description coverage, the definition relies entirely on the description to clarify parameter semantics, which it fails to do.

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?

The description clearly states the verb 'Return' and the resource 'server configuration', and adds the crucial quality that secrets are redacted. This distinguishes it from sibling tools that deal with schematic, BOM, etc.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. While it's implied by the tool's purpose, there is no mention of prerequisites or conditions for use.

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

easyeda_get_tool_profilesGet tool profilesA
Read-onlyIdempotent

List available tool profiles and their descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
currentYes
profilesYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare the tool as read-only and idempotent. The description adds no further behavioral context beyond 'list', which is consistent. No contradiction, but no added value.

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

Conciseness5/5

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

The description is a single short sentence that conveys the tool's purpose without any extraneous words. Perfectly concise.

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?

Given the presence of an output schema and annotations covering safety, the description is sufficient for a simple listing tool. However, the term 'tool profiles' could be more explicitly defined.

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?

With zero parameters, schema coverage is 100% and the description naturally covers the lack of parameters. It adds the note 'and their descriptions' which hints at output content, slightly enhancing meaning.

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?

The description clearly states the verb 'list' and the resource 'available tool profiles and their descriptions'. It distinguishes well from sibling tools which are all specific actions, making it unique.

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

Usage Guidelines3/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. However, the simplicity of the tool (no parameters) reduces the need for such guidance, but it would benefit from stating that it helps discover available profiles.

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

easyeda_health_checkHealth checkA
Read-onlyIdempotent

Return server health status in one call: runtime version, active profile, bridge state, EasyEDA version, keyless sourcing state, and starter catalog size. Intended as the single actionable status check after first connecting the bridge extension.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
upsYes
statusYes
profileYes
versionYes
transportYes
node_versionYes
easyeda_versionNo
bridge_connectedYes
extension_versionNo
registry_mismatchYes
catalog_device_countYes
keyless_sourcing_enabledYes
extension_version_mismatchYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds value by listing the exact fields returned and the intended usage scenario, providing behavioral context beyond annotations. No contradictions.

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

Conciseness5/5

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

Single sentence that is concise and front-loaded, listing all returned values without waste. Every word earns its place.

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

Completeness5/5

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

Given zero parameters, full annotations, and presence of an output schema (not shown but indicated), the description sufficiently explains what the tool returns and when to call it. Complete for its simplicity.

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?

Tool has zero parameters, so schema coverage is complete. Description doesn't need to add parameter information; baseline for 0 params is 4. No param descriptions needed.

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?

Description clearly states the tool returns server health status with a specific list of fields (runtime version, active profile, bridge state, etc.) and positions it as the single actionable status check after connecting the bridge extension, distinguishing it from siblings.

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?

Description explicitly says 'Intended as the single actionable status check after first connecting the bridge extension,' providing clear context for when to use it. However, it doesn't contrast with similar tools like easyeda_bridge_status or mention when not to use it, which slightly lowers the score.

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

easyeda_observability_reportObservability reportA
Read-onlyIdempotent

Return latency budgets, runtime metrics, cache/vendor timing snapshot, and storage retention policy for performance diagnostics.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeRecentEventsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
budgetsYes
metricsYes
retentionYes
generated_atYes
server_versionYes
timeout_policyYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark the tool as readOnly, idempotent, and non-destructive. The description adds details about the data returned (latency, runtime, cache, storage), which is useful context beyond annotations. No contradictions.

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

Conciseness5/5

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

The description is a single sentence of 20 words, directly listing the report contents. Every word is informative; no fluff.

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?

Given the tool has an output schema (context provided) and only one optional parameter, the description covers the report's contents and purpose. However, it omits any mention of the parameter, which is a minor gap.

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

Parameters2/5

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

Schema coverage is 0% and the description does not mention the only parameter 'includeRecentEvents'. The parameter name and default imply its use, but the description does not explain its effect or how it modifies the report. The description should compensate for low schema coverage but fails to do so.

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?

The description clearly states it returns specific performance data (latency budgets, runtime metrics, etc.) for diagnostics. It uses a specific verb ('Return') and resource, and distinguishes from siblings by focusing on observability; no other sibling mentions these metrics.

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

Usage Guidelines3/5

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

The description implies use 'for performance diagnostics' but provides no explicit guidance on when to use this tool over alternatives (e.g., health_check). No when-not-to-use or trade-offs are mentioned.

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

easyeda_pcb_componentsList PCB componentsA
Read-onlyIdempotent

List components placed on the active PCB layout: primitiveId, designator, footprint identity, position/rotation/layer. Requires a focused PCB tab in EasyEDA Pro — returns an empty list (not an error) if none is active.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
totalYes
componentsYes
project_idYes
not_availableNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds valuable context: requires active PCB tab, returns empty list if inactive, and lists returned fields. No contradictions.

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

Conciseness5/5

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

Two concise sentences, front-loaded with main action. No extraneous information.

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

Completeness5/5

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

Adequate for a list tool with output schema. Describes returned fields, preconditions, and edge case. No gaps identified.

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

Parameters2/5

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

Schema has 3 parameters with 0% description coverage. Description does not explain any parameter semantics (e.g., projectId, limit, offset). Fails to compensate for missing schema descriptions.

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?

Description clearly states verb 'list', resource 'components placed on active PCB layout', and lists key returned fields. Distinguishes from schematic components siblings.

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?

Provides prerequisite (focused PCB tab) and behavior when not satisfied (empty list, not error). Lacks explicit differentiation from other PCB tools like tracks or vias.

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

easyeda_pcb_constraint_checkCheck PCB constraintsC
Read-onlyIdempotent

Run PCB constraint validation against the board design. Checks board outline, layer stackup, net classes, clearance rules, keepout areas, placement zones, mounting holes, fiducials, and manufacturing constraints.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardDataNo
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
errorsYes
summaryYes
warningsYes
project_idYes
not_availableNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds a list of checks performed, which provides some behavioral context but does not disclose additional traits like permissions, data modification (already none), or response format.

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?

The description is a single sentence listing many aspects, which is efficient and front-loaded. No wasted words, though could be more structured.

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

Completeness2/5

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

Given the complex input schema with numerous nested optional properties and high parameter count, the description fails to provide sufficient context for correct usage. No mention of output or expected data format.

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

Parameters1/5

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

Schema description coverage is 0%. The tool description does not explain either parameter (boardData or projectId) or their nested structure, leaving the agent with no guidance beyond the schema names and types.

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

Purpose4/5

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

The description clearly states it runs PCB constraint validation and enumerates specific checks (board outline, layer stackup, etc.). However, it does not explicitly differentiate from similar sibling tools like easyeda_drc_run or easyeda_pcb_constraint_report.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No prerequisites, exclusions, or context about ideal scenarios provided.

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

easyeda_pcb_constraint_reportPCB constraint reportB
Read-onlyIdempotent

Generate a human-readable report explaining which PCB constraints were applied and which require manual review.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardDataNo
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
checkedYes
verdictYes
project_idYes
not_availableNo
manualReviewRequiredYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the agent knows it's safe and idempotent. The description adds that it produces a human-readable report, which is useful context. However, it does not detail what 'manual review' entails or any side effects, but annotations cover the safety profile adequately.

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

Conciseness5/5

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

A single, clear sentence with no wasted words. It front-loads the action and purpose efficiently.

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

Completeness2/5

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

Given the complexity (nested object with many properties), the description is too brief. It does not explain the relationship to constraint checking tools, what constraints are involved, or how the report is generated. The output schema may compensate, but the description alone lacks sufficient context for effective tool selection.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no information about the parameters. The boardData object has many nested properties without explanations, and the description does not help the agent understand how to fill these parameters or what they represent.

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?

The description clearly states the verb 'Generate' and the resource 'PCB constraint report', and explains what the report does (explains which constraints applied and which need review). It distinguishes from sibling tools like easyeda_pcb_constraint_check, which likely runs the check rather than producing a report.

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

Usage Guidelines3/5

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

The description implies usage after constraints are applied, but does not explicitly state when to use it versus siblings like easyeda_pcb_constraint_check or easyeda_rule_check_summary. No exclusions or alternatives are mentioned, leaving room for ambiguity.

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

easyeda_pcb_production_reviewRun PCB production reviewA
Read-onlyIdempotent

Run fabrication, assembly, and testability production review rules for PCB handoff. Reports severity-ranked DFM/DFA/DFT findings with actionable remediation before Gerber export or manufacturing submission.

ParametersJSON Schema
NameRequiredDescriptionDefault
gateModeNowarn
boardDataNo
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorsYes
passedYes
blockedYes
summaryYes
warningsYes
gate_modeYes
project_idYes
not_availableNo
severity_countsYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations (readOnlyHint, idempotentHint, destructiveHint) already declare safe read-only behavior. Description adds context about running rules and reporting severity-ranked findings, which is consistent and provides additional behavioral detail (e.g., actionable remediation). No contradictions.

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

Conciseness5/5

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

Two concise sentences: first states action, second describes output. No extraneous information, front-loaded with key purpose. Every sentence is necessary and efficient.

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

Completeness3/5

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

Description covers purpose and output format but omits parameter descriptions for a complex tool with a nested boardData object and enum gateMode. Output schema exists, so return values are covered indirectly. Parameter usage guidance is missing, reducing completeness.

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

Parameters1/5

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

Description does not reference any of the three parameters (projectId, gateMode, boardData). With 0% schema description coverage, the description should compensate but fails to explain parameter meaning or usage. The many properties in boardData remain undocumented.

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?

Description clearly states the verb 'run', resource 'production review rules', and purpose for PCB handoff. It specifies DFM/DFA/DFT focus and distinguishes from siblings like DRC/ERC runs by mentioning fabrication, assembly, and testability review before Gerber export.

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?

Description indicates when to use ('before Gerber export or manufacturing submission'), but does not explicitly exclude other similar checks (e.g., when to use this vs easyeda_drc_run). It provides context for usage but lacks explicit alternatives or when-not conditions.

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

easyeda_pcb_tracksList PCB tracksA
Read-onlyIdempotent

List copper track segments on the active PCB layout: primitiveId, net, layer, start/end coordinates, width. A multi-point track drawn by add_track appears as several consecutive segments sharing one net. Returns an empty list (not an error) if no PCB tab is focused.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
totalYes
tracksYes
project_idYes
not_availableNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds useful behavior: returns empty list (not error) if no PCB tab is focused, and explains multi-point track representation. No additional safety or performance details are provided.

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

Conciseness5/5

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

The description is two sentences, front-loading the purpose and adding behavioral context without redundancy. Every sentence adds value.

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?

For a list tool with read-only annotations and an output schema (not shown), the description is fairly complete, covering output fields and a special case. It lacks parameter explanations, but overall is adequate for its purpose.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain the parameters (limit, offset, projectId). The description only covers the output, leaving parameter semantics entirely to the schema. This is a significant gap.

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?

The description clearly states the tool lists copper track segments on the active PCB layout, specifying the fields returned (primitiveId, net, layer, coordinates, width). It distinguishes from siblings like easyeda_pcb_components and easyeda_pcb_vias by explicitly focusing on tracks.

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?

The description implies usage when track data is needed and clarifies that an empty list is returned if no PCB tab is focused, guiding proper usage. It does not explicitly contrast with alternatives, but the context is sufficient.

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

easyeda_pcb_viasList PCB viasA
Read-onlyIdempotent

List vias on the active PCB layout: primitiveId, net, position, hole/outer diameter (native unit, same scale as x/y — not independently verified against a known physical dimension). Requires a focused PCB tab — returns an empty list (not an error) if none is active.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
viasYes
errorNo
totalYes
project_idYes
not_availableNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint, so the tool is safe. The description adds behavioral details: the unit assumption (native unit, not verified against physical dimensions) and the error-handling behavior (empty list vs. error for inactive tab). These go beyond annotations and provide useful transparency.

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?

The description is two sentences that convey the core functionality, prerequisites, behavior, and output details. It is concise and front-loaded, though the second sentence could be slightly more precise. No superfluous information.

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

Completeness3/5

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

The description covers the purpose, prerequisite (active PCB tab), output fields, and a behavioral note. However, it lacks any documentation for input parameters, which is necessary for correct invocation since schema coverage is 0%. The output schema exists but is not shown in this evaluation. Overall, it leaves a significant gap in parameter understanding.

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

Parameters1/5

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

The input schema has 3 parameters (projectId required, limit with default 100, offset default 0), but schema description coverage is 0%. The description does not explain any of these parameters or their semantics. The tool description only mentions output fields, not input parameters. This is a significant gap for agent usage.

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

Purpose4/5

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

The tool name and title clearly indicate listing PCB vias. The description specifies the resource (vias on active PCB layout) and provides details on the returned fields (primitiveId, net, position, hole/outer diameter). While it distinguishes from sibling tools implicitly by focusing on vias, it does not explicitly differentiate from similar listing tools like easyeda_pcb_components or easyeda_pcb_tracks.

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?

The description explicitly states the requirement for a focused PCB tab and the behavior when none is active (returns empty list, not an error). This provides clear context for when to use the tool. However, it does not mention alternatives or explicitly state when not to use this tool versus other listing tools.

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

easyeda_post_write_qaClassify post-write schematic QA resultsA
Idempotent

Run and classify post-write schematic QA after generated edits. Combines native DRC/ERC results with policy-aware classification so duplicate net names, free networks, and unconnected pins are reported as pass/fail/inconclusive instead of raw warning counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
drcNoOptional explicit DRC result override for tests or log ingestion
ercNoOptional explicit ERC result override for tests or log ingestion
policyNocircuit
projectIdYes
useNativeChecksNo
manualDrcMessagesNoOptional user-copied EasyEDA DRC log lines for classification when native details are unavailable
manualErcMessagesNoOptional user-copied EasyEDA ERC log lines for classification when native details are unavailable

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesYes
passedYes
policyYes
statusYes
summaryYes
categoriesYes
project_idYes
fatal_countYes
issue_countYes
detail_sourceNo
warning_countYes
inconclusive_countYes

TDQS

A3.8/5.0
Behavior4/5

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

Description discloses that it combines DRC/ERC results and classifies them, which aligns with idempotentHint. It does not contradict annotations. Could mention that rerunning is safe (idempotent) but overall good.

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

Conciseness5/5

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

Two sentences, highly concise and front-loaded with the core purpose. No unnecessary words.

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

Completeness3/5

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

Description covers the main output format but omits details on required projectId, policy enum options, and use of manual messages. Given the tool's complexity (7 params, nested objects), more context would help.

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

Parameters2/5

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

Schema coverage is 57%, but description adds no extra meaning for parameters like 'policy' or 'useNativeChecks'. Critical parameters are not explained, leaving the agent to rely solely on the schema's brief descriptions.

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?

Description clearly states the verb ('run and classify'), resource ('post-write schematic QA'), and context ('after generated edits'). It differentiates from sibling tools like easyeda_drc_run by specifying policy-aware classification and output format (pass/fail/inconclusive instead of raw counts).

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

Usage Guidelines3/5

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

Implied usage as a post-write step, but no explicit guidance on when to use this tool versus alternatives (e.g., raw DRC/ERC runs). No exclusions or scenario examples provided.

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

easyeda_power_tree_analyzeAnalyze power-tree current and thermal budgetA
Read-onlyIdempotent

Analyze supply sources, regulators, loads, protection, bulk capacitance, current budget, dropout, and regulator thermal risk. Returns machine-readable issues and a human-readable summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
loadsNo
railsYes
limitsNo
sourcesNo
projectIdNo
capacitorsNo
regulatorsNo
protectionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
railsYes
issuesYes
passedYes
summaryYes
project_idYes
regulatorsYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's role is reduced. It adds that the tool returns 'machine-readable issues' and 'human-readable summary', which is useful context about output format but does not disclose additional behavioral traits beyond what annotations provide.

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

Conciseness5/5

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

The description is a single sentence that front-loads key actions and resources, achieving maximum conciseness without filler. Every word contributes to describing functionality.

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

Completeness2/5

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

Despite having an output schema and detailed input schema, the description lacks details about the analysis methodology, issue detection scope, or result interpretation. For a complex tool with 8 parameters, nested objects, and power tree analysis, more context (e.g., 'Checks for dropout violations, thermal margins, and capacitance adequacy') would make it complete.

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

Parameters2/5

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

Schema coverage is 0%, so the description should compensate. While it mentions some elements (sources, regulators, loads, etc.) that align with schema arrays, it does not explain each parameter's purpose, requirements, or how to structure inputs. The schema itself is detailed, but without guidance, an AI agent may struggle to construct valid inputs.

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?

The description uses specific verb 'analyze' and explicitly lists the resources involved: supply sources, regulators, loads, protection, bulk capacitance, current budget, dropout, and thermal risk. It clearly distinguishes from sibling tools which focus on schematic, BOM, or board features.

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

Usage Guidelines3/5

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

The description implies this tool is used for power tree analysis but does not explicitly state when to use it versus alternatives. No exclusions or prerequisites are mentioned, and given many sibling tools, some guidance (e.g., 'Use after schematic completion') would help.

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

easyeda_project_begin_transactionBegin project transactionA

Open an in-memory, document-scoped transaction for snapshot-backed schematic writes. Only one active transaction is allowed per document. Beginning a transaction does not modify EasyEDA.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
projectIdYes
ttlSecondsNo
maxOperationsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
detailsNo
successYes
error_codeNo
transactionNo
failed_operation_idsNo
restored_operation_idsNo

TDQS

A3.7/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations: transaction is in-memory, document-scoped, snapshot-backed, and does not modify EasyEDA. Annotations show destructiveHint=false but description clarifies non-modification and scope.

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

Conciseness5/5

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

Three sentences with no wasted words. First sentence states core action, second adds constraint, third clarifies non-modification. Front-loaded and efficient.

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

Completeness2/5

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

While annotations and output schema exist, the description fails to document parameters. For a multi-parameter transaction tool, leaving parameters unexplained reduces completeness significantly.

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

Parameters1/5

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

Schema coverage is 0% and the description does not explain any of the 4 parameters (projectId, label, ttlSeconds, maxOperations). The schema provides names and constraints but the description adds no semantic value.

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?

The description clearly states the action ('Open an in-memory, document-scoped transaction') and the resource ('snapshot-backed schematic writes'). It distinguishes from sibling tools like commit/rollback by noting only one active transaction per document.

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?

The description implies usage before write operations by stating 'transaction for snapshot-backed schematic writes' and the constraint 'only one active transaction'. However, it does not explicitly mention when not to use it or name alternatives.

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

easyeda_project_commit_transactionCommit project transactionA

Finalize a transaction after its writes and validation gates succeed. Commit removes rollback eligibility and releases the document transaction lock.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmWriteYes
transactionIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Discloses that commit 'removes rollback eligibility and releases the document transaction lock', adding behavioral insight beyond the sparse annotations.

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

Conciseness5/5

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

Two sentences that are direct and front-loaded, with no superfluous text.

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?

Provides essential workflow context but could explicitly mention the need for a prior begin_transaction and validation calls.

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

Parameters2/5

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

Description provides no additional meaning for parameters; with 0% schema coverage, it should clarify 'confirmWrite' and 'transactionId', but does not.

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?

Clearly states the verb 'commit' on a transaction resource, distinguishing it from siblings like begin_transaction and rollback_transaction.

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?

Explicitly mentions that commit should occur 'after its writes and validation gates succeed', providing clear usage context, though no explicit alternatives or when-not-to-use is given.

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

easyeda_project_get_transaction_statusGet project transaction statusA
Read-onlyIdempotent

Read transaction state, validation results, operation hashes, and rollback status without exposing captured primitive snapshots.

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
detailsNo
successYes
error_codeNo
transactionNo
failed_operation_idsNo
restored_operation_idsNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds value by disclosing that the tool does not expose 'captured primitive snapshots', providing extra behavioral context beyond what annotations offer.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded and contains no unnecessary words. It efficiently conveys the tool's purpose and key distinction.

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?

Given the tool's simplicity (one parameter, clear annotations, and an output schema), the description is adequately complete. It covers the core functionality and a notable exclusion (primitive snapshots).

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

Parameters2/5

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

Schema description coverage is 0% and the description does not elaborate on the 'transactionId' parameter. Although the parameter name is self-explanatory, the description should have added context such as format or source to aid the agent.

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?

The description clearly states the verb 'Read' and the resource 'transaction state' including specific fields (validation results, operation hashes, rollback status). It also distinguishes from siblings by noting what is not exposed ('captured primitive snapshots').

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

Usage Guidelines3/5

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

The description implies this tool is for checking transaction status but does not explicitly state when to use it versus siblings like project_validate_transaction or project_commit. No guidance on prerequisites or alternatives is provided.

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

easyeda_project_rollback_transactionRollback project transactionA
Destructive

Controlled write: restore applied schematic primitive snapshots in reverse order, verify each restored hash, and report partial rollback explicitly instead of hiding inconsistencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmWriteYes
transactionIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare destructiveHint=true, and the description adds valuable behavioral details: restoring snapshots in reverse order, verifying hashes, and explicitly reporting partial rollbacks. This goes beyond annotations without contradicting them.

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

Conciseness5/5

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

The description is a single, well-structured sentence with no filler. Every part adds meaning: controlled write, restoration order, verification, and explicit reporting.

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?

Given the tool's role in a transaction workflow, the description covers the core action and verification. Though it omits details on failure handling and return values (output schema exists), it provides sufficient context for an AI to infer usage.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the two parameters (transactionId, confirmWrite). While the transactionId is implicit, the confirmWrite constant and its role in confirming the destructive action are not clarified.

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?

The description clearly states the tool performs a controlled write to restore schematic primitive snapshots in reverse order, which is a specific verb-resource combination. It distinguishes itself from other project transaction tools (begin, commit, validate) by focusing on rollback.

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

Usage Guidelines2/5

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

The description does not explicitly state when to use this tool versus alternatives like easyeda_project_validate_transaction. There is no guidance on prerequisites or when not to use it.

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

easyeda_project_saveSave projectA

Explicitly save the current EasyEDA Pro project. This ensures all netlist changes, net flags, pin connections, and other mutations are persisted to the project file. Save is never implicit — the caller must explicitly request it. Requires confirmWrite.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe project/schematic ID to save
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false) and no idempotency. The description adds value by clarifying that save is never implicit and that it persists specific types of changes. However, it does not disclose failure modes, concurrency behavior, or consequences of missing confirmWrite, which would be helpful for an AI agent.

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

Conciseness5/5

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

The description is three sentences long, front-loading the core purpose in the first sentence. Every sentence provides relevant information without redundancy or fluff. The structure is efficient and easy to parse.

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

Completeness3/5

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

Given the tool's relative simplicity and the presence of an output schema (not shown but noted), the description covers the essential behavior. However, it lacks details on error handling, return values, or prerequisites beyond confirmWrite. For a critical write operation, agents might benefit from knowing what happens on failure.

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

Parameters3/5

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

The input schema has 100% description coverage, so the description does not need to add much. It mentions confirmWrite but provides no additional meaning beyond the schema's constraint (must be literal true). The baseline of 3 is appropriate as the schema already defines the parameters adequately.

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?

The description clearly states the tool's purpose: saving the current EasyEDA Pro project. It specifies what is persisted (netlist changes, net flags, pin connections, etc.), making the resource and action unambiguous. The tool is distinct from sibling tools like transaction managers or read-only inspectors, as it focuses on explicit persistence.

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

Usage Guidelines3/5

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

The description explains that save is explicit and requires confirmWrite, providing context for when to use it. However, it does not mention when not to use it or compare it to alternative persistence mechanisms like transactions. Some guidance on avoiding confusion with commit/rollback would improve this dimension.

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

easyeda_project_validate_transactionValidate project transactionA
Read-onlyIdempotent

Run transaction consistency gates before commit: bridge availability, pending/failed operation checks, optional expected operation count, and optional requirement for at least one applied write.

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionIdYes
expectedOperationCountNo
requireBridgeConnectedNo
requireAppliedOperationsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
detailsNo
successYes
error_codeNo
transactionNo
failed_operation_idsNo
restored_operation_idsNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations set readOnlyHint=true, idempotentHint=true, destructiveHint=false, consistent with validation. The description adds specific behavioral details (consistency gates) beyond annotations, without contradiction.

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

Conciseness5/5

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

Single sentence, front-loaded with purpose, no wasted words. Efficient and clear.

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?

Given output schema exists and annotations cover safety, the description adequately explains the validation gates and transaction context. Could mention what happens on failure, but overall complete.

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

Parameters3/5

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

Schema coverage is 0%, so description must compensate. It mentions bridge, expected operation count, and applied writes, corresponding to three parameters, but does not explicitly name them or cover transactionId. Adds some meaning but not fully.

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?

The description clearly states the tool's function: running transaction consistency gates before commit, listing specific checks (bridge availability, pending/failed operations, optional count, applied writes). It distinguishes from sibling tools like begin/commit/rollback.

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?

The description says 'before commit,' indicating usage context. While alternatives are not explicitly mentioned, the sibling list makes the transaction workflow clear. Could be improved by noting when to skip validation.

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

easyeda_rule_check_summaryGet rule check summaryC
Read-onlyIdempotent

Get a summary of all design and electrical rule check results for the project.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
drcYes
ercYes
project_idYes
not_availableNo
overall_passedYes

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description adds no additional behavioral context. It does not describe what happens if no checks have been run or the format of the summary.

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?

The description is a single concise sentence that is front-loaded with the key purpose. No wasted words, though a bit more structure could be beneficial.

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

Completeness3/5

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

Given the presence of an output schema, the description does not need to explain return values. However, it lacks context about when results are available and the relationship to DRC/ERC tools. It is minimally adequate.

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

Parameters2/5

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

The single parameter 'projectId' has no description in the schema (0% coverage), and the tool description does not explain its meaning or format. The description should compensate but fails to do so.

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

Purpose4/5

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

The description clearly states the tool retrieves a summary of design and electrical rule check results. It uses verb 'Get' and specifies the resource. However, it does not explicitly differentiate from sibling tools like easyeda_drc_run or easyeda_erc_run, which perform the checks themselves.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites such as running DRC/ERC checks first, nor does it indicate scenarios where this tool is appropriate.

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

easyeda_run_self_testRun self testB

Run internal self-test to verify server integrity, config, and bridge connectivity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksYes
passedYes

TDQS

B3.3/5.0
Behavior2/5

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

Annotations are minimal (readOnlyHint=false, idempotentHint=false). The description does not disclose side effects, permission requirements, or what exactly happens during the self-test, missing an opportunity to inform the agent beyond the basic action.

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

Conciseness5/5

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

The description is a single sentence of 12 words, front-loaded with the verb and resource, and every word contributes to the purpose. No wasted text.

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?

Given the tool's simplicity (no parameters, has output schema), the description covers the essential purpose. However, it could mention the nature of the output (e.g., pass/fail report) but is not required since output schema exists.

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?

The input schema has no parameters, and schema description coverage is 100%. The description adds meaning by specifying what the test verifies (integrity, config, connectivity), which is sufficient given the parameterless schema.

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

Purpose4/5

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

The description clearly states the verb 'run' and resource 'internal self-test', with specific goals: verify server integrity, config, and bridge connectivity. However, it does not explicitly differentiate from sibling tools like 'easyeda_health_check' which may have similar purpose.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'easyeda_health_check' or 'easyeda_bridge_status'. The description lacks context for appropriate usage scenarios.

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

easyeda_schematic_add_circleAdd schematic circleA

Draw a circle on the schematic sheet — decorative marker or custom symbol element. Cosmetic only, no electrical meaning. fillColor "none" leaves it unfilled.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
radiusYes
centerXYes
centerYYes
lineTypeNo
fillColorNoFill color, hex string, or "none" for unfilled
fillStyleNo
lineWidthNo
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate this is a non-read-only, non-idempotent write operation. The description adds that fillColor 'none' leaves the circle unfilled, which is a useful behavioral detail but does not cover other traits (e.g., side effects, coordinate system, or permission requirements). No contradiction with annotations.

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

Conciseness5/5

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

The description is two sentences long, front-loads the core action and purpose, and the second sentence adds targeted guidance on fillColor. No fluff or redundant information.

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

Completeness2/5

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

Given 9 parameters and low schema coverage, the description omits critical context such as coordinate units, line type interpretation, constraints on radius, and the fact that confirmWrite must be a literal boolean true. The presence of an output schema does not compensate for missing usage context.

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

Parameters2/5

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

With only 22% schema coverage, the description should compensate by explaining parameter meanings. It only addresses fillColor, clarifying that 'none' means unfilled. Other parameters (centerX, centerY, radius, confirmWrite, etc.) are left unexplained, leaving agents to rely on parameter names, which may be insufficient.

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?

The description clearly states the action ('Draw a circle'), the target location ('on the schematic sheet'), and the purpose ('decorative marker or custom symbol element'). It distinguishes from electrically meaningful siblings by emphasizing that it is cosmetic only with no electrical meaning.

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

Usage Guidelines3/5

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

The description implies the tool is for decorative purposes only ('Cosmetic only, no electrical meaning'), but it does not explicitly state when not to use it or provide alternative tools for electrically significant shapes or other decorative primitives like rectangles or polygons.

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

easyeda_schematic_add_polygonAdd schematic polygonA

Draw a closed polygon on the schematic sheet from 3+ vertices — custom decorative shapes, callout arrows, or block diagram elements. Cosmetic only, no electrical meaning.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
pointsYes
lineTypeNo
fillColorNoFill color, hex string, or "none" for unfilled
lineWidthNo
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate a write operation (readOnlyHint=false, idempotentHint=false). The description adds that the polygon is cosmetic and has no electrical meaning, which is useful. However, it doesn't disclose any side effects, required permissions, or behavior on invalid inputs.

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

Conciseness5/5

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

The description is a single, well-structured sentence followed by a clarifying phrase. It is concise, front-loaded, and contains no redundant information.

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

Completeness3/5

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

The description covers the core purpose and cosmetic nature well. Given the tool has 6 parameters and an output schema, it lacks details on parameter semantics and error conditions, but overall is adequate for a simple shape-drawing tool.

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

Parameters2/5

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

Schema description coverage is low (33%) with only fillColor and confirmWrite described. The tool description mentions '3+ vertices' aligning with points minItems, but does not explain color, lineType, lineWidth, or fillColor beyond schema. More parameter guidance is needed.

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?

The description clearly states the tool draws a closed polygon from 3+ vertices on the schematic sheet. It provides specific use cases (decorative shapes, callout arrows, block diagram elements) and distinguishes from electrical tools by noting 'cosmetic only, no electrical meaning'.

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

Usage Guidelines3/5

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

The description implies usage for decorative non-electrical elements but does not explicitly state when not to use or provide alternatives. While it differentiates from electrical tools, it doesn't compare with sibling drawing tools like add_circle or add_rectangle.

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

easyeda_schematic_add_rectangleAdd schematic rectangleA

Draw a rectangle on the schematic sheet — section dividers/grouping boxes for organizing a busy schematic into labeled functional blocks (pair with add_text for the title). Cosmetic only. x/y is the top-left corner; fillColor "none" leaves it unfilled.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesTop-left X coordinate
yYesTop-left Y coordinate
colorNoBorder/line color, hex string (e.g. "#FF0000")
widthYes
heightYes
lineTypeNo
rotationNo
fillColorNoFill color, hex string, or "none" for unfilled
fillStyleNo
lineWidthNo
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.
cornerRadiusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description adds 'cosmetic only' and reveals top-left corner and fillColor behavior. Annotations indicate a write operation (readOnlyHint=false) and non-idempotent, which the description supports with the confirmWrite parameter. No contradictions or missing critical side effects.

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

Conciseness5/5

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

Two concise sentences deliver purpose, use case, and key parameter hints. Front-loaded with the main action. No extraneous text.

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 12 parameters and a schema output, the description covers the essential behavior for a drawing tool. It could mention that the rectangle is drawn on the current schematic sheet, but overall it is sufficient for an agent to understand the tool.

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

Parameters3/5

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

Schema coverage is 42% (5/12 parameters described). The description adds meaning for x, y (top-left corner) and fillColor ('none' for unfilled) but does not explain other parameters like color, lineType, or rotation. It partially compensates for low coverage but not fully.

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?

The description clearly states the action ('draw a rectangle'), the target resource ('schematic sheet'), and the purpose ('section dividers/grouping boxes'). It distinguishes from sibling tools by specifying cosmetic use and pairing with add_text for titles.

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?

The description gives clear context for use (organizing schematic into functional blocks) and hints at pairing with add_text. While it doesn't explicitly exclude alternatives, the cosmetic-only note helps differentiate from functional drawing tools like add_wire.

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

easyeda_schematic_add_textAdd schematic text labelA

Place free-standing text on the schematic sheet (section headers, notes, block labels) — cosmetic/organizational, not a net label. color must be a hex string and fontName a real font (e.g. "Arial") — untyped placeholders create nothing despite returning ok.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
boldNo
colorNo
italicNo
contentYes
fontNameNo
fontSizeNo
rotationNo
alignModeNo
underlineNo
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false), the description warns about silent failure when color/fontName are invalid, adding critical behavioral context.

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

Conciseness5/5

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

Two sentences, no filler: first states purpose with examples, second adds essential behavioral warning. Front-loaded and efficient.

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?

Given the output schema exists, return values are covered. The tool has 12 parameters but description only addresses two; however, the core functionality (placing text) is adequately described, and sibling tools are distinct.

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

Parameters3/5

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

With only 8% schema coverage, the description adds meaning to color and fontName parameters (hex string requirement, real font example, and failure warning), but 10 other parameters remain undocumented.

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?

The description clearly states the tool places free-standing text on the schematic sheet and explicitly distinguishes it from net labels, providing specific use cases (section headers, notes, block labels).

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?

It clarifies when to use (cosmetic/organizational) and when not to use (not a net label), but does not explicitly compare to other schematic text tools or provide alternatives.

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

easyeda_schematic_add_wireAdd schematic wireA

Add a wire connecting schematic coordinates/pins — real native connectivity. Same netName connects pins globally: separate stubs sharing one name merge into one net (no label needed). NET_COLLISION guards touched points against a foreign net's wire, pin, or flag/port — not mid-segment crossings.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNo
pointsYes
netNameNo
lineTypeNo
lineWidthNo
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Description adds real native connectivity, global net merging, and NET_COLLISION behavior beyond annotations; no contradiction with readOnlyHint or idempotentHint.

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

Conciseness5/5

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

Two dense sentences with zero waste, efficiently conveying key behaviors and constraints.

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?

Covers essential connectivity and collision logic, but omits output details and required parameter hints beyond schema; still adequate for the complexity.

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

Parameters3/5

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

Only 17% schema description coverage; description adds meaning to netName and points but doesn't detail color, lineType, lineWidth. Partially compensates.

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?

The description clearly states the tool adds wires, explains net naming and collision detection, and distinguishes from sibling tools like adding components or text.

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?

It provides context for when to use (connectivity, net merging) but lacks explicit exclusions or alternatives; still clear enough for selection.

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

easyeda_schematic_audit_imported_designAudit imported schematic designA
Read-onlyIdempotent

Read the live schematic without modifying it, build a canonical model, and report imported net aliases, duplicate or missing references, unresolved metadata expressions, missing values/footprints, and ambiguous BOM classification. Includes a preview only; it never renames nets or changes components.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe project/schematic ID to audit
includeInfoNoInclude informational imported-alias and power-flag findings
componentLimitNoMaximum number of component records to read from the live bridge

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
sourceYes
statusYes
summaryYes
findingsYes
read_onlyYes
project_idYes
model_summaryYes
not_availableNo
safe_to_normalizeYes
audit_schema_versionYes
normalization_previewYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations provide readOnlyHint, idempotentHint, destructiveHint. Description adds detail about building a canonical model and specific audit checks, reinforcing no modification. No contradictions.

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

Conciseness5/5

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

Description is concise (3 sentences), front-loaded with purpose, and free of redundant text. Every sentence adds value.

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

Completeness5/5

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

Given the presence of output schema, annotations covering safety, and simple parameters, the description sufficiently covers all necessary context for an agent to understand the tool's functionality.

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

Parameters3/5

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

Schema has 100% description coverage for all 3 parameters. Description adds no extra meaning beyond schema (e.g., doesn't explain formats or constraints). Baseline of 3 is appropriate.

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?

The description uses specific verbs ('Read', 'build', 'report') and clearly lists the audit items (net aliases, references, expressions, values, BOM classification). It distinguishes itself from sibling tools by emphasizing read-only and audit nature, unlike modification tools.

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?

States 'preview only; it never renames nets or changes components', conveying when to use (read-only audit). Implicitly contrasts with modification siblings, but does not explicitly name alternatives.

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

easyeda_schematic_batch_writeAtomic schematic batch writeB
Destructive

Apply up to 200 validated schematic create, modify, and delete operations in one snapshot-backed transaction. Any failure rolls the whole transaction back. Delete is limited to safely recreatable drawing primitives.

ParametersJSON Schema
NameRequiredDescriptionDefault
atomicNo
dryRunNo
projectIdYes
operationsYes
confirmWriteYes
transactionIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior4/5

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

Beyond the annotations (destructiveHint=true), the description adds important behavioral details: the operation is snapshot-backed, any failure triggers a full rollback, and deletions are limited to safely recreatable primitives. This provides useful context not available from annotations alone.

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

Conciseness5/5

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

The description is three front-loaded sentences, each serving a clear purpose: core function with limit, rollback behavior, and delete constraint. No unnecessary words.

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

Completeness2/5

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

Given the high complexity (many operation types, transaction semantics, required fields like confirmWrite), the description is too brief. It omits crucial details like the purpose of dryRun, the need for confirmWrite=true, and how this relates to transaction management sibling tools (e.g., project_begin_transaction). The agent would have significant gaps.

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

Parameters1/5

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

The input schema has 0% description coverage for its 6 parameters, yet the description does not explain any of them (projectId, operations, confirmWrite, dryRun, transactionId, atomic). The agent must rely entirely on the schema, which is insufficient for correct usage.

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

Purpose4/5

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

The description clearly states it applies up to 200 validated schematic operations (create/modify/delete) in a snapshot-backed transaction with rollback, distinguishing it from individual operations by emphasizing batch and atomicity. However, it could be more explicit about when to use this tool over alternatives like easyeda_schematic_place_component.

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

Usage Guidelines2/5

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

The description provides no when-to-use or when-not-to-use guidance relative to the many sibling tools (e.g., individual schematic operations). It only mentions a constraint on delete but does not explain the trade-offs or prerequisites for using this batch tool.

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

easyeda_schematic_check_collisionsCheck for pin-coordinate collisions across the sheetA
Read-onlyIdempotent

Scan every component's real pin coordinates and report any (x,y) shared by two or more components — a silent-short risk the native NET_COLLISION guard misses for never-wired pins. Run after manual placement outside easyeda_workflow_* tools (which reconcile this automatically).

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe project/schematic ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
successYes
collisionsYes
project_idYes
collision_countYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds behavioral detail about scanning real pin coordinates and reporting shared ones, and explains the silent-short risk, adding value beyond annotations.

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

Conciseness5/5

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

Two sentences that are front-loaded with purpose and efficient. Every sentence provides value without redundancy.

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

Completeness5/5

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

Given the presence of an output schema (not shown but indicated), the description adequately covers the tool's function, usage context, and the specific risk it addresses. No gaps for a read-only check tool.

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

Parameters3/5

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

Schema coverage is 100% with a single parameter described as 'The project/schematic ID'. Description does not add further meaning beyond the schema, so baseline 3 is appropriate.

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?

The description clearly states the tool scans pin coordinates and reports shared (x,y) as a collision risk, distinguishing it from the native NET_COLLISION guard and specifying it targets never-wired pins.

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?

Explicitly advises to run after manual placement and outside easyeda_workflow_* tools, providing clear usage context. Does not explicitly state when not to use, but context is sufficient.

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

easyeda_schematic_component_pinsGet component pinsA
Read-onlyIdempotent

Get exact pin numbers, names, coordinates, and native pinType for a schematic component by its primitive ID. pinType is EasyEDA's own symbol-library field and is unreliably authored (often "Undefined" even on real ICs) — treat it as a weak hint, not ground truth.

ParametersJSON Schema
NameRequiredDescriptionDefault
primitiveIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
pinsYes
errorNo
successYes
primitiveIdYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations indicate readOnlyHint and idempotentHint. The description adds critical context: pinType is unreliable and should be treated as weak hint, which is beyond the annotations and helps avoid misinterpretation.

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

Conciseness5/5

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

The description is two sentences: first states the core function, second adds a crucial caveat. Every sentence is value-adding and there is no fluff.

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

Completeness5/5

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

Given an output schema exists, the description sufficiently states what data is returned (pin numbers, names, coordinates, pinType) and the reliability caveat. No additional context is needed for this simple tool.

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

Parameters2/5

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

The only parameter 'primitiveId' has no schema description (0% coverage). The description minimally says 'by its primitive ID' which adds little beyond the parameter name. For a simple string parameter, the gap is small but not compensated.

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?

The description clearly states the tool retrieves exact pin numbers, names, coordinates, and pinType for a schematic component by primitive ID. It uses specific verbs and resource, and the sibling list shows no other tool covers pins, so it is well-differentiated.

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?

The description specifies the tool is for getting pin details when you have a primitive ID, and includes a caveat about pinType reliability. It does not explicitly state when not to use, but the clear purpose and warning provide good guidance.

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

easyeda_schematic_componentsList schematic componentsB
Read-onlyIdempotent

List schematic components: primitiveId, reference, value, footprint, x/y/rotation, and device identity for cloning — deviceUuid+deviceLibraryUuid (a place_component deviceItem in this project), deviceName, symbolName, lcsc, manufacturerId.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
projectIdYesThe project/schematic ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
totalYes
componentsYes
project_idYes
not_availableNo
read_consistencyNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description need not repeat that. It adds useful behavioral context by detailing the returned device identity fields and mentioning 'place_component deviceItem in this project', which helps the agent understand the tool's role in cloning operations.

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?

The description is a single sentence that front-loads the core function and lists fields efficiently. However, the inline list could be more readable with line breaks or bullet points. It earns its place with no wasted words.

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

Completeness3/5

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

Given the presence of an output schema, the description does not need to explain return values in detail, but it does. However, it misses important context about pagination (limit/offset) and lacks guidance on usage among sibling tools. It is adequate for a straightforward listing tool but not comprehensive.

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

Parameters1/5

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

Schema description coverage is only 33% (only projectId described). The description does not explain the limit and offset parameters, which are critical for pagination. Without elaboration, the agent cannot understand how to control the number of results or page through them.

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?

The description clearly states that the tool lists schematic components, and enumerates the specific fields returned (primitiveId, reference, value, footprint, x/y/rotation, device identity for cloning). This specificity distinguishes it from sibling tools like easyeda_schematic_component_pins or easyeda_pcb_components.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it specify exclusions or prerequisites. Among many schematic tools, the agent receives no help in selecting this one over others like easyeda_schematic_nets or easyeda_schematic_place_component.

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

easyeda_schematic_connect_pins_by_netConnect pins by netA

Bulk variant of connect_pin_to_net: draws a real wire stub from each pin, tagged with netName, so all listed pins (and anything else already on that net) merge into one net. Visible to ERC, ratsnest, and autorouting. A pin that fails (e.g. collision) is reported in failures rather than aborting the batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
pinsYesList of component pins to connect to the net
netNameYesThe net name to assign pins to
projectIdYesThe project/schematic ID
stubLengthNoLength of the wire stub drawn outward from each pin. Defaults to 10.
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=false (write operation) and idempotentHint=false. The description adds critical behavioral details: draws real wire stubs, visible to ERC/ratsnest/autorouting, and that failing pins are reported individually. This goes beyond annotations.

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

Conciseness5/5

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

The description is three concise sentences, each adding value. First sentence states purpose and relation to sibling, second explains the effect, third covers error handling. No wasted words.

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

Completeness5/5

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

Despite the tool being complex (bulk write, multiple pins), the description covers what it does, the resulting behavior, and error handling. An output schema exists to provide return value details, so completeness is high.

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?

Input schema coverage is 100%, so the schema already explains parameters. The description adds context about the stub length default (10) and the net merging behavior. This is adequate for an agent to understand parameter usage.

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?

The description clearly states it is a bulk variant of connect_pin_to_net, drawing real wire stubs and merging pins into one net. It distinguishes from the sibling tool easyeda_schematic_connect_pin_to_net by noting the bulk nature and error handling.

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?

The description explicitly says 'Bulk variant of connect_pin_to_net' which guides when to use this tool (multiple pins) vs the singular sibling. It also mentions that failures are reported without aborting, providing usage nuance. However, it could be more explicit about when not to use.

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

easyeda_schematic_connect_pin_to_netConnect pin to netA

Create real EasyEDA connectivity for a pin: draws a short wire stub from its exact coordinate, tagged with netName. Same-netName wires merge globally, so this joins the pin to everything else on that net — visible to ERC, ratsnest, and autorouting.

ParametersJSON Schema
NameRequiredDescriptionDefault
netNameYesThe net name to connect the pin to (e.g. VCC, GND, DATA0)
pinNumberYesThe pin number or pin name on the component (e.g. "1", "VCC", "GND")
projectIdYesThe project/schematic ID
stubLengthNoLength of the wire stub drawn outward from the pin. Defaults to 10.
primitiveIdYesThe primitive ID of the component
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate write and non-idempotent behavior. The description adds valuable context: how connectivity is created (wire stub, net merging) and its effects (visible to ERC, ratsnest, autorouting), exceeding what annotations provide.

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

Conciseness5/5

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

Two sentences with no wasted words. The first sentence defines the action, the second explains the behavior. Front-loaded and efficient.

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?

Given the tool has an output schema and 6 parameters, the description covers the core behavior well. It explains the net merging effect and visibility to tooling. Minor omission: no mention of prerequisites (e.g., component must be placed) but overall complete.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description mentions netName and pinNumber indirectly ('tagged with netName', 'exact coordinate') but adds no new meaning beyond the schema's parameter descriptions.

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?

The description states 'Create real EasyEDA connectivity for a pin' with a specific action (draws wire stub, tags with netName). It clearly differentiates from siblings like 'easyeda_schematic_connect_pins_by_net' by focusing on a single pin connection.

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

Usage Guidelines3/5

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

The description implies use when connecting a pin to a net, but does not explicitly state when not to use it or compare to alternatives. Usage context is implied but lacks clear guidance.

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

easyeda_schematic_create_net_flagCreate net flagA

Create a named net flag/label. With identification (Power/Ground/AnalogGround/ProtectGround) it places a power-flag symbol binding to a coincident pin (use for VCC/GND). Without it, a generic net label — cosmetic only; connect pins with add_wire stubs sharing one netName.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate on the schematic canvas
yYesY coordinate on the schematic canvas
netNameYesThe net name to assign (e.g. VCC, GND, TEST_NET)
rotationNoRotation in degrees (0, 90, 180, 270)
projectIdYesThe project/schematic ID
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.
identificationNoPower-flag identification. When set, places an EasyEDA power/ground flag symbol of this type. When omitted, places a generic named net label instead.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations indicate write operation and non-idempotence, which the description corroborates with 'create'. The description adds behavioral context: with identification, it binds to a coincident pin; without, it is cosmetic only. This goes beyond what annotations alone provide.

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

Conciseness5/5

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

Two succinct sentences that immediately state the purpose and then explain the two modes. No redundant or unnecessary words; front-loaded with the primary action.

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?

Given the output schema exists, the description does not need to cover return values. It covers the two modes and connection method. However, it does not address existing net flags or coordinate constraints, but these are minor given the tool's scope.

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

Parameters5/5

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

Schema coverage is 100%, and the description adds meaningful context for the identification parameter by listing the enum values and their purpose. It explains the functional difference between setting and omitting identification, and clarifies that netName should match for stubs, adding value beyond the schema.

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?

The description uses a specific verb ('Create') and identifies the resource ('named net flag/label'). It distinguishes two usage modes (with identification for power flags, without for generic labels) and references a sibling action ('add_wire'), clearly differentiating from tools like 'easyeda_schematic_create_net_port'.

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?

Provides explicit guidance on when to set the identification parameter (for power/ground symbols) versus omitting it (for cosmetic net labels). It also instructs to connect pins using add_wire stubs with the same netName. However, it does not compare directly to sibling tools like create_net_port or connect_pins_by_net.

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

easyeda_schematic_create_net_portCreate net portA

Place a hierarchical net port (off-sheet connector) on the schematic. Net ports create named connections that span multiple schematic sheets, appearing as real SCH_Net entries in the netlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate on the schematic canvas
yYesY coordinate on the schematic canvas
netNameYesThe net name for the port (e.g. VCC, GND, DATA_BUS)
portTypeNoElectrical type of the port
rotationNoRotation in degrees (0, 90, 180, 270)
projectIdYesThe project/schematic ID
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations indicate a write operation (readOnlyHint=false) and idempotentHint=false; the description confirms creation. However, it does not disclose potential side effects (e.g., overwriting existing ports with the same net name), authorization needs, or impact on the netlist beyond the basic statement.

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

Conciseness5/5

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

The description consists of two concise, front-loaded sentences. Every sentence adds value: the first states the action, the second explains behavior and netlist implications. No wasted words.

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

Completeness3/5

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

Given the complexity (7 parameters, 5 required, enums, output schema exists), the description covers the core concept but does not integrate parameter details. It is adequate but could more explicitly state that coordinates (x,y), netName, and portType are required, and that confirmWrite must be true.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter has a description. The tool description adds no additional context to parameters; it only mentions the net name concept. Baseline 3 is appropriate.

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?

The description clearly states the tool's purpose: placing a hierarchical net port (off-sheet connector) on a schematic. It explains that net ports create named connections across multiple sheets and become SCH_Net entries in the netlist. This specificity distinguishes it from sibling tools like net flags or wire addition.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., easyeda_schematic_create_net_flag). It does not mention prerequisites, context, or situations where this tool is preferred.

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

easyeda_schematic_delete_primitiveDelete schematic primitivesA

Delete components, wires, or other drawing objects from the schematic by their primitive UUIDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.
primitiveIdsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false) and non-idempotent behavior (idempotentHint=false). The description adds the fact that deletion is by UUID, but does not disclose other behavioral traits such as error handling, reversibility, or cascading effects. It meets the baseline but adds limited extra value.

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

Conciseness5/5

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

A single sentence of 17 words conveys the action, target, and method without any fluff. It is front-loaded with the verb and resource, making it efficient for an AI agent to parse.

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?

Given the presence of an output schema (not shown) and clear annotations, the description is mostly complete for a delete operation. However, it omits mention of the confirmWrite boolean constraint, which is critical for writing. While the schema documents it, including it in the description would improve completeness for agent decision-making.

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 description coverage is 50%: confirmWrite is documented in schema, but primitiveIds lacks a schema-level description. The tool description adds that primitiveIds are UUIDs, which is valuable context. This compensates for the schema gap, earning a score above baseline.

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?

The description clearly states it deletes schematic primitives by UUID, specifying the verb (delete), resource (schematic primitives), and method (by UUID). This distinguishes it from sibling tools like easyeda_schematic_modify_primitive, which modifies rather than deletes.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. For example, it does not mention that this tool is for deletion while easyeda_schematic_modify_primitive is for modification, or any prerequisites or constraints.

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

easyeda_schematic_modify_primitiveModify schematic primitiveA

Safely modify a schematic primitive while preserving omitted fields. With transactionId and projectId, capture before/after snapshots and automatically restore the prior state if the write or post-write read fails. Component moves keep connected wires attached.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertyYes
projectIdNoRequired when transactionId is supplied; must match the transaction document.
primitiveIdYes
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.
transactionIdNoOptional snapshot-backed project transaction ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description adds value beyond annotations by detailing the transaction mechanism (snapshots, auto-restore) and the wire-attachment behavior for moves. Annotations only indicate non-read-only and non-idempotent, so the description enriches the behavioral model.

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

Conciseness5/5

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

Two sentences with zero waste. The first sentence introduces the core purpose and key safety feature; the second adds a specific use case. Every word earns its place.

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?

The description covers transaction safety and wire behavior, but lacks details on what properties can be modified or what a 'primitive' is. The presence of an output schema helps, so it is largely complete for typical use.

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

Parameters3/5

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

With 60% schema description coverage, the description adds some context (transactionId/projectId for snapshots) but does not explain the 'property' object structure or acceptable values. Baseline of 3 is appropriate as it provides minimal addition over the schema.

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?

The description clearly states 'modify a schematic primitive' with a specific verb and resource. It distinguishes from sibling tools like delete or add by emphasizing safe modification and preservation of omitted fields.

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?

The description explains that the tool is for safe modifications with transaction support and auto-restore, and that component moves keep wires attached. It provides clear context but does not explicitly mention when not to use it or suggest alternatives.

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

easyeda_schematic_net_detailGet schematic net detailA
Read-onlyIdempotent

Get full details for a specific net in the schematic including all connected pins and components.

ParametersJSON Schema
NameRequiredDescriptionDefault
netNameYes
projectIdYesThe project/schematic ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
nodesYes
net_nameYes
node_countYes
project_idYes
not_availableNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description's claim of 'Get' aligns. However, the description adds only minor behavioral context beyond annotations (e.g., 'including all connected pins and components'). Since an output schema exists, return details are likely documented there.

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

Conciseness5/5

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

A single concise sentence of 16 words that front-loads the action ('Get full details...'). No superfluous information.

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

Completeness3/5

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

Given the tool's simplicity and the presence of an output schema, the description is minimally adequate but lacks parameter details (especially netName) and prerequisites. It covers the basic purpose but not enough context for correct invocation.

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

Parameters2/5

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

Schema description coverage is only 50% (only projectId has a description). The description does not explain the netName parameter or its format, leaving half of the parameters undocumented. No additional meaning is provided beyond the schema.

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?

The description explicitly states that the tool gets full details for a specific net, including connected pins and components. The verb 'Get' and resource 'full details for a specific net' are clear, and it distinguishes from sibling tools like 'easyeda_schematic_nets' which likely lists nets.

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

Usage Guidelines3/5

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

The description implies usage when full net details are needed, but does not provide explicit guidance on when to use this tool versus alternatives such as 'easyeda_schematic_nets' or 'easyeda_schematic_component_pins'. No when-not-to-use or context is given.

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

easyeda_schematic_netsList schematic netsA
Read-onlyIdempotent

List all nets in the schematic with their node connections.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe project/schematic ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
netsYes
errorNo
totalYes
project_idYes
not_availableNo
read_consistencyNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds value by specifying that node connections are included in the output, beyond the parameter schema.

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

Conciseness5/5

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

Single sentence of 8 words, perfectly front-loaded with no wasted text. Every word earns its place.

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

Completeness5/5

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

Despite the simplicity, the description covers the tool's purpose completely. The presence of an output schema means return values need not be described. For one-parameter list tool, it is fully adequate.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter (projectId described as 'The project/schematic ID'). The description does not add any additional meaning to the parameter, so baseline score applies.

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?

The description 'List all nets in the schematic with their node connections' uses a specific verb and resource, clearly distinguishing it from sibling tools like easyeda_schematic_net_detail (which focuses on a single net) and easyeda_schematic_validate_netlist (validation).

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

Usage Guidelines3/5

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

No explicit guidance on when or when not to use this tool vs alternatives. While implied as the general listing function, the description lacks criteria for selection over related tools.

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

easyeda_schematic_place_componentPlace schematic componentA

Place a library component/device on the active schematic sheet. Auto-assigns the next free designator ("R?" → "R1") — check the returned value, duplicate "R?" merge into one node. On a timeout error, auto-reconciles against the sheet before reporting failure (see reconciled/unconfirmed) — do not blindly retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
dryRunNo
mirrorNo
rotationNo
addIntoBomNo
addIntoPcbNo
deviceItemYes
subPartNameNo
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.
collisionRadiusNo
verifyAfterWriteNo
checkPlacementCollisionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Adds context beyond annotations: auto-assigns designator, handles duplicate 'R?' by merging, and auto-reconciles on timeout. Annotations only indicate non-read-only and non-idempotent, so the description enriches behavior understanding.

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

Conciseness5/5

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

Two sentences with zero fluff. The first sentence states purpose and core behavior; the second addresses timeout handling. Efficient and front-loaded.

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

Completeness2/5

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

Given 13 parameters, nested objects, and an output schema, the description omits critical details like parameter effects (e.g., mirror, rotation, addIntoBom), return value structure, and prerequisites. Incomplete for a complex write tool.

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

Parameters2/5

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

Schema description coverage is only 8% (only confirmWrite has description). Despite 13 parameters and nested objects (deviceItem), the description does not explain any parameters, leaving agents to infer from names like x, y, mirror, rotation, etc.

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?

The description clearly states 'Place a library component/device on the active schematic sheet' with specific details like auto-assigning designator and merging duplicates. This differentiates it from sibling schematic tools like easyeda_schematic_add_circle or easyeda_schematic_components.

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?

Provides clear guidance: check the returned value for duplicate designators, and on timeout error auto-reconcile rather than blindly retrying. Does not explicitly compare to alternatives but gives operational context.

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

easyeda_schematic_plan_safe_regionPlan safe schematic drawing regionA
Read-onlyIdempotent

Compute a safe schematic drawing region before placing components. Uses live sheet info when available, assumes EasyEDA bottom-left coordinates, reserves the default lower-right title-block keep-out, and returns an anchor/bounds plan that avoids title-block overlap.

ParametersJSON Schema
NameRequiredDescriptionDefault
marginNo
projectIdNo
contentWidthYesEstimated width of the planned circuit block in EasyEDA coordinates
contentHeightYesEstimated height of the planned circuit block in EasyEDA coordinates
preferredRegionNoupper-left
titleBlockKeepoutNoOptional explicit title-block keep-out rectangle when the sheet template is known

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
sheetYes
anchorYes
boundsYes
issuesYes
blockedYes
keepoutsYes
warningsYes
project_idNo
not_availableNo
usable_boundsYes
preferred_regionYes
requested_boundsYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and idempotentHint=true. The description adds beyond that: it uses live sheet info, assumes bottom-left coordinates, reserves default lower-right title-block keep-out, and returns a plan. No contradictions.

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

Conciseness5/5

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

Two sentences with no wasted words. The first sentence front-loads the primary purpose, and the second adds key details. Highly efficient.

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?

Given the complexity (6 params, nested objects, output schema exists), the description is brief but covers core function. It could mention prerequisites (e.g., sheet must be active for live info) but is largely sufficient. Output schema covers return values.

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

Parameters2/5

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

Schema description coverage is 50%, and the tool description does not add meaning beyond what is in the schema. Parameters like 'margin' and 'projectId' lack schema descriptions and are not explained in the description. The description does not compensate for the coverage gap.

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?

The description clearly states it computes a safe schematic drawing region before placing components, specifying it uses live sheet info, assumes EasyEDA coordinates, reserves title-block keep-out, and returns a plan avoiding overlap. This specific verb+resource scope distinguishes it from sibling tools like 'easyeda_schematic_place_component' or 'easyeda_schematic_check_collisions'.

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

Usage Guidelines3/5

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

The description says 'before placing components' implying when to use, but it does not explicitly contrast with alternatives or state when not to use. No exclusions or alternative tools are mentioned, relying on context.

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

easyeda_schematic_preview_imported_normalizationPreview imported schematic normalizationA
Read-onlyIdempotent

Read the live schematic and produce a deterministic, read-only normalization plan with a stable plan ID, model hash, proposed net-name/reference/metadata operations, validation gates, warnings, and blockers. This tool never writes to EasyEDA.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe project/schematic ID to preview
componentLimitNo
normalizeNetNamesNo
annotateReferencesNo
componentOverridesNo
resolveMetadataExpressionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
planYes
errorNo
sourceYes
project_idYes
not_availableNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by detailing the output components (plan ID, model hash, operations, validation gates, warnings, blockers) and reaffirming the read-only nature. No contradiction.

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?

The description is concise with two sentences, front-loading the key information about the tool's function and output. The first sentence is dense but clear; the second is a crisp safety note. No redundant phrases.

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

Completeness3/5

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

Given the tool has 6 parameters and an output schema exists, the description covers the output well but lacks guidance on input parameters like componentLimit or normalizeNetNames. For a preview tool that may be exploratory, more clarity on how parameters affect the plan would improve completeness.

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

Parameters2/5

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

Schema description coverage is only 17%, and the description does not elaborate on any parameters beyond what the schema provides. With low coverage, the description should compensate, but it offers no param-specific guidance, leaving the agent to rely on the sparse schema descriptions.

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?

The description clearly states the tool reads the live schematic and produces a normalization plan, with specifics like 'deterministic', 'read-only', and a list of outputs. It distinguishes from siblings by emphasizing previewing normalization without writing, contrasting with write tools.

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?

The description implies the tool should be used to preview normalization before committing, and explicitly states it never writes, indicating safe usage. However, it lacks explicit guidance on when not to use or comparison to related tools like 'easyeda_schematic_audit_imported_design'.

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

easyeda_schematic_search_deviceSearch library deviceA
Read-onlyIdempotent

Search for schematic symbols/devices in the EasyEDA library by keywords. Full results carry the library's complete metadata object per device; pass minimal:true to get back only uuid/libraryUuid/name/pin_count/symbol_type when that is all you need.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesSearch keyword(s), matched against device name/description in the library
pageNo
minimalNoWhen true, return only uuid/libraryUuid/name/pin_count/symbol_type per device instead of the full library metadata object — use this when the goal is just picking a deviceItem for place_component, to avoid paying for fields you will not read.
symbolTypeNo
itemsOfPageNo
libraryUuidNo
classificationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
totalYes
devicesYes
not_availableNo
provider_tierNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint as true. The description adds value by detailing result behavior: 'Full results carry complete metadata object per device' and the effect of minimal parameter. No contradictions with annotations.

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

Conciseness5/5

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

Two concise sentences with no redundancy. The first sentence delivers the core purpose, and the second elaborates on result format and an important optimization. Every word earns its place.

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

Completeness3/5

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

Given the tool complexity (7 parameters, optional output schema), the description is minimal. It explains full vs minimal results but omits search details, pagination, and error scenarios. Since an output schema exists, return values need not be detailed, but parameter usage context is lacking.

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

Parameters2/5

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

Schema coverage is only 29% (only key and minimal have descriptions). The tool description adds info for minimal but fails to cover page, itemsOfPage, symbolType, libraryUuid, and classification. Parameter meaning remains unclear for the majority of parameters.

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?

Clearly states 'Search for schematic symbols/devices in the EasyEDA library by keywords.' This is a specific verb+resource combination that directly conveys the tool's function. It also mentions the minimal flag feature, further clarifying the behavior without ambiguity.

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

Usage Guidelines3/5

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

Provides usage guidance for the minimal parameter ('pass minimal:true when that is all you need'), but does not contrast with sibling tools or give when-to-use/when-not-to-use advice. No reference to alternatives like other search or inventory tools.

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

easyeda_schematic_set_title_blockSet schematic title block fieldsA

Update schematic title block text fields (Company, Version, Drawn, Reviewed, Page Size). Only these 5 are exposed — writing Symbol/Border/Device/etc once corrupted a real title block; those are read-only natively and must be fixed via the EasyEDA Pro UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesMap of title block field name to the sub-fields to change, e.g. { "Company": { "value": "ACME", "showValue": true } }
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.
showTitleBlockNoShow/hide the whole title block

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only indicate read-only=false and idempotent=false. The description adds critical behavioral context: writing non-exposed fields once corrupted a title block, and those fields are read-only natively. This goes beyond the annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with purpose, no wasted words. The warning is efficient and essential.

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?

An output schema exists, so return values are covered. The description covers the scope, constraints, and prerequisite (confirmWrite), making it complete for a title block update tool.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds that only these five fields are exposed and mentions the confirmWrite requirement, but it doesn't add significant detail beyond the schema itself.

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?

The description explicitly states the tool updates title block fields and lists the five exposed fields (Company, Version, Drawn, Reviewed, Page Size). This clearly distinguishes it from sibling tools like easyeda_schematic_add_text or easyeda_schematic_modify_primitive, which handle other schematic elements.

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

Usage Guidelines5/5

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

The description explicitly warns against writing Symbol/Border/Device/etc. fields (which are read-only natively) and directs the user to fix such cases via the EasyEDA Pro UI. This provides clear when-to-use and when-not-to-use guidance.

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

easyeda_schematic_sheet_infoGet schematic sheet infoB
Read-onlyIdempotent

Return read-only active schematic sheet metadata including page size, frame, origin, and grid hints for safer component placement.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
gridNo
errorNo
frameNo
sheetNo
originNo
page_sizeNo
project_idNo
not_availableNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds context about returning metadata and its purpose, but does not disclose additional behavioral traits beyond what annotations provide. No contradictions.

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

Conciseness5/5

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

The description is a single sentence, 14 words, with no superfluous content. It is front-loaded with the action and resource, making it efficient for the agent to parse.

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

Completeness3/5

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

Given the existence of an output schema, the description reasonably lists returned metadata fields. However, it does not explain the parameter or the 'active sheet' context, and with 0% schema coverage on the parameter, the description is incomplete for effective use.

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

Parameters1/5

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

The schema has one parameter (projectId) with 0% description coverage and it is not required. The description fails to mention or explain the parameter, leaving the agent unsure of its role or whether it is optional (the description says 'active' without clarifying).

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

Purpose4/5

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

The description clearly states the tool returns read-only active schematic sheet metadata, listing specific items (page size, frame, origin, grid hints). It distinguishes from sibling tools that deal with components or nets, though it does not explicitly contrast them.

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

Usage Guidelines3/5

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

The description hints at usage for 'safer component placement' but provides no explicit guidance on when to use this tool versus alternatives like easyeda_schematic_components. No when-not-to-use or alternative names are mentioned.

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

easyeda_schematic_sync_to_pcbRequest schematic-to-PCB sync (needs human approval)A
Idempotent

Request a schematic-to-PCB sync (SCH_Document.importChanges). CAUTION (live-verified): opens a confirmation dialog in EasyEDA Pro's UI a HUMAN must approve — success here only means the request was sent, not that components appeared. Ask the user to approve the dialog, then verify with pcb_components.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNo
confirmWriteYesMust be the literal boolean true (not the string "true") to allow this write.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Annotations indicate readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds critical behavioral context: it opens a confirmation dialog requiring human approval, success only means request sent not components appeared, and recommends verification. This significantly exceeds what annotations alone provide, with no contradiction.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the core purpose, followed by a caution and user guidance. Every sentence adds value; there is no redundancy or irrelevant detail. It is directly actionable for an AI agent.

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?

Given the output schema exists, return value explanation is not needed. The description covers the essential behavioral nuance (human approval, async effect) and post-action verification. It missed parameter guidance but that's partly covered by schema. Overall sufficiently complete for a tool of moderate complexity.

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

Parameters2/5

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

Schema description coverage is 50% (only confirmWrite has a description). The tool description adds no parameter information beyond the schema; it does not mention projectId or confirmWrite. While the schema already describes confirmWrite's constraint, the description should have clarified the role of projectId or the overall parameter usage, making this a gap.

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?

The description clearly states it requests a schematic-to-PCB sync (SCH_Document.importChanges). The title and description together specify the verb (request sync) and resource (schematic to PCB), distinguishing it from all sibling tools, none of which offer the same sync functionality.

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?

The description provides clear context: it requires human approval in a dialog, and advises to verify the result with pcb_components. It implicitly tells when to use (after schematic changes needing PCB sync) but does not explicitly list alternatives or contraindications. Overall useful guidance.

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

easyeda_schematic_validate_netlistValidate netlistA
Read-onlyIdempotent

Validate the schematic netlist: inferred nets, connected refs/pins, floating pins, plus a cross-check with native ERC (native_erc). valid needs BOTH the inference clean AND native ERC 0 errors — inference alone false-positives when pins overlap without a wire.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe project/schematic ID
includeWireCheckNoWhen true, also check for graphical wires without netlist connectivity

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
validYes
netlistYes
warningsYes
native_ercNo
project_idYes
total_netsYes
floating_pinsYes
not_availableNo
wires_without_netlistNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds valuable behavioral context: it explains that validation requires both inference and native ERC, and that inference alone can give false positives when pins overlap without a wire. This enhances transparency beyond the annotations.

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?

The description is concise (two sentences), front-loads the core purpose, and avoids unnecessary content. It could be slightly more structured, but it is effective and efficient.

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?

Given the tool's complexity (cross-checking two validation methods) and the presence of an output schema, the description provides sufficient context. It explains the key condition for 'valid' and the reason for combining checks, leaving no major gaps.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are described in the input schema. The description does not add additional meaning or usage details for the parameters beyond what the schema provides. Baseline score of 3 is appropriate.

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?

The description clearly states the tool validates the schematic netlist, listing specific checks (inferred nets, connected refs/pins, floating pins, cross-check with native ERC) and defines what 'valid' means. It provides a specific verb+resource with distinctive scope.

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

Usage Guidelines3/5

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

The description includes useful context about false positives when inference runs alone, implying when this combined check is valuable. However, it does not explicitly state when to use this tool versus siblings like easyeda_erc_run or easyeda_schematic_nets, nor does it provide clear usage guidance.

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

easyeda_schematic_verify_writeVerify schematic write resultA
Read-onlyIdempotent

Read back schematic state after an agent-authored write. Returns component-count delta evidence and optional netlist validation so agents can confirm a placement or connection before continuing.

ParametersJSON Schema
NameRequiredDescriptionDefault
netNameNo
projectIdNo
includeWireCheckNo
beforeComponentCountNo
expectedComponentCountDeltaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
net_nameNo
warningsYes
project_idNo
component_countNo
netlist_availableYes
netlist_validationNo
components_availableYes
component_count_deltaNo
component_delta_matchesNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the read-only nature is clear. The description adds that it returns component-count delta and optional netlist validation, but does not disclose further behavioral details such as side effects or required permissions.

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

Conciseness5/5

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

The description is extremely concise at two sentences and 20 words, with no extraneous information. Every sentence adds value: the first explains the core action, the second specifies outputs and use case.

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?

Given the existence of an output schema, the description adequately explains return values (component-count delta, netlist validation) and the purpose. However, it omits any discussion of the 5 parameters, which for a verification tool would help agents understand configuration options.

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

Parameters1/5

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

The input schema has 5 parameters with 0% schema description coverage, meaning no parameter documentation exists in the schema. The description provides no information about any parameters, failing to compensate for the lack of schema descriptions.

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?

The description clearly states the tool reads back schematic state after a write, with specific outputs (component-count delta, netlist validation). It distinguishes itself from sibling schematic tools by focusing on verification after agent-authored writes.

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?

The description explicitly indicates when to use: after an agent-authored write, to confirm placement or connection before continuing. However, it does not mention when not to use or list alternatives, leaving room for improvement.

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

easyeda_schematic_wiresList schematic wiresA
Read-onlyIdempotent

List wire segments: primitiveId, line coordinates, net name, color, style. Page with offset (check total) past the 50-wire-per-call cap. primitiveId is required by delete_primitive/modify_primitive — schematic_nets alone cannot resolve a wire ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
projectIdYesThe project/schematic ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
totalYes
wiresYes
project_idYes
not_availableNo
read_consistencyNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds value by disclosing the 50-wire-per-call cap and pagination behavior. No contradictions with annotations. Additional context about primitiveId usage for delete/modify enhances transparency.

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

Conciseness5/5

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

The description is three sentences with no wasted words. Front-loaded with the main action, followed by pagination nuance and cross-reference. Every sentence earns its place.

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

Completeness5/5

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

Given the tool's complexity (3 params, output schema exists), the description covers key aspects: output content, pagination cap, and purpose of primitiveId. It references checking total count for pagination. No gaps identified; output schema handles return details.

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 only 33% (only projectId described). The description compensates by explaining limit's cap and offset's role in pagination. It also clarifies the output includes primitiveId, which is critical for other tools, thus adding meaning beyond the schema.

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?

The description clearly states the tool lists wire segments and enumerates returned fields (primitiveId, coordinates, net name, color, style). It distinguishes from sibling tool easyeda_schematic_nets by noting that schematic_nets alone cannot resolve wire IDs, making the purpose unambiguous.

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?

The description provides clear pagination guidance ('page with offset past 50-wire-per-call cap') and explains that primitiveId is needed for delete_primitive/modify_primitive. While not an explicit 'when to use vs alternatives', it effectively contrasts with schematic_nets, implying when to choose this tool.

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

easyeda_semantic_erc_autoAuto-extract netlist and run semantic ERCA
Read-onlyIdempotent

Extract nets/devices/pins from the LIVE schematic and run semantic ERC — no hand-authored netlist needed. Net/pin electrical types are INFERRED from naming conventions, not verified — treat findings as a first-pass signal, not a substitute for semantic_erc_validate.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
errorsYes
passedYes
warningsYes
project_idYes
error_countYes
total_issuesYes
not_availableNo
warning_countYes
inferred_net_countYes
inferred_device_countYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context that the tool infers electrical types from naming conventions and treats findings as a first-pass signal, which is beyond what annotations provide.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core action, and efficiently conveys the tool's purpose and caveat without unnecessary words.

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?

Given a single parameter and the presence of an output schema, the description covers the essential behavioral aspects and usage guidance, though it could slightly benefit from mentioning the output structure (but output schema likely covers that).

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

Parameters2/5

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

With 0% schema description coverage, the description does not explain the sole 'projectId' parameter, leaving its meaning implicit. It relies on the tool name and context, which is insufficient for a low-coverage scenario.

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?

The description clearly states the tool extracts nets/devices/pins from the live schematic and runs semantic ERC, and distinguishes itself from the sibling tool 'semantic_erc_validate' by noting it is a first-pass signal.

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

Usage Guidelines5/5

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

The description explicitly tells the agent when to use this tool (for quick auto-extraction and ERC) and when not to use it (not a substitute for semantic_erc_validate), providing clear guidance.

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

easyeda_semantic_erc_validateRun semantic ERC validationA
Read-onlyIdempotent

Run semantic electrical-rule validation over a netlist with pin electrical types to detect output contention, floating inputs, power conflicts, missing power pins, missing decoupling, and voltage-domain mismatches.

ParametersJSON Schema
NameRequiredDescriptionDefault
netsYes
devicesNo
projectIdNo
interfacesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorsYes
passedYes
warningsYes
project_idYes
error_countYes
total_issuesYes
warning_countYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows it's safe. The description adds context about the types of rules checked, but does not disclose additional behavioral traits like permissions or latency.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the core functionality and specific detection categories without any filler.

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

Completeness2/5

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

Given the tool's complexity (4 parameters, nested objects, 0% schema coverage), the description is incomplete. It does not indicate the optional nature of 'devices', 'interfaces', and 'projectId', and relies entirely on the output schema to explain return values, making the description insufficient for proper agent usage.

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

Parameters2/5

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

With 0% schema description coverage, the description does not explain the structure of required 'nets' parameter or optional parameters (devices, interfaces, projectId). It mentions 'netlist' generically but fails to detail the required schema fields, leaving the agent to infer from the schema itself.

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?

The description clearly states the tool runs semantic electrical-rule validation (verb+resource) and lists specific detection outcomes (output contention, floating inputs, etc.), distinguishing it from basic ERC tools like easyeda_erc_run.

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

Usage Guidelines3/5

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

The description implies usage when a netlist with pin electrical types is available and semantic checks are needed, but it lacks explicit when-to-use/when-not-to-use guidance or mentions of alternatives like easyeda_erc_run.

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

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but there are some pairs (e.g., connect_pin_to_net vs connect_pins_by_net, drc_run vs erc_run) that could cause minor confusion for an agent. The overall high specificity helps maintain differentiation.

Naming Consistency5/5

All tools consistently use the 'easyeda_<category>_<action>' snake_case pattern, making it easy for an agent to infer function from the name. No mixing of conventions.

Tool Count3/5

With 70 tools, the server is on the heavier side. While the domain (EDA/PCB design) is complex and requires many operations, the sheer number may overwhelm agents and increase selection difficulty. Still within plausible bounds for a comprehensive toolset.

Completeness5/5

The tool surface covers nearly all facets of PCB design: schematic editing, board layout, BOM management, design rules, production review, and even transaction management. Only niche features might be missing, but core workflows are fully supported.

Maintenance

ActivityActive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for AI-assisted PCB design with EasyEDA Pro, enabling inspection, review, and automation of schematics, PCBs, and manufacturing export.
    1
    4
    Apache 2.0
  • A
    license
    B
    quality
    A
    maintenance
    MCP servers for KiCad schematic, PCB, symbol, footprint, and project automation, enabling AI-assisted electronic design via tools for read/write, analysis, and exports.
    109
    5
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    An MCP server that enables AI assistants to analyze schematics, inspect PCBs, trace connections, validate designs, and generate embedded code for KiCad projects.
    39
    88
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oaslananka/easyeda-mcp-pro'

If you have feedback or need assistance with the MCP directory API, please join our Discord server