Source Parts MCP Server
OfficialThe Source Parts MCP Server enables AI assistants to search, source, and manage electronic components with multi-EDA integration and manufacturing workflow support.
Component Search & Sourcing
Search for parts by query, keywords, or parametric filters (resistance, tolerance, package, etc.)
Get detailed part info, compare prices across suppliers, and check real-time availability
Find alternative/replacement parts for obsolete or unavailable components
Estimate costs for a list of parts quickly
BOM Management
Upload and process BOM files (CSV, XLSX, JSON, XML) from KiCad, Altium, Fusion 360, Eagle, PADS, and Protel 99
Check BOM processing status, match components to real-world parts with AI-powered algorithms
Calculate total BOM cost and get combined fabrication + assembly quotes
KiCad Integration
Find, analyze, and extract BOMs/netlists from local KiCad projects
Match KiCad components to real-world parts, highlight net traces, and export in KiCad-compatible formats
Open projects directly in the KiCad application
PCB Manufacturing
Get fabrication quotes by project reference or Gerber file upload
Submit and track DFM (Design for Manufacturability) analyses
Check manufacturing job status for fab, DFM, AOI, and QC jobs
PCB & Component Identification
Identify PCBs or components from photos using barcode/QR detection and OCR text extraction
Datasheet Analysis
Read, chunk, and list sections from datasheet PDFs with keyword filtering
Project & CLI Management
Get project context from local config files enriched with API data
Access Source Parts CLI documentation
Licensed under Apache License 2.0 for open source distribution.
Supports environment variable configuration through .env files for API keys and settings.
Source code version control and development workflow management.
Project hosting, issue tracking, and contribution management through GitHub repository.
Provides platform-specific configuration instructions for macOS users.
Built using Node.js runtime environment for server implementation and execution.
Distributed as an npm package for easy installation and dependency management.
Implemented in TypeScript for type-safe development of the MCP server.
Uses Zod for runtime validation of API requests and responses.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Source Parts MCP Serversearch for 10k ohm resistors with 1% tolerance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Parts MCP
A Model Context Protocol (MCP) server for sourcing electronic parts with multi-EDA integration.
Overview
Parts MCP enables AI assistants to search for electronic components, compare prices, check availability, and process BOMs from popular EDA tools. It provides a unified interface for component sourcing workflows powered by the Source Parts API.
Related MCP server: Nexar MCP Server
Supported EDA Tools
Tool | BOM Format | Status |
KiCad | CSV, XML | Full support + CLI integration |
Altium Designer | CSV, XLS | Full support |
Autodesk Fusion 360 | CSV | Full support |
Eagle | CSV, BRD | Full support |
PADS | CSV, ASC | Full support |
Protel 99 | CSV | Full support |
Features
Universal Parts Search: Search millions of parts via Source Parts API
Multi-EDA BOM Processing: Import BOMs from KiCad, Altium, Fusion360, Eagle, PADS, Protel99
Component Matching: AI-powered matching with confidence scoring
Price Comparison: Compare prices across distributors
Availability Check: Real-time inventory levels
Alternative Parts: Find drop-in replacements and functional equivalents
KiCad CLI Integration: Generate BOMs directly from schematics
Local Caching: Fast responses with intelligent caching
Installation
Quick Start (Recommended)
uvx parts-mcpNo install needed -- uvx runs it directly from PyPI in an isolated environment.
With pip
pip install parts-mcpFrom Source
git clone https://github.com/SourceParts/parts-mcp.git
cd parts-mcp
pip install -e .Requirements
Python 3.10+
Source Parts API key (get one here)
Configuration
Create a .env file or set environment variables:
# Required
SOURCE_PARTS_API_KEY=your_api_key_here
# Optional
SOURCE_PARTS_API_URL=https://api.source.parts/v1
KICAD_SEARCH_PATHS=/path/to/kicad/projects
PARTS_CACHE_DIR=~/.cache/parts-mcp
CACHE_EXPIRY_HOURS=24Claude Desktop Integration
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"parts": {
"command": "uvx",
"args": ["parts-mcp"],
"env": {
"SOURCE_PARTS_API_KEY": "your_api_key_here"
}
}
}
}If installed from source:
{
"mcpServers": {
"parts": {
"command": "/path/to/python",
"args": ["/path/to/parts-mcp/main.py"],
"env": {
"SOURCE_PARTS_API_KEY": "your_api_key_here"
}
}
}
}After adding the configuration, restart Claude Desktop.
Claude.ai Integration (Remote)
Connect directly from claude.ai without any local installation:
Open claude.ai in your browser
Go to Settings > Connectors
Click Add custom connector
Enter the URL:
https://mcp.source.parts/Complete the OAuth sign-in when prompted
Start using Parts tools in any conversation
No API key needed -- authentication is handled via OAuth.
Claude Code Integration
Add to your Claude Code MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"parts": {
"command": "uvx",
"args": ["parts-mcp"],
"env": {
"SOURCE_PARTS_API_KEY": "your_api_key_here"
}
}
}
}Or run directly:
claude --mcp-server "python -m parts_mcp"Usage Examples
Search for Parts
"Find a 10k resistor in 0603 package"
Process a BOM
"Upload my Altium BOM and find the best prices for 100 units"
KiCad Integration
"Extract the BOM from my amplifier.kicad_sch and source all components"
Find Alternatives
"Find alternatives for the obsolete LM358"
Check Availability
"Check stock levels for STM32F103C8T6"
Available Tools
Tool | Description |
| Search for components by query |
| Get detailed part information |
| Get pricing across distributors |
| Check real-time inventory |
| Find replacement parts |
| Process BOM file from any supported EDA |
| Match BOM components to parts |
| Discover local KiCad projects |
| Generate BOM from KiCad schematic |
Architecture
Parts MCP follows a thin client architecture:
Local (MCP):
KiCad CLI operations
Project discovery
Response caching
BOM file parsing
Server (Source Parts API):
Component matching
Price aggregation
Inventory checking
Alternative search
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run with debug logging
DEBUG=1 python main.pyProject Structure
parts_mcp/
├── server.py # MCP server entry
├── config.py # Configuration
├── tools/ # MCP tools
├── resources/ # MCP resources
├── prompts/ # Prompt templates
└── utils/
├── api_client.py # Source Parts API client
├── bom_parser.py # Multi-EDA BOM parsing
├── component_matcher.py # Component matching
├── cache.py # Response caching
└── kicad_utils.py # KiCad CLI integrationMarketplace Listings
MCP Registry - Official MCP server registry
Smithery - One-click install marketplace
Hosted Server - Remote MCP for claude.ai connectors
Links
Source Parts - Component search platform
Source Parts API Docs - API documentation
MCP Specification - Model Context Protocol
License
MIT License with Trademark Protection - see LICENSE.md
"Source Parts" is a trademark. See license for usage restrictions.
Available Tools
111 toolsadd_doc_safelistAInspect
Add a MIME type to the document upload safelist.
Once added, files whose Magika-detected type matches this MIME type will be accepted for upload. Requires admin role.
| Name | Required | Description | Default |
|---|---|---|---|
| mime_type | Yes | MIME type to allow, e.g. "application/pdf". | |
| label | Yes | Magika content label, e.g. "pdf". Run `parts doc scan` against a sample file to find the correct label. | |
| description | No | Optional human-readable note about this entry. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must convey behavioral traits. It mentions write operation and admin requirement but omits details like idempotency, what happens if MIME type already exists, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Effectively conveys key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple; schema and output schema cover details. Description adds prerequisite and effect. Missing some behavioral context but sufficient for the operation's straightforward nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds no additional meaning beyond schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb (Add), resource (document upload safelist), and effect (accepted for upload). Distinguishes from siblings (list_doc_safelist, remove_doc_safelist).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies prerequisite (admin role) but does not explicitly state when to use versus alternatives or when not to use. Context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_usersAInspect
List all users. Owner-only.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Optional filter by role (public, admin, owner) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses authorization requirement ('Owner-only') but lacks details on output format, pagination, or error behavior for non-owners.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, clear sentences with no redundant information. Front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Low complexity tool with optional param and output schema. Description sufficient for basic understanding, though could mention that it returns user list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single optional parameter with description. Description adds no extra semantic meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'list', resource 'users', and scope 'all users'. Distinguishes from siblings like 'admin_set_user_role' which modifies roles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies 'Owner-only' indicating restricted access. No explicit alternatives, but sibling context implies role management tools exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_set_user_roleAInspect
Set a user's role level. Owner-only.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Target user's Auth0 sub or Source Parts user ID | |
| role | Yes | New role: public, admin, or owner |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only mentions the authorization requirement but does not disclose side effects, reversibility, or other behavioral traits of this mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no unnecessary words. It is front-loaded and efficiently conveys the purpose and constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity and the presence of an output schema, the description provides enough context. It covers the essential action and authorization, though it could mention post-action effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no extra information about the parameters beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resource 'user role level', and adds a constraint 'Owner-only'. This distinguishes it from sibling tools like 'admin_list_users'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates that only owners should use this tool ('Owner-only'), providing clear context for appropriate use. However, it does not explicitly mention when not to use it or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_kicad_projectCInspect
Analyze a KiCad project to extract detailed information.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to KiCad project file (.kicad_pro) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral traits. It only states 'extract detailed information' without clarifying read-only status, side effects, or output characteristics. This is insufficient for a tool operating on projects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (7 words), which is concise but sacrifices informativeness. It does not efficiently convey essential details, earning a middling score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description fails to hint at what kind of information (e.g., schematic, netlist, PCB) is extracted. Given the large set of sibling tools, this lack of specificity undermines completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage (project_path described), so the description adds no extra meaning beyond the schema. Baseline score 3 applies, as the description does not explain syntax, format, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'analyze' and the resource 'KiCad project', but does not specify what detailed information is extracted, leaving its scope ambiguous. Among many KiCad-related sibling tools, it lacks differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'kicad_ctrl_analyze' or 'extract_bom_from_kicad'. The description offers no context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assembly_aoi_inspectAInspect
Station 4: Automated optical inspection.
Uploads board photos and optional golden reference image. Server compares placement quality and flags defects.
IMPORTANT: Review the defect report and manually verify flagged items.
| Name | Required | Description | Default |
|---|---|---|---|
| board_photos | Yes | List of paths to board photos (JPEG/PNG) | |
| reference_image | No | Optional path to golden reference image |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It states the server compares placement quality and flags defects, and includes a warning to manually verify. This gives adequate insight into the tool's behavior and limitations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then action, then important warning. No unnecessary words or redundancy. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not be described. Parameters are fully covered. The description adds the critical warning about verification. For a manufacturing inspection tool, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so parameters are already well-documented. The description adds minor context (e.g., 'golden reference image' and 'JPEG/PNG'), but does not significantly enhance understanding beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for automated optical inspection (Station 4), explains it uploads board photos and compares placement quality to flag defects. It distinguishes from sibling tools like assembly_functional_test or quality_fai_inspect by naming the specific station and purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains to upload board photos and an optional reference image, and explicitly instructs users to review the defect report and manually verify flagged items. However, it does not explicitly state when to use this tool versus other inspection tools (e.g., xray_analyze), which would make it clearer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assembly_feeder_setupAInspect
Station 2: Generate optimal feeder slot assignment.
Uploads BOM and position CSV. Server groups components and assigns feeder slots to minimize changeover time.
IMPORTANT: Review the feeder map before loading the machine.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM CSV file | |
| position_path | Yes | Path to position/placement CSV file | |
| machine | No | Machine type (e.g. "neoden", "juki", "yamaha") | neoden |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions optimization goal and caution, but does not detail side effects, permissions, or error conditions. Adequate for basic understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences. No wasted words. Key information front-loaded with 'Station 2' and core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists to document return structure. Description covers core function, sequential context, and a caution. Could mention expected output more explicitly, but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage. Description mentions uploading BOM and position CSV, which maps to bom_path and position_path, but adds no additional meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Generate optimal feeder slot assignment' using BOM and position CSV. Distinguishes from sibling assembly tools like assembly_readiness_check or assembly_reflow_profile by specifying a unique station and function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context with 'Station 2' and prerequisite 'Review the feeder map before loading the machine.' Does not explicitly mention when not to use or alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assembly_functional_testAInspect
Station 5: Validate functional test results against pass/fail criteria.
Uploads test results CSV and criteria JSON. Server validates each unit against specs and calculates yield.
IMPORTANT: Review yield and outliers before lot disposition.
| Name | Required | Description | Default |
|---|---|---|---|
| results_path | Yes | Path to test results CSV file | |
| criteria | No | Pass/fail criteria dict, e.g. {"Vout": {"min": 3.2, "max": 3.4}} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It discloses that the tool uploads data ('Uploads test results CSV and criteria JSON'), validates units, and calculates yield. It also warns to review yield before lot disposition. However, it does not clarify if the upload is destructive, whether authorization is required, or what happens on the server side beyond validation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, starting with the core purpose and station identifier. Every sentence adds unique information: purpose, inputs, server action, and a critical warning. No redundant or vague language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and an existing output schema, the description adequately covers inputs, the validation process, and a post-use recommendation. It lacks mention of error handling or behavior when criteria is null (allowed by schema), but given the output schema likely explains return values, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a description. The description adds meaningful context: it explains that criteria JSON defines pass/fail specs for each unit and that the server validates against these specs to calculate yield. This goes beyond the schema's simple type/example by linking parameters to the tool's functional behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Validate functional test results against pass/fail criteria' and specifies it is Station 5 in a process. It details the inputs (CSV and JSON) and output (yield calculation). This distinguishes it from sibling assembly tools like assembly_aoi_inspect or assembly_reflow_profile, which have different test stages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage when functional test results are available, but does not explicitly state when to use this tool instead of alternatives like assembly_aoi_inspect or assembly_readiness_check. There is no guidance on when not to use it or prerequisites, leaving the agent to infer context from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assembly_readiness_checkAInspect
Station 1: Pre-assembly readiness checklist.
Uploads BOM, gerber ZIP, and position CSV to the API. Server checks: all parts parseable? stencil layer present? positions match BOM?
IMPORTANT: Review the checklist before proceeding to feeder setup.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM CSV file | |
| gerber_path | Yes | Path to gerber ZIP file | |
| position_path | Yes | Path to position/placement CSV file |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and details the upload action and the specific checks performed (parts parseability, stencil layer presence, position-BOM match). It does not explicitly state side effects or whether outputs are saved, but the checks are well-defined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a header, a blank line, three bullet-like checks, and an important note. Every sentence adds value, and the structure is front-loaded with the tool's identity and purpose. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three simple string parameters and an output schema (indicated), the description fully explains the tool's role, inputs, and the checks it performs. It also provides contextual guidance about its place in the process, making it complete for the given complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description rephrases the three parameters (BOM, gerber ZIP, position CSV) but adds no new detail beyond the schema's param descriptions. It provides context on why they are used but no extra semantic depth for individual parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a pre-assembly readiness checklist that uploads three file types and performs specific server checks. It distinguishes itself from siblings by explicitly positioning itself as 'Station 1' and the step before 'feeder setup', making its role and scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is the first station, to be used before feeder setup. The note 'Review the checklist before proceeding to feeder setup' reinforces this order. However, it does not explicitly mention scenarios where this tool should not be used or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assembly_reflow_profileAInspect
Station 3: Analyze BOM thermal specs and recommend reflow profile.
Uploads BOM CSV. Server analyzes MSL levels, peak reflow temps, and soak times across all components.
IMPORTANT: Review thermal constraints and MSL warnings before reflowing.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM CSV file (with optional MSL, Peak_Temp columns) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behaviors. It explains analysis of MSL levels, peak reflow temps, and soak times, implying a read-only operation, but does not disclose side effects, file handling, or output details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with two short sentences and a warning, front-loaded with the core purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-param tool with an output schema, the description covers the analysis performed and includes a caution. It is mostly complete, though it could detail how the recommendation is presented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear param description. The description adds context about uploading CSV and optional MSL/Peak_Temp columns, but does not significantly augment the schema's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Analyze BOM thermal specs and recommend reflow profile' with specific verb and resource. It mentions 'Station 3' to differentiate from other BOM and assembly tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes 'IMPORTANT: Review thermal constraints and MSL warnings before reflowing' as a caution, but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_bom_costCInspect
Calculate total cost for a bill of materials.
| Name | Required | Description | Default |
|---|---|---|---|
| bom | Yes | List of parts with quantities | |
| quantity | No | Number of boards/assemblies | |
| preferred_suppliers | No | Optional supplier preferences |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It only states 'Calculate total cost' without disclosing behavioral traits like whether it uses live prices, any side effects (it likely reads data), or prerequisites. This is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but it sacrifices informativeness. It is not structured for scanning (no bullet points) and lacks examples or clarifications. Balance between conciseness and completeness is not optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description does not provide sufficient context about the calculation method, assumptions, or data sources. For a cost calculation tool, more context (e.g., pricing data source, handling of missing prices) would be expected for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a description. However, the tool description does not add any extra meaning beyond the schema; for example, it doesn't clarify the expected structure of objects in the 'bom' array or how 'preferred_suppliers' affects cost. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates total cost for a bill of materials, using a specific verb and resource. However, it does not distinguish from sibling tools like estimate_cost or compare_prices, which have overlapping purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 estimate_cost, compare_prices, or supply_chain related tools. The description lacks any when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_availabilityCInspect
Check availability for multiple parts.
| Name | Required | Description | Default |
|---|---|---|---|
| part_numbers | Yes | List of part numbers | |
| quantities | No | Optional quantities needed for each part |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose any behavioral traits such as return value, scope, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, immediately front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema, the description omits what 'availability' means (e.g., inventory levels, lead times) and context for a check tool among many.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no additional meaning beyond the schema's 'List of part numbers' and 'Optional quantities needed for each part'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (check) and resource (availability for multiple parts), but does not differentiate from sibling check tools like check_bom_status or check_dfm_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 context or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_bom_statusAInspect
Check BOM processing status and report unknown/unmatched parts.
When processing is complete, automatically fetches the full BOM and separates parts into matched and unmatched lists. Unknown parts are highlighted so you can see which components need attention.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID returned from upload_bom |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses automatic fetching and separation of parts, and highlighting of unknowns. It adds significant behavioral context but does not explicitly state it is read-only or cover all potential 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences with no wasted words. Front-loaded with action and resource, then elaborates on behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 param), presence of output schema, and description explaining return behavior (matched/unmatched lists), the description is sufficiently complete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description adds no extra meaning for job_id beyond what the schema already provides (Job ID returned from upload_bom). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks BOM processing status and reports unknown/unmatched parts, with a specific verb and resource. It distinguishes from sibling check_* tools by mentioning automatic fetching and part separation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after upload_bom (needs job_id) and indicates when to use (when processing complete), but does not provide explicit when-not-to-use or alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_dfm_statusCInspect
Check the status of a DFM analysis job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID returned from submit_dfm |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It only says 'Check the status' which implies a read operation but does not specify idempotency, error handling, or behavior for invalid job IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it sacrifices completeness. It is front-loaded with the core purpose, but omits context that could be included without much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values. However, the presence of a near-identical sibling tool is a gap that reduces completeness. The description is adequate for a simple poll operation but could be more helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a description for 'job_id' that clarifies its origin. The tool description adds no additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check' and the resource 'status of a DFM analysis job'. However, it does not differentiate from the sibling tool 'dfm_check_status', which appears to have an identical purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'dfm_check_status' or 'submit_dfm'. It does not mention prerequisites (e.g., job must exist) or that it should be used after submission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_identification_statusAInspect
Check the status of a PCB/component identification job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID returned from identify_pcb |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description is too brief; it does not disclose behaviors such as error handling, job lifecycle, or what happens if the job ID is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, perfectly concise for the simplicity of the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is minimally complete. However, it does not explain possible status values or expected behavior, which is a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the parameter with description, but the tool description adds no additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the status of an identification job, distinguishing it from sibling tools like identify_pcb (which initiates the job) and other status checkers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after identify_pcb but does not explicitly state when to use or when to avoid, nor does it mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_manufacturing_statusAInspect
Check the status of any manufacturing job (fab, DFM, AOI, QC).
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID returned from a manufacturing submission |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description implies a read operation but lacks details on behavioral aspects such as whether the tool is idempotent, polling behavior, or error handling for invalid job IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, no nested objects) and presence of an output schema, the description sufficiently covers the tool's purpose and parameter, though it could mention return value nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'job_id' is fully documented in the schema with a clear description. The tool description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'check' and the resource 'status of any manufacturing job', listing specific job types (fab, DFM, AOI, QC) which distinguishes it from siblings like check_bom_status and check_dfm_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., check_dfm_status). The description does not mention prerequisites or scenarios where it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_render_statusAInspect
Check the status of a Blender render job.
Returns the CDN URL when the render is complete, or the error message if it failed.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The render job UUID from trigger_part_render |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adequately discloses the return values (CDN URL or error). It does not mention polling behavior, rate limits, or side effects, but for a simple status check, the transparency is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and contains no extraneous words. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a simple tool, the description is nearly complete. It could mention that the job may still be in progress, but otherwise covers the key aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context to the job_id parameter by stating it is 'from trigger_part_render', coupling it to a sibling tool. This enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks the status of a Blender render job and specifies the outcomes (CDN URL or error). However, it does not explicitly differentiate from siblings like trigger_part_render.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as after triggering a render with trigger_part_render. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_pricesAInspect
Compare prices for a part across multiple suppliers.
| Name | Required | Description | Default |
|---|---|---|---|
| part_number | Yes | Part number to check | |
| quantity | No | Quantity needed | |
| suppliers | No | Optional list of suppliers to check |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits (e.g., read-only nature, latency, or result format). The description only restates the tool's purpose without adding transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the core action, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and the schema covers parameters, the description is adequate but minimal. It lacks context on how results are presented (e.g., sorted, with lead times) and how to interpret when suppliers list is null.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% and each parameter already has a clear description. The tool description does not add any additional meaning or context beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Compare prices for a part across multiple suppliers' clearly states the verb (compare) and resource (prices for a part), and distinguishes it from sibling tools like check_availability or estimate_cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need to compare prices across suppliers) but does not explicitly state when to use it versus alternatives or when not to use it. No exclusion or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_allegroAInspect
Convert a Cadence Allegro PCB board file to KiCad format.
Imports a Cadence Allegro .brd binary file (versions 16-23) and converts it to a KiCad .kicad_pcb file. Uses KiCad 10's built-in Allegro importer — no Cadence software required.
Board files only. Schematics are not supported. The .brd extension is also used by Eagle; KiCad auto-detects the format via magic bytes.
Output is a ZIP archive containing the .kicad_pcb file and any extracted footprint libraries.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to Allegro .brd file or zip archive | |
| output_path | No | Where to save the output ZIP (default: <stem>_kicad.zip next to input) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the conversion path (KiCad 10's built-in importer), supported file versions, output format (ZIP with .kicad_pcb and footprints), and the Eagle ambiguity resolution. Lacks details on permissions, side effects, or error states, but covers core behavioral traits well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (5 sentences), front-loaded with the main action, uses bullet-like phrasing for supporting details, and avoids redundancy. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of an output schema, the description adequately covers input constraints, conversion process, and output contents. It could mention potential errors (invalid file, unsupported version) but remains sufficient for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters described verbatim in schema and description. The description reinforces the schema's descriptions but adds no new semantic detail beyond 'output is a ZIP archive' which is also inferred. Meets baseline but does not exceed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts Allegro PCB board files to KiCad format, specifying input format (.brd), versions (16-23), and output (KiCad .kicad_pcb within ZIP). It distinguishes itself from sibling converters (geda, pads, protel, kicad_version) by naming the source format and explicitly noting board-only support, making purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides contextual usage guidance: it notes that schematics are not supported, describes the auto-detection of .brd vs Eagle via magic bytes, and states that no Cadence software is required. While it does not explicitly contrast with sibling converters, the tool name and format-specific details suffice for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_gedaAInspect
Convert a gEDA PCB board file to KiCad format.
Imports a gEDA .pcb board file using KiCad's pcbnew bindings. Board files only — schematic import is not available programmatically.
Output is a ZIP archive containing the .kicad_pcb file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to gEDA .pcb file or zip archive | |
| output_path | No | Where to save the output ZIP (default: <stem>_kicad.zip next to input) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the conversion process (using pcbnew bindings) and output format (ZIP with .kicad_pcb), but does not mention potential side effects (e.g., file overwriting), required permissions, or error handling. Adequate but could be more thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each adding value: main action, technical detail (pcbnew bindings), and output format. No redundant information. Front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has two parameters, an output schema exists (though not detailed in description), and the conversion is straightforward, the description covers key points: input type, conversion method, output format. It does not explain return structure beyond 'ZIP archive', but the output schema likely covers that. Minor gap: no mention that input can be a zip archive (though schema says so).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for both parameters ('file_path' and 'output_path') already present. The description does not add additional meaning beyond the schema, such as file format specifics or common pitfalls. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Convert a gEDA PCB board file to KiCad format') and specifies the resource (geda .pcb file). It distinguishes itself from sibling conversion tools by mentioning the specific format (gEDA) and notes that only board files are supported, not schematics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does and its limitation (board files only), but does not explicitly guide when to use this tool over siblings like convert_allegro or convert_pads. The context of the sibling list implies format-specific conversion, but no 'when-not' or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_kicad_versionAInspect
Convert a KiCad file to an older version.
Downconverts .kicad_pcb, .kicad_sch, or project ZIP archives from KiCad 10 to version 7, 8, or 9 for fab shop compatibility.
Rounded rectangles (gr_roundrect / fp_roundrect) introduced in KiCad 10 are converted to right-angle rectangles. Hatched copper fills are removed. The file version header is updated to match the target version.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to .kicad_pcb, .kicad_sch, or .zip project archive | |
| target_version | Yes | Target version: "7", "8", or "9" | |
| output_path | No | Where to save the result (default: same dir, _v<N> suffix) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, description fully discloses behavioral traits: downconversion, conversion of rounded rectangles to right-angle, removal of hatched fills, and version header update. This is critical for lossy operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, no fluff. First sentence front-loads purpose. Each sentence adds specific information about file types, versions, and transformations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential behaviors for a conversion tool with output schema present. Could benefit from mentioning error conditions or limitations, but otherwise complete for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100% provides baseline 3. Description adds meaning by listing exact file types (.kicad_pcb, .kicad_sch, .zip) and explaining output_path default naming convention, which is valuable context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool converts KiCad files to older versions, specifies file types and target versions, and describes the transformations. Distinct from sibling conversion tools (e.g., convert_allegro) which handle different formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for fab shop compatibility, but does not explicitly state when to use this tool over alternatives, nor provides when-not-to-use guidance. With many sibling conversion tools, explicit context would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_padsAInspect
Convert a PADS ASCII layout file to KiCad format.
Imports a PADS ASCII .asc layout file using kicad-cli pcb import --format pads. Board files only — schematics are not supported.
Output is a ZIP archive containing the .kicad_pcb file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to PADS .asc file or zip archive | |
| output_path | No | Where to save the output ZIP (default: <stem>_kicad.zip next to input) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses use of kicad-cli for import, output format as ZIP with .kicad_pcb file, and input format. It does not mention side effects, auth needs, or error conditions, but conversion tools are typically non-destructive and the description covers the core behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the main action, and every sentence adds essential information. No unnecessary words or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (as noted in context signals), the description independently explains the output format (ZIP archive containing .kicad_pcb). It also mentions the underlying tool (kicad-cli) and the input limitations, making it fully informative for this conversion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description repeats the schema info but adds value by specifying the default output naming pattern '<stem>_kicad.zip next to input' for the output_path parameter, which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'convert', specifies the source format 'PADS ASCII .asc layout file' and target format 'KiCad format'. It also distinguishes from sibling conversion tools by naming the specific source format and noting board-only support.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Board files only — schematics are not supported,' which provides clear usage context. However, it does not name alternative tools or provide explicit 'when to use' guidance beyond the format and board scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_protelAInspect
Convert a Protel99SE project file to KiCad format.
Converts Protel99SE schematic and PCB files to KiCad 7 format. Accepts individual files (.sch, .pcb, .lib) or a zip archive containing multiple Protel files.
The output ZIP includes the converted KiCad files and a conversion_report.txt describing any warnings or unsupported features (e.g. ASCII schematic format, unsupported .pcblib files).
.ddb archives require mdbtools on the server. If mdbtools is not installed, the API returns a 503 error rather than silently producing no output.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to Protel .sch, .pcb, .lib, .ddb, or .zip file | |
| output_path | No | Where to save the output ZIP (default: <stem>_kicad.zip next to input) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses: output is a ZIP containing KiCad files and a conversion report, and .ddb archives require mdbtools, returning a 503 error if unavailable. It does not mention whether the operation is destructive, but conversion typically creates new files without modifying originals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence clearly states the purpose, followed by necessary details on input types, output, and error conditions. Each sentence adds value without unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (file conversion, multiple input types, error handling) and the presence of an output schema, the description is mostly complete. It covers input, output, and a key error case, but could mention potential overwrite behavior for the output path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds value beyond the schema by explaining accepted file formats, the output contents (report), and the special requirement for .ddb files. This enriches the parameter meaning beyond the basic field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it converts Protel99SE files to KiCad format, specifies accepted file types (.sch, .pcb, .lib, .zip, .ddb), and distinguishes it from sibling converters like convert_allegro or convert_pads through the tool name and context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the tool's context (converts Protel99SE to KiCad 7) and acceptable inputs, but does not explicitly guide when to use this tool over other converters or provide exclusions. No alternatives are mentioned, leaving the agent to rely on tool name differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_impedance_calculateAInspect
Calculate controlled impedance for a PCB trace.
Computes characteristic impedance using standard formulas for microstrip, stripline, or differential pair configurations.
| Name | Required | Description | Default |
|---|---|---|---|
| stackup | Yes | Dict with dielectric_height_mm and dielectric_constant (Er) | |
| trace_width | Yes | Trace width in mm | |
| trace_type | No | Type: microstrip, stripline, or differential | microstrip |
| trace_spacing | No | Trace spacing in mm (required for differential) | |
| copper_weight_oz | No | Copper weight in oz (default 1.0) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks disclosure of behavioral aspects like accuracy, assumptions, or limits. It only mentions 'standard formulas' without specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, zero waste. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema to explain return values. For a simple calculation tool, description is adequate but could mention output unit (ohms) for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and descriptions exist for each parameter. The tool description adds value by noting that trace_spacing is required for differential configuration, a constraint not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Calculate controlled impedance for a PCB trace' with specific verb and resource. Distinguishes itself from siblings as the only impedance calculation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives. The standard formulas for microstrip, stripline, or differential are mentioned but 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.
design_schematic_reviewAInspect
Review a KiCad schematic for common design issues.
Uploads a .kicad_sch file and checks for: unconnected pins, missing decoupling capacitors (ICs without bypass caps within proximity), power domain analysis (voltage rails, current budget), and net naming conventions.
IMPORTANT: Review all findings before proceeding with layout.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to the .kicad_sch schematic file |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description relies on text to convey behavior. It implies a read-only review by stating 'checks' and 'Review all findings', but does not explicitly confirm no side effects or disclose output schema content. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences and a short note, front-loading the purpose. It lists checks efficiently without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one param, output schema exists), the description adequately explains the checks performed. Minor gaps: no mention of file existence handling, but sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the single parameter with a clear description. The description adds minor value by specifying the file extension '.kicad_sch', aligning with the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: reviewing a KiCad schematic for common design issues. It lists specific checks like unconnected pins, missing decoupling capacitors, power domain analysis, and net naming conventions, which distinguishes it from sibling tools like 'review_schematic' or DFM tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions uploading a .kicad_sch file and advises reviewing findings before layout, indicating when to use (before layout). It does not explicitly exclude use cases or mention alternatives, 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.
design_thermal_analysisAInspect
Estimate thermal dissipation from BOM and identify hot spots.
Uploads a BOM file and estimates power dissipation per IC from typical values, identifies components exceeding thermal limits, and recommends thermal vias or heatsinking.
IMPORTANT: Review thermal risks and recommendations before layout.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM file (.csv or .json) | |
| ambient_temp_c | No | Ambient temperature in Celsius (default 25) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully covers behavioral aspects: it uploads a BOM file, uses typical values for estimation, identifies components exceeding limits, and recommends vias/heatsinking. It does not mention mutability or side effects, but as an analysis tool, this is transparent enough. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, front-loaded with the core purpose. Each sentence adds value: the first states the goal, the second details the process, and the third emphasizes an important note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, details on return values are unnecessary. The description covers the main workflow: input, estimation, identification, recommendations. It could mention limitations (e.g., typical values) or prerequisites, but the context is largely complete for an analysis tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds value by contextualizing the parameters: 'Uploads a BOM file' relates to bom_path, and the mention of typical values and thermal limits gives meaning to the ambient_temp_c parameter, even if not explicitly explained. This goes beyond the schema's raw property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb 'Estimate' and resource 'thermal dissipation from BOM', and specifies the outcome 'identify hot spots'. It is distinct from sibling tools like design_impedance_calculate or design_schematic_review, which focus on different aspects of design.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage before layout by stating 'Review thermal risks and recommendations before layout.' It does not explicitly mention alternatives or when not to use, but given the sibling list, no direct competitor exists. The context of needing a BOM file is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dfm_add_findingsAInspect
Add review findings to a DFM request (admin-only).
Each finding should include category, severity, description, recommendation, and affected_area. The API validates all fields and stores them in the dfm_review_findings table.
IMPORTANT: Review all findings before generating the customer report.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | DFM review request ID (e.g. DFM-A1B2C3D4) | |
| findings | Yes | List of finding dicts, each with: - category: e.g. design_issue, manufacturability, material - severity: info, low, medium, high, or critical - description: What the issue is - recommendation: How to fix it - affected_area: Which part of the design is affected - image_ref: (optional) reference to annotated image |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses that the tool is admin-only, validates fields, and stores data in a specific table. It also includes a workflow tip about reviewing before report generation, adding behavioral context beyond the bare minimum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff: first sentence defines purpose and restriction, second details finding structure, third gives an important workflow note. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and high schema coverage, the description covers purpose, admin constraint, field expectations, and a workflow hint. It could mention idempotency or whether findings can be added incrementally, but is largely sufficient for a simple add operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces the required fields (category, severity, description, recommendation, affected_area) and adds the optional image_ref, but does not clarify the additionalProperties behavior in the schema. This provides marginal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Add review findings' and the resource 'DFM request', with an explicit admin-only restriction. It distinguishes itself from sibling DFM tools like dfm_check_status, dfm_generate_report, and dfm_submit by specifying the add operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implicit guidance ('review all findings before generating the customer report') but does not explicitly state when to use this tool versus alternatives like dfm_submit or dfm_check_status. No direct comparison or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dfm_check_statusAInspect
Check the current status of a DFM review request.
Polls the API for the latest status, progress percentage, findings count, and estimated completion date.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | DFM review request ID (e.g. DFM-A1B2C3D4) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries the burden. It describes the data returned (status, progress, findings, completion date) and implies a read-only operation, but does not explicitly state it is non-destructive or mention authentication/rate limits. The behavioral context is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose in the first sentence and adding details in the second. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema (one parameter) and presence of an output schema, the description provides sufficient context by listing the expected return fields (status, progress, findings, completion date). It is complete enough for an agent to understand the tool's functionality without over-explaining.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single parameter 'request_id' is 100%, with a clear description in the schema. The tool description adds no extra meaning beyond confirming the purpose of the parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Check the current status of a DFM review request' and lists specific data points (status, progress, findings, completion date), providing a clear verb+resource definition. It distinguishes from sibling tools like check_manufacturing_status by specifying 'DFM review request'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a DFM review request and need its status, but lacks explicit guidance on when not to use it or alternatives. No mention of prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dfm_deliver_reportAInspect
Re-send or deliver the DFM report to a specific email (admin-only).
Sends the previously generated PDF report to the specified email, or re-sends to the original customer if no email override is given.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | DFM review request ID (e.g. DFM-A1B2C3D4) | |
| No | Optional override recipient email address | ||
| message | No | Optional custom note to include in the email |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses sending a PDF, admin-only, and override behavior, but misses error conditions, prerequisites, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, description needn't detail returns. It covers purpose, parameters, and usage adequately, though lacks prerequisite conditions like report availability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds meaning by explaining email is an override to original customer and message is an optional note, enriching parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool re-sends or delivers a DFM report to an email, specifies 'admin-only,' and distinguishes from siblings like dfm_generate_report by focusing on delivery rather than generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It conveys context (re-send after generation, admin-only) but does not explicitly state when not to use or list alternatives, though sibling tools imply usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dfm_estimateAInspect
Analyze design file complexity and get DFM review pricing.
Uploads a design file (Gerber ZIP, .kicad_pcb, or CAD file) to the Source Parts API, which analyzes layer count, component density, HDI features, and blind/buried vias to produce a complexity score and pricing estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| design_path | Yes | Path to design file (Gerber .zip or .kicad_pcb) | |
| tier | No | Optional tier selection (basic or comprehensive) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool uploads a design file to an external API and produces a complexity score and pricing estimate. It lists specific features analyzed (HDI, blind/buried vias). However, it does not mention potential side effects (e.g., file upload time) or authentication needs, which would be helpful for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: it states the purpose, explains the process, and details the analysis. It is front-loaded with the main action and provides necessary context without extraneous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 parameters, output schema exists), the description adequately covers the input and the analysis performed. It does not detail output format, but since an output schema is present, that is acceptable. Minor gaps: no mention of errors or prerequisites, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond what the schema already provides for the two parameters. It mentions the file types (Gerber ZIP, .kicad_pcb) which align with the schema, but no extra details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: analyzing design file complexity and obtaining DFM review pricing. It specifies the verb 'analyze' and the resource 'design file', and mentions concrete analysis features (layer count, component density, etc.). This distinguishes it from siblings like estimate_cost, which likely handles different costing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when DFM review pricing is needed) but does not explicitly mention alternatives or when not to use it. No comparisons to sibling tools like dfm_submit or estimate_cost are provided, leaving the agent to infer the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dfm_generate_reportAInspect
Generate a PDF report and email it to the customer (admin-only).
Triggers the existing PDF generation service, uploads the report to storage, and sends it via Resend to the customer on file.
IMPORTANT: Ensure all findings have been added before generating.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | DFM review request ID (e.g. DFM-A1B2C3D4) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the internal steps (triggers generation, uploads to storage, sends via Resend) and the admin-only permission. It also warns about a precondition. It could further clarify idempotency or side effects like whether duplicate calls are safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a one-line summary, two lines of process, and an important note. Every sentence adds value and the key info is front-loaded. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 process) and the presence of an output schema (not shown but indicated), the description covers the main steps and a key prerequisite. However, it omits potential errors, return value format, and any alternative scenarios, leaving some gaps for a fully autonomous agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter request_id is fully described in the input schema with an example format. The description does not add any additional semantic information about the parameter, so it relies entirely on the schema, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'PDF report and email it to the customer'. It also adds 'admin-only' as a constraint, distinguishing it from other dfm tools like dfm_check_status. The purpose is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a prerequisite ('Ensure all findings have been added before generating') and an admin-only restriction, providing some guidance on when to use. However, it does not explicitly contrast with sibling tools such as dfm_deliver_report, missing an opportunity for when-not-to guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dfm_submitAInspect
Submit a DFM review request with design files and customer info.
Uploads the design file, creates a review request in the database, and triggers a Stripe payment intent. Returns a payment URL if payment is required.
| Name | Required | Description | Default |
|---|---|---|---|
| design_path | Yes | Path to design file (Gerber .zip or .kicad_pcb) | |
| tier | Yes | Review tier (basic or comprehensive) | |
| customer_name | Yes | Customer's full name | |
| customer_email | Yes | Customer's email address | |
| promo_code | No | Optional promotional code | |
| notes | No | Optional notes or requirements |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses key behaviors: uploading file, creating request, triggering Stripe payment intent, and returning payment URL. However, it does not mention if the action is reversible or any side effects like email notifications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the purpose. Every sentence adds value (upload, create, trigger, return). No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present (context signal), the description adequately covers the main action and return value. It explains the workflow clearly, though it could mention potential error cases or idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 in the schema. The tool description adds no additional semantics beyond what is already in the schema, meeting the baseline without improvement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool submits a DFM review request, including uploading files and triggering payment. It distinguishes from siblings like dfm_check_status and dfm_estimate by specifying the submission flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives (e.g., dfm_estimate, dfm_check_status). No explicit when-to-use 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.
ecn_createAInspect
Create a new Engineering Change Notice (ECN).
The API clones the repo, creates the ECN file in ECO/, commits,
and optionally pushes to a branch or creates a PR.
For local projects, use: parts project ecn create --id ECN-021 ...
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL | |
| ecn_id | Yes | ECN identifier (e.g. 'ECN-021') | |
| title | Yes | ECN title describing the issue | |
| ecn_type | Yes | One of: Design Constraint, Assembly Note, BOM Change, Schematic Change, Process Change | |
| severity | Yes | One of: CRITICAL, HIGH, MEDIUM, LOW | |
| disposition | Yes | One of: REQUIRED, RECOMMENDED, OPTIONAL | |
| category | No | Optional category (e.g. Electrical, Mechanical, Thermal) | |
| author | No | Author name (defaults to 'Unknown') | |
| source | No | Source reference | |
| affected | No | Affected components | |
| body | No | ECN body content (markdown). If empty, a template is used. | |
| create_pr | No | If True, create a pull request with the change | |
| branch | No | Target branch for the commit (default: main) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries burden. It discloses key behaviors: cloning repo, creating file in ECO/, committing, optionally pushing/branch/PR. However, it does not mention error handling, permissions, or side effects like overwriting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences cover purpose and workflow. Includes a hint for local usage, which is valuable. Could be slightly more concise, but no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters and 6 required, the description explains the creation process adequately. Output schema exists, so return values are covered. Could mention optional field defaults more explicitly, but overall complete for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters. Description adds value by explaining that 'If empty, a template is used' for the 'body' parameter and implies the ECO/ directory structure. Overall, it adds some context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new Engineering Change Notice (ECN)' and outlines the process (clone repo, create file, commit, push/PR). It distinguishes from the local CLI alternative and sibling tools like ecn_get, ecn_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance by mentioning the local CLI alternative ('For local projects, use: ...'), but does not explicitly describe when to choose this tool over other ecn_* siblings 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.
ecn_getAInspect
Get the full content of a specific ECN by ID.
Returns both structured metadata and the full markdown body.
For local projects, use: parts project ecn get <ECN-ID>
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL | |
| ecn_id | Yes | ECN identifier (e.g. 'ECN-006') |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns both structured metadata and full markdown body, and mentions a CLI alternative. However, it does not disclose any behavioral traits such as permissions, rate limits, or potential side effects beyond the read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. It front-loads the purpose, then describes return content, and ends with a practical CLI hint. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full schema coverage, the description is fairly complete. It mentions both structured metadata and markdown body. However, it lacks context about error handling or prerequisites, which would be helpful for a get-by-ID tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters having descriptions. The description does not add significant meaning beyond what the schema provides; it merely restates the purpose. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the full content of a specific ECN by ID, and distinguishes it from sibling tools like ecn_create, ecn_list, ecn_update, etc., by focusing on retrieval of a single ECN's full content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a hint for local projects using the CLI, but does not explicitly state when to use this tool versus alternatives like ecn_list or ecn_get from other contexts. It lacks explicit when-not or alternative tool guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecn_listAInspect
List all Engineering Change Notices (ECNs) in a project.
The API clones the project repo and reads ECO/ECN-*.md files.
For local projects, use the parts CLI: parts project ecn list
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL | |
| severity | No | Filter by severity (CRITICAL, HIGH, MEDIUM, LOW) | |
| status | No | Filter by status (OPEN, IN REVIEW, APPROVED, IMPLEMENTED, CLOSED) | |
| ecn_type | No | Filter by type (Design Constraint, Assembly Note, BOM Change, Schematic Change, Process Change) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals non-obvious behavior: 'The API clones the project repo and reads ECO/ECN-*.md files.' This informs the agent that the tool may be slow or require repo access. With no annotations, this transparency is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, mechanism, and alternative approach. It is efficient, front-loaded, and contains no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (cloning a repo, filtering) and the presence of an output schema, the description provides essential behavioral context. However, it does not mention pagination, limits, or error cases, which would slightly increase completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters. The description adds no extra detail about the parameters (e.g., format of project_id, enum values). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all Engineering Change Notices (ECNs) in a project.' It uses a specific verb ('List') and resource ('Engineering Change Notices'), and the 'all' distinction differentiates from siblings like ecn_get which retrieves a single ECN.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage guideline for local projects ('For local projects, use the `parts` CLI'), but does not explicitly state when to use this tool vs. other ECN tools (e.g., ecn_get, ecn_create). The guidance is helpful but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecn_updateAInspect
Update metadata or body of an existing ECN.
The API clones the repo, modifies the ECN file, commits, and optionally
creates a PR. Only the fields you provide will be changed.
For local projects, use: parts project ecn update ECN-006 --status CLOSED
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL | |
| ecn_id | Yes | ECN identifier (e.g. 'ECN-006') | |
| status | No | New status (OPEN, IN REVIEW, APPROVED, IMPLEMENTED, CLOSED) | |
| severity | No | New severity (CRITICAL, HIGH, MEDIUM, LOW) | |
| disposition | No | New disposition (REQUIRED, RECOMMENDED, OPTIONAL) | |
| title | No | New title | |
| category | No | New category | |
| affected | No | New affected components | |
| source | No | New source reference | |
| body | No | New body content (replaces entire body) | |
| create_pr | No | If True, create a PR with the change | |
| branch | No | Target branch for the commit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations exist, the description carries full burden and reveals key behaviors: cloning the repo, modifying the ECN file, committing, and optionally creating a PR. This goes beyond the schema and helps set expectations. However, it lacks details on permissions or potential 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two sentences plus a helpful CLI example. The purpose is front-loaded, and every sentence provides value. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters) and no annotations, the description covers core behavior and side effects adequately. The presence of an output schema relieves the need to explain return values. Minor gap: no mention of prerequisites or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The description adds limited value by stating that only provided fields change, but does not elaborate on parameter formats or interactions. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Update metadata or body of an existing ECN' with specific verb and resource. The description further explains the underlying process (clone, modify, commit, PR) which adds clarity and distinguishes it from create or get operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides some usage hints ('Only the fields you provide will be changed' and a CLI example for local projects), but does not explicitly state when to choose this tool over siblings like ecn_create or ecn_get. No direct comparison with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ecn_validateAInspect
Validate all ECN files for correct frontmatter schema.
The API clones the repo and checks all ECO/ECN-*.md files for required
fields, valid enum values, and filename/ID consistency.
For local projects, use: parts project ecn validate
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains that the API clones the repo and checks ECO/ECN-*.md files for required fields, valid enum values, and filename/ID consistency. This sufficiently discloses the validation behavior, though it doesn't explicitly state that it is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences: first states purpose, second adds operational detail, third provides local alternative. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, no nested objects, output schema present), the description covers the core functionality and local alternative. It could mention return behavior or error handling, but the output schema likely provides that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (parameter 'project_id' has a description in the schema). The tool description does not add additional parameter details beyond what the schema already provides, so it meets the baseline but does not exceed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Validate all ECN files for correct frontmatter schema', providing a specific verb (validate) and resource (ECN files). It distinguishes from sibling tools like ecn_create, ecn_get, ecn_list, and ecn_update by focusing on validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: the API clones the repo and validates, while for local projects the CLI command 'parts project ecn validate' is recommended. This guides the agent on when to use this tool vs. local alternatives, though no explicit exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eco_approveAInspect
Approve an ECO and optionally batch-approve its ECNs.
Sets the ECO status to AUTHORIZED. If approved_ecn_ids is provided, those ECNs are also moved to APPROVED status. If omitted, all ECNs under the ECO are approved.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL | |
| eco_id | Yes | ECO identifier (e.g. 'ECO-001') | |
| approved_ecn_ids | No | Specific ECN IDs to approve (default: all ECNs in this ECO) | |
| note | No | Optional approval note or comment | |
| create_pr | No | If True, create a PR with the changes | |
| branch | No | Target branch for the commit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It explains state changes (ECO to AUTHORIZED, ECNs to APPROVED) and the effect of the optional parameter. However, it does not mention idempotency, error handling, or whether the operation requires specific permissions, leaving some uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the main purpose and then provide key details. Every sentence is necessary and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 detail return values. However, it lacks context on prerequisites (e.g., who can approve), error conditions (e.g., ECO already approved), and the broader workflow of ECO/ECN management. This is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the default behavior for approved_ecn_ids. However, it does not elaborate on other parameters like note or create_pr beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: approving an ECO and optionally batch-approving its ECNs. It specifies the verb 'Approve' and the resource 'ECO', and distinguishes it from sibling tools like eco_create, eco_update, etc., which handle other lifecycle stages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description outlines when to use the optional approved_ecn_ids parameter (to approve specific ECNs) versus omitting it (approve all). However, it does not provide guidance on when not to use the tool, prerequisites (e.g., ECO must exist), or alternatives if the user wants to reject rather than approve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eco_build_statusAInspect
Check build readiness — are all ECOs/ECNs resolved?
Returns a summary of every ECO and its ECNs, with counts of how many are blocking the build. The build is ready only when every ECN across all ECOs has reached CLOSED or IMPLEMENTED status.
This powers the locked/unlocked state of the Build button on source.parts/build.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains that the tool returns a summary of all ECOs and their ECNs with blocking counts, and the condition for build readiness (all ECNs in CLOSED or IMPLEMENTED status). This is transparent about what the tool does and its read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the core purpose in the first line, then adding essential details about return structure and condition. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter schema and the presence of an output schema, the description sufficiently explains the tool's functionality and return value. It could benefit from noting whether the summary includes details like counts per status, but it is complete enough for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the single parameter, providing its description (project ID or git repo URL). The description adds no further parameter details beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Check build readiness') and the resource ('all ECOs/ECNs'), and it distinguishes itself from sibling tools like eco_list or check_manufacturing_status by focusing on whether ECOs/ECNs are resolved to permit a build.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the tool's purpose—checking build readiness—and even specifies that it powers the Build button in the UI. However, it does not explicitly mention when not to use it or contrast with alternative status checks, though the context suggests it's for ECO/ECN resolution specifically.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eco_createAInspect
Create a new Engineering Change Order (ECO) that bundles ECNs.
The API clones the repo, creates the ECO file in ECO/, commits, and optionally creates a PR.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL | |
| eco_id | Yes | ECO identifier (e.g. 'ECO-003') | |
| title | Yes | ECO title describing the change scope | |
| revision | Yes | Revision identifier (e.g. 'EVT1 → EVT2', 'DVT updates') | |
| ecn_ids | No | List of ECN IDs to bundle (e.g. ['ECN-041', 'ECN-042']) | |
| author | No | Author name | |
| body | No | ECO body content (markdown) | |
| create_pr | No | If True, create a pull request with the change | |
| branch | No | Target branch for the commit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the API clones a repo, creates a file, commits, and optionally creates a PR. However, it does not mention failure scenarios (e.g., duplicate ECO ID), permissions required, or the irreversible nature of commits. The description adds some behavioral context but lacks comprehensive disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two sentences that front-load the purpose and then succinctly describe the process. Every word adds value; there is no redundancy or fluff. It is appropriately sized for a tool with moderate complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters and an output schema, the description covers the core action but omits important context such as prerequisites (e.g., ECNs must exist), side effects (repo changes are permanent), and constraints (ECO ID uniqueness). The output schema likely documents return values, but the missing context about preconditions and failure modes leaves the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already describes all parameters adequately. The description does not add any additional meaning or context beyond the schema. It does not explain parameter relationships or valid values, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create') and the resource ('Engineering Change Order'), and specifies that it bundles ECNs. It distinguishes from sibling tools like ecn_create (creates individual ECNs) and eco_approve (different action). The verb+resource+scope is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, nor does it provide exclusions or prerequisites. It implies usage through the name, but lacks guidance for the agent to differentiate from the many sibling eco/ecn tools. No 'when not to use' or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eco_feedbackAInspect
Station 6: Generate ECN suggestions based on failure patterns.
Uses failure analysis data to suggest engineering change notices (e.g., paste aperture changes, AVL updates, design modifications).
IMPORTANT: Review ECN suggestions before creating formal ECNs.
| Name | Required | Description | Default |
|---|---|---|---|
| failure_analysis_id | No | Reference to a prior failure analysis | |
| top_failures | No | Optional list of failure summaries [{failure_mode, count, percentage}] | |
| lot_correlation | No | Optional list of lot data [{lot, failure_rate}] |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so description carries full burden. Discloses non-authoritative nature (suggestions) and requires human review. Lacks details on output format or limitations, but output schema covers some behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two short sentences plus a warning note. Purpose is immediately clear, no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers input (failure analysis), output (suggestions), and usage note. Output schema handles return structure. Lacks mention of prerequisites like needing a prior failure analysis, but overall adequate for a suggestion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, baseline of 3 applies. Description provides contextual examples but does not add significant meaning beyond parameter names and their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool generates ECN suggestions from failure pattern analysis. Provides examples of suggestions (paste aperture changes, AVL updates) and distinguishes from siblings like ecn_create by emphasizing it is a suggestion stage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates it uses failure analysis data and advises reviewing suggestions before creating formal ECNs, implicitly positioning it as a precursor to ecn_create. Could be improved by explicitly stating when to use versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eco_getAInspect
Get full details of a specific ECO including all its ECNs.
Returns the ECO metadata, full markdown body, and the complete list of bundled ECNs with their current statuses.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL | |
| eco_id | Yes | ECO identifier (e.g. 'ECO-001') |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It discloses the return structure (metadata, markdown body, ECNs with statuses) but does not mention read-only behavior, auth needs, or any potential side effects. The verb 'Get' implies read-only, but the description could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with the main action front-loaded. It is concise, includes what is returned, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with full schema coverage and an output schema, the description adequately covers purpose and return value. It could mention that project_id is required (though schema covers it), but overall it is sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so both parameters are already described. The description does not add extra meaning beyond what the schema provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and resource 'full details of a specific ECO including all its ECNs', clearly distinguishing it from sibling tools like eco_list (which likely lists ECOs) and ecn_get (which gets a specific ECN). It also states what is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when full details of a specific ECO are needed, but it does not explicitly state when to use versus alternatives or when not to use. Sibling names suggest context but are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eco_listBInspect
List all Engineering Change Orders (ECOs) in a project.
Returns each ECO with its bundled ECN IDs, status, and a summary of how many ECNs are resolved vs blocking.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL | |
| status | No | Filter by ECO status (e.g. AUTHORIZED, PENDING CLIENT AUTHORIZATION) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes return structure but omits behavior like read-only nature, required permissions, rate limits, or pagination. Minimal disclosure beyond output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each adding value. First states purpose, second details return. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, description complements it effectively by summarizing key return fields. Covers project listing need, but could mention potential limits (e.g., pagination). Still sufficient for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the input schema (100% coverage). Description does not add extra meaning beyond schema; it only implies project_id by context. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists all ECOs in a project and specifies returned fields (ECN IDs, status, resolved/blocking summary). Differentiates from siblings like ecn_list by focusing on ECOs, but does not explicitly call out the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied that it's for viewing ECOs, but no explicit when-to-use vs alternatives (e.g., eco_get for single ECO). No guidance on 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.
eco_updateAInspect
Update an existing ECO's metadata or status.
Only the fields you provide will be changed. Use this to authorize an ECO, update its ECN list, or change its status.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Source Parts project ID or git repo URL | |
| eco_id | Yes | ECO identifier (e.g. 'ECO-001') | |
| status | No | New status (PENDING CLIENT AUTHORIZATION, AUTHORIZED, IN PROGRESS, COMPLETED, REJECTED) | |
| title | No | New title | |
| revision | No | New revision string | |
| ecn_ids | No | Updated list of bundled ECN IDs | |
| body | No | New body content (replaces entire body) | |
| create_pr | No | If True, create a PR with the change | |
| branch | No | Target branch for the commit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. It discloses partial update behavior but omits potential side effects (e.g., PR creation) or required permissions. Behavior is partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both valuable: first states purpose, second clarifies partial update with examples. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and an output schema, the description covers the core intent. It does not explain create_pr or branch behavior, but schema handles those. Adequate for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. Description adds minimal context beyond listing examples already covered by schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates an existing ECO's metadata or status, with examples like authorize, update ECN list, change status. It distinguishes from sibling tools like eco_create, eco_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes only provided fields change, but does not explicitly guide when to use this tool vs alternatives like eco_approve. No when-not or explicit alternative comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_schematic_placeAInspect
Place a symbol instance in a KiCad schematic.
Uploads the schematic to the API for server-side modification. Returns the unified diff of changes for review.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to .kicad_sch file or project directory | |
| symbol | Yes | KiCad lib_id (e.g., "Device:R") | |
| reference | Yes | Reference designator (e.g., "R1") | |
| x | Yes | X position in mm | |
| y | Yes | Y position in mm | |
| properties | No | Optional property overrides {"Value": "10K", ...} |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool uploads the schematic for server-side modification and returns a unified diff for review, providing useful behavioral context beyond the action itself. No annotations present to contradict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states core action, second describes mechanism and output. No redundant information, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Mentions output (unified diff) but does not address error cases (e.g., duplicate reference, invalid symbol). With output schema present, description is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented in schema. Description does not add extra meaning beyond what schema provides (e.g., coordinate system details). Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Place a symbol instance' and the resource 'KiCad schematic'. Distinguishes from sibling tools like edit_schematic_remove and edit_schematic_wire by specifying the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Does not mention preconditions like file must exist, or when to choose this over other edit tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_schematic_removeBInspect
Remove a component from a schematic by reference designator.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to .kicad_sch file | |
| reference | Yes | Component reference to remove (e.g., "R47") |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states what the tool does, without revealing any behavioral traits such as modification in place, required permissions, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. However, it could be slightly longer to include critical context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema, the description is minimally adequate but lacks behavioral context and usage guidelines. An agent might use it correctly but without full confidence in side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (file_path and reference) with 100% coverage. The description adds no additional meaning or constraints beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (remove), resource (component from a schematic), and method (by reference designator). It distinguishes from siblings like edit_schematic_place, edit_schematic_value, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. There is no indication of when to use this tool versus alternatives, no prerequisites, and no warnings about side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_schematic_valueCInspect
Update a component property value in a schematic.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to .kicad_sch file | |
| reference | Yes | Component reference designator (e.g., "R47") | |
| property_name | Yes | Property to update (e.g., "Value", "Footprint") | |
| new_value | Yes | New value to set |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a mutation (update) but fails to specify side effects like file modification, required permissions, or whether changes are reversible. Key behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is appropriately short for the tool's simplicity, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema being present, the description fails to mention important contextual details such as success/error behavior, the fact that it modifies a file on disk, or any idempotency or atomicity guarantees. The description is too minimal for a tool with 4 required parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% and each parameter has a clear description (e.g., file path, reference designator). The description adds no extra semantic value beyond what the schema already provides, hence a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update) and resource (component property value in a schematic), making the purpose understandable. However, it does not differentiate from sibling tools like edit_schematic_place or edit_schematic_remove, which also modify schematics but in different ways.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 over alternatives, nor does it mention prerequisites, such as the file needing to exist or the component being present. There is no context about when not to use it or which sibling tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_schematic_wireBInspect
Add a wire segment between two points in a schematic.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to .kicad_sch file | |
| start_x | Yes | ||
| start_y | Yes | ||
| end_x | Yes | ||
| end_y | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden of behavioral disclosure, but it only states the basic operation. It omits important traits such as whether the wire segment overrides existing connections, if it checks for electrical rule violations, or any side effects on the schematic file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly conveys the tool's action. It contains no filler or redundant information, earning its place efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (editing a schematic file) and the absence of annotations, the description is insufficient. It does not explain return values, error handling, or any context about the schematic environment. However, the presence of an output schema (not shown) partially mitigates the need for return value documentation, but other contextual gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is only 20% (only file_path described). The description mentions 'between two points' but does not elaborate on the meaning of start_x, start_y, end_x, end_y or their coordinate system, leaving the agent without essential insight beyond the schema's parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Add a wire segment') and the resource ('between two points in a schematic'). It distinguishes itself from sibling tools like edit_schematic_place (place component) and edit_schematic_remove (remove element), 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.
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 other schematic editing tools. There are no prerequisites, no conditions for use, and no mention of when not to use it, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_costAInspect
Get a quick cost estimate for a list of parts.
Each part should have at minimum a part_number and quantity field.
| Name | Required | Description | Default |
|---|---|---|---|
| parts | Yes | List of parts, each with part_number and quantity | |
| currency | No | Currency code (default USD) | USD |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool provides a 'quick cost estimate' and specifies input fields, but lacks details on side effects (none likely), rate limits, or error behavior. This is acceptable for a simple read-like tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, clear and front-loaded. Every word contributes to understanding the tool's purpose and input requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple estimation tool with an output schema, the description covers the essential input requirements and purpose. It doesn't mention the default currency or optional fields, but those are in the schema. Sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all parameters (100% coverage), so the description adds value by clarifying the minimum requirements for each part object (part_number and quantity) and noting the quick nature of the estimate. The addition of 'at minimum' provides nuance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'cost estimate', and specifies the required fields (part_number, quantity). It distinguishes from sibling tools like calculate_bom_cost or compare_prices by emphasizing it's a quick estimate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear input requirements (list of parts with part_number and quantity) and implies a quick, non-binding estimate. It does not explicitly state when not to use this tool compared to alternatives, but the context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_parts_to_kicadBInspect
Export parts data in KiCad-compatible format.
| Name | Required | Description | Default |
|---|---|---|---|
| parts | Yes | List of parts to export | |
| output_path | Yes | Where to save the export | |
| format | No | Export format (csv, json) | csv |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must convey behavioral traits. It says 'export', implying a write operation, but does not specify side effects (e.g., file creation), permissions required, or whether it is read-only. The minimal description leaves critical behavioral aspects unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 7-word sentence, extremely concise and front-loaded with the action verb 'Export'. No redundant information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and an output schema, the description is too minimal. It does not explain the return value, though the output schema exists. The tool's behavior (e.g., file creation vs. data return) is ambiguous, making it somewhat incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, and the tool description does not add any extra meaning beyond what is in the schema. The schema descriptions for parameters are basic but adequate. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Export parts data in KiCad-compatible format' clearly states the verb (export), resource (parts data), and target format (KiCad-compatible). However, it does not differentiate from sibling tools like 'convert_kicad_version' or 'kicad_ctrl_export', which could be ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There is no mention of prerequisites, limitations, or scenarios where other export tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_bom_from_kicadBInspect
Extract bill of materials from a KiCad project.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to KiCad project file (.kicad_pro) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description should disclose behavioral traits. It does not state whether the operation is read-only or if it has side effects, leaving ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, one sentence long. It is appropriately sized for a simple tool, though it lacks structure like usage hints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 an output schema exists. The description is minimally complete; it covers the basic purpose but lacks details like BOM format or constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds no additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Extract), the resource (bill of materials), and the source (KiCad project). It distinguishes from sibling 'extract_netlist_from_project'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of prerequisites, context, 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.
extract_netlist_from_projectBInspect
Extract netlist information from a KiCad project.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to KiCad project file (.kicad_pro) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only says 'Extract netlist information', which implies a read-only operation but does not confirm if the tool modifies the project or what 'netlist information' includes. The existence of an output schema mitigates some transparency, but the description adds no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (6 words, 1 sentence). While it lacks structure, it wastes no words. It could benefit from brief context but is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple extraction tool with an output schema, the description is minimally adequate. However, it does not mention what the netlist information contains, how to interpret the output, or any constraints (e.g., file existence). The high context signal of an output schema reduces the burden, but the description still feels incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage and the only parameter (project_path) has a clear description in the schema. The tool description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Extract netlist information') and the target resource ('from a KiCad project'), distinguishing it from sibling tools like extract_bom_from_kicad. The verb 'extract' and resource 'netlist' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., extract_bom_from_kicad, kicad_ctrl_analyze). There are no notes on prerequisites (e.g., project must have a valid netlist) or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
failure_analysisAInspect
Station 5: Run Pareto analysis on failure data with lot correlation.
Uploads failure data CSV and identifies top failure modes, correlates with production lots, and provides actionable recommendations.
IMPORTANT: Review Pareto chart and lot correlation before taking action.
| Name | Required | Description | Default |
|---|---|---|---|
| failure_data_path | Yes | Path to failure data CSV (columns: serial, failure_mode, date, lot_number) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It states the tool 'uploads failure data CSV, identifies top failure modes, correlates with lots, and provides recommendations,' but does not mention side effects (e.g., data mutation, authentication needs) or whether it modifies any state. The phrase 'actionable recommendations' hints at non-destructive analysis, but it is insufficiently explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences plus an IMPORTANT note, all front-loaded with the title-like first line. Every sentence earns its place, and there is no extraneous information. It is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main functionality (Pareto analysis, lot correlation, recommendations) and includes a usage note. Given that an output schema exists (context confirms), the description need not detail return values. It is complete enough for a analysis tool, though it could briefly mention the output format (chart/report).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'failure_data_path,' and the tool description adds no extra meaning beyond restating that it uploads a CSV. The schema already documents the expected columns. Thus, the description provides marginal added value, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run Pareto analysis on failure data with lot correlation,' specifying a specific verb and resource. It differentiates from siblings like quality_fai_inspect and test_coverage_analysis by naming the analysis type and referring to 'Station 5,' indicating a unique process step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'IMPORTANT: Review Pareto chart and lot correlation before taking action,' which implies the tool is for analysis only and should be reviewed before further actions. However, it does not specify when to use this tool versus alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_alternativesCInspect
Find alternative parts with similar specifications.
| Name | Required | Description | Default |
|---|---|---|---|
| part_number | Yes | Original part number | |
| parameters | No | Optional key parameters to match |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without indicating side effects, authentication needs, or performance implications. The tool likely performs a read-only query, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundant information. It is appropriately sized and front-loaded, achieving conciseness without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple input schema and an output schema (not shown), but the description does not elaborate on what constitutes 'similar specifications' or the format of results. It is adequate for a minimal viable description but lacks detail to fully inform usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters described. The description echoes the schema's description for 'part_number' and 'parameters' without adding new semantics. Thus, it meets the baseline of 3 but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: finding alternative parts with similar specifications. It uses a specific verb ('find') and resource ('alternative parts'), and the criterion 'similar specifications' distinguishes it from generic search tools like 'search_parts'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling tools such as 'search_by_parameters' or 'match_components_to_parts'. There is no mention of prerequisites or exclusions, leaving the agent without clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_kicad_projectsAInspect
Find KiCad projects in configured search paths.
Returns: List of found KiCad projects
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by using 'find' and 'list', but no explicit statement about non-destructiveness or side effects. Without annotations, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences covering purpose and return value. No extraneous information, well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema, the description is mostly complete. It could clarify what 'configured search paths' means, but the information is sufficient for a straightforward list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. The description adds context that search uses 'configured search paths', which is beyond schema and helps understand behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds KiCad projects in configured search paths, but does not differentiate from sibling tools like 'analyze_kicad_project' or 'search_parts'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as search_by_parameters or find_alternatives. No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cli_documentationAInspect
Get documentation for the Source Parts CLI tool.
Returns usage guides, command reference, and examples for the parts
CLI. The content returned is automatically tailored to your account.
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | Optional topic to focus on (e.g. "auth", "search", "bom", "manufacturing", "project"). Omit for full documentation. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the tool returns documentation and tailors content, but does not mention read-only nature, authentication requirements, rate limits, or potential side effects. This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with three short sentences, each earning its place. No redundant information, and the purpose is front-loaded. It efficiently conveys the tool's function and key features.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 optional parameter, output schema exists, 100% schema coverage), the description is nearly complete. It mentions the source (CLI tool), content types, and account tailoring. Minor omission: no explanation of 'tailored' or prerequisites, but these are likely implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage with the 'section' parameter described. The description adds context about the CLI and tailoring but does not significantly enhance understanding of the parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns CLI documentation, specifying 'usage guides, command reference, and examples' for the 'parts' CLI. It is distinct from sibling tools like 'parts_cli' which likely runs the CLI itself, and other tools are unrelated to documentation retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage to obtain CLI documentation but does not explicitly state when to use this tool versus alternatives (e.g., other documentation tools). It mentions automatic tailoring to the account, which hints at personalization but no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_identified_itemBInspect
Get details for an identified PCB/component by short code.
| Name | Required | Description | Default |
|---|---|---|---|
| short_code | Yes | Item short code (e.g., SP-XXXXXX) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not mention whether the operation is read-only, requires prior identification, or what the output contains (though output schema exists). Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with verb and resource. No wasted words. Highly concise and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description is mostly complete. However, it lacks context about what 'identified' means and prerequisites, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, with an example format. The description does not add extra 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and resource ('identified PCB/component') and the method ('by short code'). It is specific and distinguishes from sibling tools like 'search_parts' or 'get_part_details', though 'identified' is somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as 'get_part_details' or 'search_parts'. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_part_detailsBInspect
Get detailed information about a specific part.
| Name | Required | Description | Default |
|---|---|---|---|
| part_number | Yes | The part number to look up | |
| manufacturer | No | Optional manufacturer name |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose behavioral traits like read-only nature, no side effects, or required permissions. It only states 'detailed information' without specifying scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient, but misses opportunity to include brief usage context without significant length increase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, return values are covered. However, for a simple lookup tool, the description is minimally adequate, lacking details on what 'detailed information' includes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters documented). The description adds no extra meaning beyond the schema, baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('detailed information about a specific part'), which distinguishes it from sibling tools like 'search_parts' (list) and 'find_alternatives' (alternatives).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, e.g., for a single part detail look-up vs. search or alternative finding. Context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_preferencesAInspect
Get user preferences, optionally for a specific device.
Preferences are merged: global user defaults are overridden by device-specific values when a device_id is provided.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | No | Optional device identifier (e.g. "macbook", "claude-desktop"). If omitted, returns global user preferences only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the merging behavior and overriding of global defaults by device-specific values, which adds context. However, it does not mention permissions, rate limits, or any other behavioral aspects such as potential side effects (though minimal for a get operation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core purpose, and no wasted words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one optional parameter, no enums, no nested objects) and the presence of an output schema, the description sufficiently covers the tool's behavior. The merging logic is well explained, making the tool easy to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single parameter 'device_id'. The description adds meaningful context by explaining the merging behavior and the difference between omitting and providing a device_id, which goes beyond the schema's description of 'optional device identifier'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Get' and resource 'user preferences' are clear. The description states the ability to retrieve global or device-specific preferences, distinguishing between the two. However, it does not explicitly differentiate from the sibling tool 'set_preferences', which is the write counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use device_id versus not, but does not provide explicit guidance on when to use this tool over alternatives like 'set_preferences'. No 'when-not-to-use' or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_contextAInspect
Get project context from .parts/config.yaml and the Source Parts API.
Reads the local .parts/config.yaml for project metadata, BOM locations, fabrication settings, and DFM rules. Optionally enriches with API data (BOMs, activity) if the project is linked to Source Parts.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Directory to search from (defaults to cwd) | |
| include_api_context | No | Fetch project data from the Source Parts API | |
| include_file_listing | No | Resolve and check referenced file paths |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully bears the burden of disclosure. It transparently explains that the tool reads a local file and optionally calls an API, and specifies the type of data returned. This is sufficient for safe usage, though it could mention if any side effects exist (none expected).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the core purpose in the first line. Every sentence adds value without redundancy. No unnecessary words or details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values. It thoroughly covers what data is read and the optional API enrichment. Parameter coverage is complete, and the description is sufficient for an agent to understand the tool's behavior and inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some context about the parameters (e.g., 'include_api_context' fetches BOMs/activity, 'include_file_listing' resolves file paths), but it largely repeats what the schema says. No significant additional meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves project context from a specific local file (.parts/config.yaml) and optionally from the Source Parts API. It lists the types of data retrieved (metadata, BOM locations, fabrication settings, DFM rules), making the purpose distinct from sibling tools like get_part_details or check_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when project context is needed, but does not explicitly state when not to use it or mention alternative tools. It provides clear context about local vs API data, but lacks exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
highlight_net_tracesAInspect
Highlight specific net traces on a PCB and generate PDF(s).
Renders highlighted net traces as vector PDFs. Supports two output modes:
overlay: Full board with all traces in gray, highlighted nets in color
traces_only: Just the highlighted nets + board outline
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to KiCad project directory or .kicad_pro/.kicad_pcb file | |
| net_names | Yes | Net names to highlight (e.g. ["nRF54_P", "nRF54_N"]) | |
| colors | No | Optional color mapping {"net_name": "#rrggbb"} | |
| mode | No | "overlay", "traces_only", or "both" (default: "both") | both |
| output_dir | No | Where to save PDFs (defaults to project dir) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only mentions rendering vector PDFs and modes; lacks details on error handling, side effects, or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with main purpose and mode details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate given output schema and high schema coverage, but lacks behavioral details like error states and return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds no extra parameter meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States clearly it highlights net traces and generates PDFs, and describes two output modes. This distinguishes it from siblings like 'render_schematic'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for highlighting and PDF generation, but no explicit when-to-use or when-not-to-use compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identify_pcbCInspect
Identify a PCB or component from a photo.
Uploads an image for barcode/QR code detection, OCR text extraction, and component identification.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the image file (jpg, png, gif, heic, webp) | |
| project_id | No | Optional project ID to associate | |
| box_id | No | Optional box/shipment ID to associate |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool uploads an image and performs detection/extraction/identification, but does not disclose limits (file size, image quality), processing time, destructive behavior, or error conditions. Minimal 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second lists capabilities. Concise and front-loaded. Could potentially be structured as bullet points, but current format is efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers basic functionality but lacks context on typical use cases, return values (though output schema exists), accuracy expectations, and prerequisites. Given no annotations and moderate complexity, it is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter described (file_path format, optional IDs). The description adds no additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool identifies a PCB or component from a photo and lists capabilities (barcode/QR detection, OCR, component identification). However, it does not explicitly differentiate from related siblings like 'check_identification_status' or 'get_identified_item', though these appear to be post-identification steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., 'scan_doc' or 'analyze_kicad_project'). The description implies usage when a photo is available, but does not mention exclusions, 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.
kicad_ctrl_analyzeAInspect
Station 1: Analyze a PCB for affected nets.
Uploads the .kicad_pcb to the API, which parses all nets and returns an inventory of tracks/vias per net, plus a highlight overlay PDF.
IMPORTANT: Review the results before proceeding. Ask the operator to approve before calling kicad_ctrl_propose_ripup.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to .kicad_pro, .kicad_pcb, or project directory | |
| ecn_id | No | Optional ECN identifier to extract affected nets | |
| net_names | No | Optional explicit list of net names to analyze |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adequately discloses behavior: uploads the .kicad_pcb, parses nets, returns inventory and PDF. It implies a read-only analysis with no destructive effects. It could mention that no modifications are made to the file, but the information provided is sufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, each providing unique value. The first sentence states the core purpose, the second details the process and output, and the third provides critical usage guidance. No waste, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the three parameters and presence of an output schema, the description covers the input, process, and output adequately. It also contextualizes the tool within a larger workflow by referencing the next sibling tool. The output schema is available for detailed return structure, so the description need not elaborate on return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all three parameters. The description only adds 'optional ECN identifier to extract affected nets' and 'optional explicit list of net names to analyze', which are already in the schema. It does not add significant new meaning beyond the schema, hence baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes a PCB for affected nets, specifying the upload of .kicad_pcb, parsing of nets, and returns: inventory of tracks/vias per net and a highlight overlay PDF. It distinguishes itself from sibling tools like kicad_ctrl_propose_ripup by positioning as 'Station 1' and referencing the follow-up step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'IMPORTANT: Review the results before proceeding. Ask the operator to approve before calling kicad_ctrl_propose_ripup.' This clearly indicates when to use the tool (as a preliminary analysis) and what to avoid (proceeding to ripup without review).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kicad_ctrl_ercAInspect
Station 0a: Run Electrical Rules Check on the schematic.
Uploads the .kicad_sch to the API, which runs kicad-cli sch erc and returns a violation report + schematic PDF for review.
IMPORTANT: Review ERC results before proceeding to netlist diff.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to .kicad_pro, .kicad_sch, or project directory |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool uploads the schematic, runs kicad-cli, and returns a violation report + PDF. It does not mention if any files are modified or if the operation is read-only, which would be valuable for a check tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences: first sets purpose, second explains process, third gives an important note. No wasted words, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 an output schema. The description covers the main purpose, process, and a sequential constraint. It doesn't detail the output format, but the presence of an output schema likely covers that. Still, a brief mention of the report type would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter (project_path). The description does not add any additional semantics beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run Electrical Rules Check on the schematic,' specifying the action (run ERC) and resource (schematic). However, it does not explicitly differentiate from sibling tools like kicad_ctrl_validate, though the context makes it distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to review ERC results before proceeding to netlist diff, providing a sequential usage hint. However, it lacks explicit when-to-use versus alternatives, and no when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kicad_ctrl_execute_ripupAInspect
Station 3: Execute rip-up — remove tracks and return a diff.
The API removes the tracks/vias and returns a unified diff. If apply_diff is True, the diff is applied to the local .kicad_pcb file. Otherwise, the diff is returned for review.
IMPORTANT: After applying, open the PCB in KiCad for manual rerouting.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to .kicad_pro, .kicad_pcb, or project directory | |
| net_names | Yes | Net names to rip up | |
| apply_diff | No | If True, apply the diff to the local file |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It explains removal of tracks/vias, diff return, optional application, and need for manual rerouting. However, it does not detail side effects, error conditions, or permissions required for this destructive action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three short sentences plus an important note. It front-loads the core purpose and structures the behavior clearly, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and schema descriptions are 100%, the description adequately covers return behavior and manual follow-up. It does not mention prerequisites or error handling, but the tool's role in a sequence and the developer context likely fill these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds context for 'apply_diff' (behavior) and mentions 'tracks/vias' relating to 'net_names', but does not add significant meaning beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool removes tracks/vias and returns a diff, using specific verb 'execute rip-up' and resource 'tracks/vias'. It distinguishes from sibling 'kicad_ctrl_propose_ripup' by implying execution after proposal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates this is 'Station 3', implying a sequence after proposal, and explains the apply_diff flag. However, it does not explicitly mention when to use vs alternatives or when not to use, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kicad_ctrl_exportBInspect
Station 6: Export gerbers, drill files, and positions.
Downloads a ZIP from the API containing all fabrication files.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to .kicad_pro, .kicad_pcb, or project directory | |
| output_dir | No | Local directory to save the export (default: CAM/ next to PCB) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral transparency. It only states that a ZIP is downloaded, but omits details like whether files are overwritten, temporary storage, or required permissions. The side effects and exact behavior of the export are unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose, and contains no extraneous information. Every word contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the main action, it lacks details about the output schema (though one exists), such as what files are included in the ZIP or how errors are reported. Given the tool's complexity (exporting multiple file types), the description is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning both parameters have descriptions in the schema. The description does not add additional meaning beyond what the schema already provides (e.g., project_path types, output_dir default). Therefore, the description offers no extra parameter clarity, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Export' and specifies the resources: gerbers, drill files, and positions. It also mentions downloading a ZIP of fabrication files, leaving no ambiguity about the tool's function. Among sibling tools starting with 'kicad_ctrl', this is distinctly the export function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'kicad_ctrl_analyze' or 'kicad_ctrl_validate'. It does not mention any prerequisites, context, or exclusions. Given the large number of sibling tools, explicit usage guidelines are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kicad_ctrl_netlist_diffAInspect
Station 0b: Compare old and new schematic netlists.
Shows what connectivity changed — added/removed/modified nets and components. This tells you exactly which PCB traces need rerouting.
IMPORTANT: Review the diff before proceeding to PCB analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to the NEW .kicad_sch (current version) | |
| old_schematic | No | Path to the OLD .kicad_sch (previous version). If not provided, uses git to find the previous version. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the output (diff of nets and components) and the practical implication (which traces need rerouting). It does not discuss potential side effects, required permissions, or error handling, which would be needed for a higher score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three efficient sentences plus an imperative instruction. Every sentence adds value: function, output, practical reason, and important note. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a diff tool with good param descriptions and an output schema, the description covers the core functionality, practical use case, and a key warning. It leaves no significant gaps for typical usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with clear parameter descriptions. The description adds value by explaining that 'old_schematic' defaults to git if not provided, and by setting context that 'project_path' is the new schematic. This goes beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'compare' and the resource 'old and new schematic netlists', and explains the output (added/removed/modified nets/components). It distinguishes from siblings like kicad_ctrl_analyze or kicad_ctrl_erc, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context: 'Review the diff before proceeding to PCB analysis.' It implies the tool is for pre-PCB tasks. However, it does not explicitly mention when not to use it or name alternative tools for exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kicad_ctrl_propose_ripupAInspect
Station 2: Propose rip-up — enumerate what would be removed.
IMPORTANT: Review the proposal before proceeding. Ask the operator to approve before calling kicad_ctrl_execute_ripup.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to .kicad_pro, .kicad_pcb, or project directory | |
| net_names | Yes | Net names to rip up |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states that the tool enumerates removals but does not mention whether it is read-only, requires permissions, or handles errors. The description lacks details on side effects or safety, which are critical for a tool in a destructive workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using only two short sentences. The main purpose is front-loaded, and the important usage instruction is clearly highlighted. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (as indicated by context signals), the description need not explain return values. The tool has two simple parameters and no nested objects. The description adequately covers the core action and workflow guidance, missing only behavioral details that would ideally come from annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters (project_path and net_names). The description adds no additional context about parameters, but baseline 3 is appropriate since the schema handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Station 2: Propose rip-up — enumerate what would be removed.' It directly describes the action of proposing a rip-up and listing removals, distinguishing it from sibling tools like kicad_ctrl_execute_ripup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit usage guideline: 'Review the proposal before proceeding. Ask the operator to approve before calling kicad_ctrl_execute_ripup.' This tells the agent to seek approval before execution, establishing a clear workflow. However, it does not explicitly state when not to use the tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kicad_ctrl_validateBInspect
Station 5: Run DRC validation on the PCB.
IMPORTANT: Review DRC results before proceeding to export.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to .kicad_pro, .kicad_pcb, or project directory |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states 'Run DRC validation' without revealing whether the tool modifies the PCB file, requires specific permissions, or how it handles errors. The note to review results is a guideline, not a behavioural trait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at two short sentences, with no unnecessary words. However, the prefix 'Station 5:' adds minimal context and could be omitted or explained for clarity. The important note is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a single-parameter validation), the description covers the basic action and provides a sequential hint. However, it lacks details about the output format, return values, prerequisites (e.g., project must be open), and potential side effects, especially since an output schema exists but is not described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the lone parameter 'project_path' with full coverage (100%). The tool description adds nothing about this parameter beyond the schema, so it meets the baseline but does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run DRC validation on the PCB', identifying the specific verb (Run) and resource (DRC validation on PCB). It distinguishes DRC from other validation types like ERC, but does not explicitly contrast with sibling tools such as kicad_ctrl_analyze or kicad_ctrl_export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage hint: 'Review DRC results before proceeding to export,' indicating that DRC is a pre-export step. However, it does not specify when to use this tool versus alternatives like kicad_ctrl_erc or other kicad_ctrl_* tools, nor does it mention 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.
list_datasheet_sectionsAInspect
List table-of-contents sections from a datasheet PDF.
A lightweight way to discover what's in a datasheet before reading specific chunks with read_datasheet. Returns only section titles and page numbers, no chunk text.
Two input modes:
file_path: Upload a local PDF file
sku: Fetch cached data from CDN by part number
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | Path to a local PDF datasheet | |
| sku | No | Part SKU to fetch cached data for |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the return type (titles and page numbers, no chunk text) and input modes. However, it doesn't mention caching, error handling, or performance characteristics, which would be helpful for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence serves a purpose: opening states action, second explains context and sibling relationship, third specifies output, fourth details parameters. No fluff, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers purpose, usage, input modes, and output nature. It is complete and self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing a baseline of 3. The description adds operational context: 'Upload a local PDF file' for file_path and 'Fetch cached data from CDN' for sku, clarifying the source behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'datasheet sections', specifies it returns table-of-contents titles and page numbers, and distinguishes from the sibling tool 'read_datasheet' by noting it provides an overview before reading chunks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames this tool as a lightweight discovery step before using read_datasheet, and describes two input modes (file_path or sku). It lacks explicit 'when not to use' guidance but effectively communicates context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_devicesAInspect
List all devices registered for the current user.
Each device has an ID, name, last-seen timestamp, and any device-specific preference overrides.
Returns: List of devices with their preferences
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It details the return fields (ID, name, last-seen, preference overrides) and that it returns a list. This sufficiently discloses behavior for a read-only list operation, though it could mention sorting or pagination if applicable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two short sentences plus a return line. Every sentence adds value without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no params, no annotations, output schema present), the description adequately covers purpose, return structure, and fields. Lacks details on ordering or potential size, but not critical for a basic list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%, empty properties). Baseline score of 4 applies since no parameter info is needed; description focuses on return values instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List all devices registered for the current user,' specifying the verb (list) and resource (devices). This distinguishes it from siblings like 'test_provision_devices' which is about provisioning, not listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates the tool is for the current user's devices, providing clear context. No explicit exclusions or alternatives are mentioned, but given the simple parameterless interface, the intended usage is obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_doc_safelistAInspect
List all MIME types currently on the document upload safelist.
Returns the full set of file types that are permitted for upload after Magika content-type scanning. Types not on this list will be rejected at the API boundary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses that the tool returns the safelist after scanning and explains rejection behavior, adding meaningful context beyond the name. Although it does not explicitly state non-destructiveness, the passive phrasing implies a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the purpose, the second adds context about return value and rejection. It is front-loaded and contains no extraneous information, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and existing output schema, the description fully explains the tool's behavior: what it returns and the implications for upload. No additional information is needed for this simple list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so coverage is 100%. Per guidelines, with no parameters the baseline is 4. The description adds no parameter details because none exist, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all MIME types currently on the document upload safelist,' specifying the verb (list) and resource (safelist). It distinguishes itself from sibling tools like add_doc_safelist and remove_doc_safelist by indicating a read-only operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it returns the full set of permitted file types after Magika scanning and notes that unlisted types are rejected. While it does not explicitly state when not to use it, the context around upload rejection implies usage for checking allowed types before uploading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logistics_consignment_manifestAInspect
Station 4: Generate a consignment manifest by diffing BOM vs inventory.
Uploads BOM and compares against current inventory levels to determine what needs to be shipped to the CM (contract manufacturer).
IMPORTANT: Review the manifest before shipping. Verify short items.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM file (.csv or .json) | |
| inventory_levels | Yes | Dict mapping part_number to quantity on hand at CM | |
| cm_address | Yes | Contract manufacturer shipping address |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description explains the high-level behavior: uploading BOM, comparing inventory, determining shipping needs, and warning to review. However, it does not specify whether the operation is read-only, if it modifies any data, or what side effects occur, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient with three sentences: purpose, process, and caution. It is front-loaded with the tool's main action and has no redundant information, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not detail return values. It covers the core workflow and a critical warning. Minor gaps include lack of error condition hints or prerequisites, but overall it is sufficiently complete for a well-defined tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so each parameter is documented. The description rephrases the schema's meaning (e.g., 'diffing BOM vs inventory' maps to bom_path and inventory_levels) but adds only minimal new context beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Generate a consignment manifest by diffing BOM vs inventory.' It specifies the verb (generate) and resource (consignment manifest), and distinguishes from siblings like logistics_create_shipment by being a specific preparatory step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies the tool as 'Station 4', implying its place in a workflow, and instructs to review the manifest before shipping. It provides context on when to use (after BOM and inventory are available) but does not explicitly exclude alternative scenarios or compare with other logistics tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logistics_create_shipmentBInspect
Station 1: Create a shipment with label, packing list, and customs docs.
Creates a shipment for an order, generates shipping label data, packing list, and customs declaration for international shipments.
IMPORTANT: Review shipment details and label before dispatching.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order identifier (e.g. ORD-A1B2C3D4) | |
| destination | Yes | Destination address dict with keys: name, street, city, state, postal_code, country | |
| carrier | No | Preferred carrier (dhl, fedex, sf_express, usps) | dhl |
| weight_kg | No | Package weight in kilograms |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the burden of disclosing behavior. It indicates it creates a shipment (write operation) and generates documents, but does not detail side effects, authorization requirements, or whether the shipment is actually dispatched. The note to review before dispatching hints that label creation is separate from dispatch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, with two substantive sentences and an important note. It is front-loaded with the primary action, though the 'Station 1' label could be clarified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not be explained. However, the description omits prerequisites (e.g., does the order exist? are there constraints?), and the 'Station 1' reference may confuse without broader workflow context. Overall adequate for a tool with well-described schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 4 parameters, so the description adds minimal extra meaning beyond stating it creates a shipment 'for an order' and 'for international shipments', which is already implied by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a shipment and generates shipping label, packing list, and customs docs. The verb 'create' and specific outputs make the purpose clear, though it does not explicitly differentiate from sibling logistics tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Station 1' implying an order in a workflow, and includes an important note to review before dispatching, but lacks explicit guidance on when to use this tool vs. alternatives like logistics_customs_declare or logistics_consignment_manifest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logistics_customs_declareAInspect
Station 3: Generate customs declaration from BOM with HS code mapping.
Uploads BOM file and maps components to HS codes based on category. Calculates declared values for each line item.
IMPORTANT: Review HS codes and declared values before submitting to customs.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM file (.csv or .json) | |
| invoice_amount | Yes | Total invoice amount in USD | |
| destination_country | Yes | Destination country code (e.g. US, DE, JP) | |
| origin_country | No | Origin country code (default CN) | CN |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It mentions mapping HS codes and calculating values, but does not clarify whether the tool creates a permanent record, modifies state, or requires specific permissions. The output schema exists but its content is not visible here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, followed by actions and an important caution. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the primary actions and a caution, it lacks information about the output (though an output schema exists) and any prerequisites or error conditions. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds context about mapping components to HS codes based on category, which is not explicit in the schema, but does not provide significant additional meaning for individual parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a customs declaration from a BOM with HS code mapping, and calculates declared values. It distinguishes itself from sibling logistics tools (e.g., logistics_track_shipment) by focusing on customs declaration generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a caution to review HS codes and declared values before submission, but does not specify when to use this tool over alternatives or when not to use it. No explicit usage comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logistics_inventory_reconcileAInspect
Station 5: Reconcile physical inventory count against system records.
Uploads physical count CSV and system inventory CSV. Diffs quantities and reports matches, overages, and shortages.
IMPORTANT: Review discrepancies and investigate before adjusting system records.
| Name | Required | Description | Default |
|---|---|---|---|
| physical_count_path | Yes | Path to physical count CSV (columns: part_number, counted_quantity) | |
| system_inventory_path | Yes | Path to system inventory CSV (columns: part_number, system_quantity) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool uploads CSVs, diffs quantities, and reports results without modifying system records (implied by the warning). This is transparent about its read-only nature and workflow context ('Station 5').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: first introduces the tool as a station, second explains the process, third provides a critical warning. No wasted words, and the structure is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (two string parameters, CSV comparison), the description covers the core functionality and important caveat. An output schema exists so return format is covered. Missing details like error handling or file size limits, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with detailed parameter descriptions already in the schema. The tool description restates the parameter purposes without adding new semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reconciles physical inventory against system records, using specific verb 'Reconcile' and resource. It explains the process of uploading two CSVs and reporting matches, overages, and shortages. This distinguishes it from sibling logistics tools like logistics_create_shipment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an important warning to review discrepancies before adjusting system records, implying the tool is for analysis only. However, it lacks explicit guidance on when to use this tool versus alternatives; the context suggests no close siblings exist, reducing the need for exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logistics_track_shipmentAInspect
Station 2: Track a shipment and get current status.
Returns tracking events with timestamps, locations, and status updates.
| Name | Required | Description | Default |
|---|---|---|---|
| shipment_id | Yes | Shipment identifier (e.g. SHP-A1B2C3D4) | |
| carrier | No | Carrier name (dhl, fedex, sf_express, usps) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It correctly implies a read-only operation (tracking, returning status) but does not explicitly state non-destructiveness or any other behavioral traits like rate limits or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both essential: first states the action, second describes the output. No wasted words, front-loaded with key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tracking tool with an output schema, the description adequately explains the return value (events with timestamps, locations, status updates). It does not cover error scenarios or edge cases, but is sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds marginal value beyond the parameter descriptions. It does not elaborate on parameter constraints, formats, or usage beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Track') and resource ('shipment'), clearly stating the tool's purpose. It distinguishes itself from sibling logistics tools like logistics_create_shipment and logistics_inventory_reconcile by focusing on tracking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as prerequisites (e.g., shipment must exist) or conditions (e.g., use after creation). No contextual usage advice is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
match_components_to_partsCInspect
Match KiCad components to real parts.
| Name | Required | Description | Default |
|---|---|---|---|
| components | Yes | List of components from KiCad | |
| auto_search | No | Whether to automatically search for parts |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'match', omitting details about side effects (e.g., updates to database), required permissions, output format, or error handling. The presence of an output schema is not mentioned in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks structure. It avoids verbosity but may be too brief, missing opportunities to front-load key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a simple tool, the description is incomplete. It does not explain what 'match' entails (e.g., partial matching, confidence scores), return behavior, or how it integrates with the KiCad workflow. The agent lacks critical context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with accurate descriptions for both parameters. The description adds no additional meaning beyond what the schema already provides, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'match' and the resources 'KiCad components' to 'real parts', establishing a specific purpose. However, it does not differentiate from similar tools like 'search_parts' or 'identify', leaving some ambiguity about the exact matching process.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The agent receives no information about when to use this tool versus alternatives like 'search_parts' or 'analyze_kicad_project', nor 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.
open_in_kicadBInspect
Open a KiCad project in the KiCad application.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to KiCad project file |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It only states the action but does not describe what happens (e.g., blocks until KiCad exits? Returns immediately? Requires file existence? No behavioral details are given for this external app launch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. While it is concise, it could benefit from additional context (e.g., file format), but the brevity is acceptable for a simple action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that opens an external application, the description is minimal. It does not mention return behavior, error conditions, or side effects. Given the lack of annotations and a simple task, it is marginally adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter 'project_path' with 'Path to KiCad project file'. The description adds no additional meaning beyond the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Open a KiCad project in the KiCad application' clearly states the verb (open), resource (KiCad project), and target application (KiCad). It distinguishes from sibling tools like analyze_kicad_project or find_kicad_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives, nor does it mention prerequisites (e.g., KiCad must be installed). The usage context is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parts_cliAInspect
Run a parts CLI command for local project operations.
Executes the parts CLI binary with the given command and arguments.
The command string should NOT include the leading parts — just the
subcommand and flags.
Parts CLI Command Reference
ECN Management (project ecn)
List all ECNs
parts project ecn list [--dir ECO] Alias: parts project ecn ls
Get ECN details
Read the file directly: ECO/ECN-006.md
Create a new ECN
parts project ecn create
--id ECN-021
--title "Issue title"
--type "Schematic Change"
--severity HIGH
--disposition REQUIRED
[--category Electrical]
[--author "Name"]
[--source "reference"]
[--affected "U5, R23"]
[--output-dir ECO]
Types: Design Constraint | Assembly Note | BOM Change | Schematic Change | Process Change Severity: CRITICAL | HIGH | MEDIUM | LOW Disposition: REQUIRED | RECOMMENDED | OPTIONAL
Validate ECN files
parts project ecn validate [--dir ECO]
Migrate monolithic log to individual files
parts project ecn migrate --source Reports/ECN_Log_V1.0.md [--output-dir ECO]
Fabrication (fab)
Stackup PDF from gerbers
parts fab stackup <gerbers.zip> [-b "Board Name"] [--scale 3] [-o output.pdf] [--prefix "Board_V1.03"]
Placement / pick-and-place
parts fab placement [positions.csv]
[--rows 3] [--cols 3]
[--assemble 1,2,3,7,8]
[--side top|bottom|both]
[--outline board.gko]
[--bom bom.csv]
[--manual-place U,J,SW,MIC]
[--split-csv]
[--rotate-top]
[--machine yy1]
[-b "Board Name"] [-o ./output] [--prefix "Board_V1.03"]
Net trace highlight
parts fab highlight <board.kicad_pcb>
--nets "VCC,GND,SDA"
[--colors "VCC=#ff0000,GND=#0000ff"]
[--mode overlay|traces|both]
[--layers "F.Cu"]
[-o ./output]
Assembly guide PDF
parts fab assembly
Test point report
parts fab testpoints <positions.csv>
Gerber diff
parts fab diff <v1.zip> <v2.zip> [--name-a "V1" --name-b "V2"]
Structural diff report
parts fab report <v1.zip> <v2.zip>
X-ray inspection report
parts fab xray
Release
parts fab release
Machine SD card
parts fab machine
BOM
Upload BOM
parts bom <filename.xlsx> [-p project_id] [--wait] [--no-lcsc] [--dfm-check]
Generate BOM PDF
parts bom pdf [bom.csv] [-b "Board Name"] [-o output.pdf] [--prefix "Board_V1.03"]
Clean EIA capacitor codes
parts bom clean <bom.csv>
Convert CSV to Excel
parts bom convert <file.csv>
Fetch datasheets for BOM parts
parts bom datasheets <bom.csv>
Enrich BOM with descriptions
parts bom enrich <bom.csv>
Check BOM job status
parts bom status
Project
Init new project
parts init [path] [-t dfm|pcb|assembly] [-a "Author"] [-d "Description"] [--skip-git] [-i]
Project CRUD
parts project create parts project list parts project get parts project delete
ECO (Engineering Change Order)
parts project eco
Status
parts status
Search & Parts
Search parts
parts search [--in-stock] [--eu-only|--us-only|--cn-only]
Smart query (search, URL, SMD codes)
parts q
Price estimate
parts price
Inventory check
parts inventory
Datasheet
parts datasheet
Find alternatives
parts guide
SMD code decode
parts smd
Resistor color bands
parts resistor
Part marking lookup
parts marking
IQC / Ingest
Upload images for identification
parts ingest [-p project_id] [-b box_id] [--wait] [--recursive] [--dry-run]
Detect from photo
parts detect
Scan barcode
parts scan
List IQC items
parts ingest items
Reprocess item
parts ingest reprocess
Manufacturing
DFM analysis
parts dfm
AOI inspection
parts aoi
QC inspection
parts qc
EDA (eda)
DXF board outline info
parts eda dxf <file.dxf> [--json] Parse a DXF file and report board outline dimensions, bounding box, entity count, and layer names. Example: parts eda dxf board_outline.dxf Example: parts eda dxf board_outline.dxf --json
Electrical Rules Check
parts eda erc <file.kicad_sch> [--severity all|error|warning] [--rules file] [--json] Upload a KiCad schematic and run ERC. Returns violations by severity.
Design Rules Check
parts eda drc <file.kicad_pcb> [--severity all|error|warning] [--rules file.kicad_dru] [--json] Upload a KiCad PCB and run DRC. Returns violations by severity.
Import Altium to KiCad
parts eda import altium <file.SchDoc|.PcbDoc> [-o output] [--name project] [--revision EVT1] [--no-git] Convert Altium schematic or PCB to KiCad format.
Orders & Commerce
Get quote
parts fab quote
RFQ
parts rfq
Add to cart
parts cart
Buy
parts buy
COGS calculation
parts cogs <bom_id|project_id> [-q quantity]
Misc
Auth
parts auth
Balance
parts balance
History
parts history
Labels
parts label
Notes
parts note "text"
Todos
parts todo "text"
Tracker (price/qty watch)
parts tracker
Wishlist
parts wishlist
Expenses
parts expense
Reports
parts report
Git operations
parts push parts pull parts log parts tag
GitHub Actions
parts github report --project --repo <owner/repo> [--thread-id ]
Global flags (apply to all commands)
-q, --quiet Suppress progress output -v, --verbose Verbose output -h, --help Help for any command
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | The parts subcommand and arguments. Examples: "project ecn list", "fab stackup gerbers.zip --scale 3", "project ecn create --id ECN-021 --title 'New issue' --type 'BOM Change' --severity HIGH --disposition REQUIRED" | |
| project_path | No | Working directory for the command (defaults to cwd). Should be the root of the project containing .parts/config.yaml. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It fails to disclose potential destructive actions (e.g., delete commands), authentication requirements, or side effects like file modifications. While the command reference hints at some operations, there is no explicit warning about safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured into categories, with the main purpose and usage front-loaded. Every section provides necessary detail for a complex CLI tool, earning its length without being wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many subcommands) and the presence of an output schema (though not evaluated), the description is nearly complete. It covers all major commands but lacks information on error handling, prerequisites, and behavioral caveats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, but the description adds significant value with detailed examples for the `command` parameter and clarification for `project_path`. This goes beyond the schema's minimal descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool runs the `parts` CLI for local project operations and specifies that the command string should exclude the leading 'parts'. It distinguishes itself from sibling tools that focus on specific functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive context on when to use various subcommands (e.g., ECN management, fabrication, BOM). However, it does not explicitly mention when not to use this tool or compare with sibling tools like `ecn_create` or `fab stackup`, which could lead to ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quality_compliance_checkAInspect
Station 4: Check BOM regulatory compliance for target markets.
Uploads BOM and checks every component against RoHS, REACH SVHC, conflict minerals (3TG), and market-specific requirements (CE/UL/CCC).
IMPORTANT: Review non-compliant components and compliance summary per market before proceeding with production or export.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM file (.csv or .json) | |
| target_markets | Yes | List of target market codes (EU, US, CN) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions 'uploads BOM and checks' implying a read-only operation, but does not explicitly state that no data is modified, nor does it disclose permission requirements or side effects. It partly compensates by mentioning the output (non-compliant list and summary).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, each adding essential information. It front-loads the purpose and uses an IMPORTANT note for critical guidance. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (multiple regulatory checks) and the presence of an output schema (known via signal), the description adequately covers inputs and expected results. It could mention that the checks are based on current regulations or that the tool is read-only, but it is largely complete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters documented. The description adds value by specifying BOM file formats (.csv, .json) and listing specific regulatory checks (RoHS, REACH SVHC, etc.), which provides context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks BOM regulatory compliance for target markets, listing specific regulations (RoHS, REACH SVHC, conflict minerals, CE/UL/CCC) and indicating it's a station in a process. This distinguishes it from sibling tools like dfm tools or quality inspection tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises reviewing results before production or export, providing clear context. However, it does not explicitly state when to avoid using this tool or mention alternatives, though the sibling list includes related compliance tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quality_fai_inspectAInspect
Station 3: First Article Inspection — verify assembled board against BOM.
Uploads assembled board photos and BOM file. Server cross-references each visible component against the BOM for presence, polarity, orientation, and correct value.
IMPORTANT: Review flagged components manually. Vision-based checks should be confirmed by operator before accepting the first article.
| Name | Required | Description | Default |
|---|---|---|---|
| board_photos | Yes | List of paths to assembled board photos (JPEG/PNG) | |
| bom_path | Yes | Path to BOM file (.csv or .json) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly states that the tool uploads inputs, performs cross-referencing, and flags components. It also warns that vision-based checks require manual confirmation, alerting the agent to the need for human oversight. However, it does not describe the output format (e.g., structure of flagged components) or potential edge cases (e.g., missing photos, invalid BOM). The 'has output schema' context suggests output details exist but are not covered here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: three sentences plus an IMPORTANT note. It starts with a clear purpose, then lists actions, and ends with critical operator guidance. Every sentence adds value, no redundancy or fluff. The structure is logical and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 required parameters, no enums, no nested objects) and the presence of an output schema (though not detailed in the description), the description adequately covers the input requirements and expected outcome (flagged components needing review). It lacks a brief explanation of what the output looks like, but for a tool focused on human-in-the-loop inspection, the current level is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (board_photos as array of JPEG/PNG paths, bom_path as CSV/JSON). The description restates these requirements ('Uploads assembled board photos and BOM file') but adds no new semantic details beyond what the schema already provides. Therefore, it meets the baseline without adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as performing First Article Inspection, verifying assembled board against BOM. It specifies the action (upload photos and BOM, cross-reference components) and the inspection criteria (presence, polarity, orientation, value). This distinguishes it from other quality tools like assembly_aoi_inspect or quality_iqc_inspect by focusing on the first article verification step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides post-use guidance by emphasizing manual review of flagged components and operator confirmation. However, it lacks explicit guidance on when to use this tool versus similar siblings (e.g., assembly_aoi_inspect for automated optical inspection) or when not to use it (e.g., if no BOM available). The context of 'Station 3' implies a workflow but is not explicit about prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quality_iqc_inspectAInspect
Station 1: Incoming quality control inspection.
Uploads component reel/packaging photos and PO reference data. Server validates label readability, checks date code freshness, verifies MPN, and checks MSL level.
IMPORTANT: Review the inspection checks before accepting components into stock. Rejected components must not enter production.
| Name | Required | Description | Default |
|---|---|---|---|
| photos | Yes | List of paths to component reel/packaging photos (JPEG/PNG) | |
| part_number | Yes | Expected manufacturer part number (MPN) | |
| expected_quantity | Yes | Expected quantity from PO | |
| expected_date_code | No | Expected date code (YYWW format, optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the server validates multiple checks (label readability, date code, MPN, MSL level) and warns that rejected components must not enter production. This gives reasonable behavioral context for a read-heavy inspection tool, though it doesn't specify if the tool is read-only or if it mutates state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise with two paragraphs and a bolded note. It front-loads the purpose ('Station 1: Incoming quality control inspection') and efficiently lists actions. The important note adds necessary safety information without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 params, multiple checks, output schema exists), the description covers the process and validation steps adequately. It explains what happens on the server and the critical outcome (rejection). With output schema present, omitting return value details is acceptable. However, it could briefly mention how results are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 4 parameters. The description adds value beyond the schema by explaining why each parameter is used: photos and PO reference data are uploaded, date code freshness is checked (linking to expected_date_code), and MPN is verified. This contextualizes the parameters within the inspection process.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is 'Station 1: Incoming quality control inspection' and lists specific actions: uploads photos and PO data, validates label readability, date code, MPN, MSL level. This distinguishes it from sibling quality tools (e.g., quality_fai_inspect for final inspection) by specifying the incoming stage and the resource (component reels/packaging).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for incoming inspection as 'Station 1' but provides no explicit guidance on when to use this tool versus alternatives (e.g., quality_fai_inspect, quality_compliance_check). There is no 'do not use' or 'use when' directive, and alternatives are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quality_xray_analyzeAInspect
Station 2: X-ray solder joint analysis for BGA/QFN packages.
Uploads X-ray images of solder joints. Server analyzes void percentage, checks for solder bridges, head-in-pillow defects, and other anomalies per IPC-7095/IPC-A-610 standards.
IMPORTANT: Review the defect report and void percentages before accepting the board. Joints exceeding 25% void require rework.
| Name | Required | Description | Default |
|---|---|---|---|
| xray_images | Yes | List of paths to X-ray images (JPEG/PNG) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses that the tool uploads images and analyzes them per IPC standards. However, it does not mention side effects (e.g., image storage), authentication needs, or rate limits. The behavioral traits are partially transparent but could be more comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences plus an important note. It front-loads the core purpose and adds necessary details without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input details and analysis scope. It mentions the defect report and void percentages as outputs, which is sufficient 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the parameter xray_images as 'List of paths to X-ray images (JPEG/PNG)' with 100% coverage. The description adds context about analyzing for solder joint defects but does not significantly enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: X-ray solder joint analysis for BGA/QFN packages, including specific defects and standards. It is distinct from sibling quality tools like quality_compliance_check or quality_fai_inspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance on using the tool for X-ray analysis and important post-analysis actions (review defect report, joints exceeding 25% void require rework). It does not explicitly state when not to use it or mention alternatives, but the context is sufficient for correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_assemblyAInspect
Get a combined fabrication + assembly quote.
Uploads gerbers for fab quotation and a BOM for assembly costing. Polls the BOM status to get a bom_id, then calculates COGS.
| Name | Required | Description | Default |
|---|---|---|---|
| gerber_path | Yes | Path to the gerber zip file | |
| bom_path | Yes | Path to the BOM file (CSV, XLSX, etc.) | |
| quantity | No | Number of assemblies (default 5) | |
| layers | No | Number of PCB layers (default 2) | |
| thickness | No | Board thickness in mm (default 1.6) | |
| surface_finish | No | Surface finish (HASL, ENIG, OSP, etc.) | HASL |
| color | No | Solder mask color | green |
| priority | No | Priority level (low, normal, high) | normal |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavior. It details the internal steps: uploading gerbers and BOM, polling for bom_id, and calculating COGS. While it doesn't mention error handling or idempotency, it provides sufficient context for typical use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four lines with no unnecessary words. It front-loads the main purpose and then succinctly explains the process. Ideal length for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations but an output schema, the description adequately covers the tool's workflow. It could specify prerequisites (e.g., file access, valid formats) or alternative scenarios (e.g., using separate tools), but these are minor omissions for a tool with many parameters and explicit output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no extra meaning beyond the schema, which meets the baseline. No improvement over schema is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a combined fabrication + assembly quote.' It uses specific verbs and resources, and implicitly distinguishes from sibling tools like quote_fabrication by emphasizing the combined nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains that the tool uploads gerbers and BOM, then polls for BOM status and calculates COGS. This implies it should be used when both fabrication and assembly quotes are needed. However, it does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_fabricationAInspect
Get a fabrication quote for a project.
Submits a fab quotation request using a project reference. Use upload_gerbers_for_quote to upload gerber files directly instead.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID to quote | |
| quantity | No | Number of boards (default 5) | |
| layers | No | Number of PCB layers (default 2) | |
| thickness | No | Board thickness in mm (default 1.6) | |
| surface_finish | No | Surface finish (HASL, ENIG, OSP, etc.) | HASL |
| color | No | Solder mask color (green, red, blue, black, white, yellow) | green |
| priority | No | Priority level (low, normal, high) | normal |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only says 'Submits a fab quotation request,' implying a write operation, but lacks details on side effects, authentication needs, rate limits, or what the response contains. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose and immediately providing an alternative. No unnecessary words, perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the output schema exists (so return values need not be explained), the tool has 7 parameters with defaults, and the description gives no usage hints beyond the alternative. It is adequate but could provide more guidance on parameter usage or edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for all 7 parameters. The description does not add any additional meaning beyond what the schema provides, so it meets the baseline but adds nothing extra.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool's purpose: 'Get a fabrication quote for a project' and 'Submits a fab quotation request using a project reference.' It also distinguishes from the sibling tool `upload_gerbers_for_quote` by indicating when to use which, making the purpose very clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use this tool (with a project reference) and when to use an alternative (upload_gerbers_for_quote for direct gerber upload). However, it does not mention other potentially relevant alternatives like quote_assembly or calculate_bom_cost among the many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_datasheetAInspect
Read and chunk a datasheet PDF for analysis.
Two input modes:
file_path: Upload a local PDF file for chunking
sku: Fetch cached chunks from CDN by part number
If query is provided, only chunks matching the query keywords are returned, reducing context usage. Use list_datasheet_sections first to discover what's in a datasheet before reading specific chunks.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | Path to a local PDF datasheet | |
| sku | No | Part SKU to fetch cached chunks for | |
| query | No | Optional keywords to filter chunks (e.g. "maximum input voltage") | |
| chunk_pages | No | Pages per chunk (default 5) | |
| max_chunks | No | Maximum chunks to return (default 5). Increase for broader results. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the two input modes and chunking behavior, but does not disclose non-destructive nature, what happens if both parameters are provided, or the exact chunking algorithm. The description is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence overview, a bulleted list of modes, a sentence about query, and a recommendation to use a sibling tool. Every sentence contributes meaning with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (not shown but indicated), the description does not need to detail return values. It explains modes, query behavior, and chunk settings. The only minor gap is the lack of explanation about mutual exclusivity of file_path and sku, but overall it is quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 5 parameters have descriptions). The tool description adds value by explaining the two modes, query filtering to reduce context, and default chunk sizes. This goes beyond the schema's basic parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads and chunks a datasheet PDF for analysis. It specifies two input modes (file_path and sku) and distinguishes itself from sibling list_datasheet_sections by advising to use that first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use each mode and recommends using list_datasheet_sections first. It explains that providing a query reduces context usage. However, it does not explicitly state when not to use this tool or mention alternatives beyond the sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_doc_safelistAInspect
Remove a MIME type from the document upload safelist.
After removal, uploads whose Magika-detected type matches this MIME type will be rejected. Requires admin role.
| Name | Required | Description | Default |
|---|---|---|---|
| mime_type | Yes | MIME type to remove, e.g. "application/pdf". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the behavioral effect (rejection of future uploads) and the role requirement, though it doesn't mention irreversibility or side-effects beyond the immediate action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: action in first, consequence and requirement in second. No unnecessary words, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal tool with one parameter and an output schema, the description covers the effect, requirement, and action completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter that already has a description. The description adds an example but little extra semantic value, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (remove a MIME type from the safelist) and its consequence, distinguishing it from siblings like add_doc_safelist and list_doc_safelist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the admin role requirement and the effect on uploads, but does not explicitly guide when to use or not use this tool versus alternatives. However, the purpose is straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_schematicBInspect
Render a schematic as PDF for visual review.
Uses kicad-cli on the server to export the schematic as a PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to .kicad_sch file | |
| save_to | No | Optional directory to save the PDF locally |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, side effects, or server-side actions beyond a vague 'uses kicad-cli'. Critical context for an AI agent, like whether the tool modifies files or requires a project to be open, is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences with no fluff. Every word adds value, and the structure is front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 adequate but lacks crucial context like error scenarios, prerequisite checks, or confirmation that the operation is non-destructive. More detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters with descriptions (path and optional save-to directory). The description adds no extra 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders a schematic as PDF for visual review, using a specific verb ('Render') and resource ('schematic'). It distinguishes from siblings like 'review_schematic' which likely involves different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., 'review_schematic' or 'analyze_kicad_project') is provided. The description does not mention prerequisites, limitations, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_schematicAInspect
Compare two schematic versions and return structured diff.
Shows added/removed components, changed values, and net changes.
| Name | Required | Description | Default |
|---|---|---|---|
| old_file_path | Yes | Path to the old/baseline .kicad_sch file | |
| new_file_path | Yes | Path to the new/modified .kicad_sch file |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It states it returns a diff but does not disclose if the tool is read-only, has side effects, or requires specific permissions. The lack of any mention of safety or limitations is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and the second sentence adds relevant detail. Every word earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 function. However, it could mention file format restrictions or size limits, but the schema already implies .kicad_sch files. Sufficient for a comparison tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The tool description does not add additional meaning beyond what the schema already provides, achieving the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it compares two schematic versions and returns a structured diff, with specific types of changes listed. This distinguishes it from sibling tools like design_schematic_review or kicad_ctrl_netlist_diff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for comparing schematic versions but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rma_processAInspect
Station 4: Process an RMA request with failure categorization and disposition.
Categorizes failure mode (DOA, wear-out, damage, no-fault-found), checks warranty status, and generates RMA number with disposition.
IMPORTANT: Review disposition before confirming with customer.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Original order identifier | |
| failure_description | Yes | Description of the failure | |
| serial_number | Yes | Device serial number |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It adequately describes the actions: categorizing failure mode, checking warranty status, generating RMA number with disposition, and warns about reviewing disposition. It could mention permissions or side effects but is sufficient for the tool's purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using a clear title line followed by a bullet-like list of actions and an important caution. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. It sufficiently covers the tool's process steps and workflow (Station 4). It is complete for the tool's intended use, though it could mention prerequisites or follow-up steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, providing clear definitions for order_id, failure_description, and serial_number. The description does not add extra semantics beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it processes an RMA request with failure categorization and disposition, specifying the action and resource. It distinguishes itself from sibling tools like failure_analysis or logistics_track_shipment by focusing on the RMA processing workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a caution to review disposition before confirming with the customer, but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it. Given the large number of sibling tools, more comparative context would be helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sales_commission_calculateBInspect
Station 5: Calculate sales commission on an order.
Computes commission payout based on order total and the given commission structure (percentage or flat amount).
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order identifier (e.g. ORD-A1B2C3D4) | |
| commission_rate | Yes | Commission rate — decimal for percentage (e.g. 0.05 for 5%) or dollar amount for flat | |
| commission_type | No | "percentage" (default) or "flat" | percentage |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must shoulder the burden. Does not disclose side effects, error handling, authentication needs, or whether the tool is read-only or mutates state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. 'Station 5' may add useful workflow context but slightly cryptic. Overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema, so return values are covered. But lacks details on how order total is sourced, error cases, or behavioral nuances. Adequate for a simple calculation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes parameters. The description adds no new information beyond confirming 'percentage or flat amount', which is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Calculate sales commission on an order' and elaborates on computing payout based on order total and commission structure. This uniquely identifies the tool's purpose among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Does not mention prerequisites (e.g., order existence) or 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.
sales_invoice_generateBInspect
Station 4: Generate invoice data from an order.
Creates a draft invoice with line items, tax calculation, totals, and due date based on payment terms.
IMPORTANT: Review invoice details before sending to customer.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order identifier (e.g. ORD-A1B2C3D4) | |
| payment_terms | No | Payment terms (net30, net60, due_on_receipt, etc.) | net30 |
| tax_rate | No | Decimal tax rate (e.g. 0.0875 for 8.75%) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist; description lacks disclosure of side effects (e.g., persistence, email sending) or error handling. Only states it creates a draft, but behavior beyond that is unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with clear flow: context, action, warning. Could omit 'Station 4' if not universally meaningful, but otherwise efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema so return details are handled; description covers input and intention. Lacks workflow steps or error conditions, making it adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline 3. Description adds context like 'due date based on payment terms' and 'tax calculation', but does not deeply explain parameter interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Generate invoice data from an order' and specifies it creates a 'draft invoice', distinguishing from final invoice tools. Sibling tools like sales_order_convert 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions 'Station 4' implying a workflow but no explicit when-to-use or when-not-to-use. Lacks prerequisites or alternatives, though the context of other sales tools provides some comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sales_order_convertAInspect
Station 3: Validate stock/lead times and convert quote to order.
Checks inventory for all line items in the quote and flags any shortages or long lead times. If all clear, creates the order.
IMPORTANT: Review items at risk before confirming the order.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | Quote identifier to convert (e.g. QUO-A1B2C3D4) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the validation and creation actions, and warns of risks. However, it does not detail what happens if validation fails (e.g., partial order or error), nor does it mention authentication or rate limits. The behavior is partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences plus a brief caution) and front-loaded with the main purpose. Every sentence provides essential information without redundancy. The structure is logical: purpose, steps, important note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, prerequisite checks, and outcome, which is sufficient given the presence of an output schema for return details. It could briefly mention what the output contains (e.g., order ID), but this is likely in the schema. Overall, it provides adequate context for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'quote_id', and the schema already describes it as a quote identifier. The description adds minimal extra meaning beyond that (e.g., 'convert quote' implies the parameter is the source quote). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('convert quote to order') and resource ('quote'), with specific steps ('Validate stock/lead times', 'Checks inventory', 'flags any shortages or long lead times', 'creates the order'). It distinguishes from siblings by implying a sequential process ('Station 3').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context ('Station 3' in a sequence) and a caution ('Review items at risk before confirming'). It implies when to use (after quote building/negotiation) but does not explicitly mention alternatives or 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.
sales_quote_buildAInspect
Station 1: Price a BOM and generate a quote breakdown.
Uploads the BOM file to the API, which prices all components using the internal DB, adds fab + assembly + margin, and returns a full quote breakdown for operator review.
IMPORTANT: Review the quote before sending to the customer or proceeding to negotiation.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM file (.csv or .json) | |
| quantity | Yes | Build quantity (number of units) | |
| customer_name | Yes | Customer name or identifier |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that it uses internal DB, adds costs, and returns a breakdown. However, it does not reveal whether a record is created/stored, auth requirements, or other 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with purpose, and includes a necessary warning. Every sentence is valuable with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main process and positions the tool among siblings. It omits whether the quote is persisted or just returned, but the presence of an output schema reduces the need for that detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description mentions 'BOM file' and 'customer review' but adds little beyond the schema descriptions for parameters like quantity and customer_name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Price a BOM and generate a quote breakdown' with specific steps (upload, price, add fab/assembly/margin). It differentiates itself as 'Station 1' from siblings like 'quote_assembly' and 'sales_quote_negotiate'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates it is the first step for pricing a BOM and warns to review before proceeding. However, it does not explicitly state when not to use it or mention alternative tools for specific quoting scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sales_quote_negotiateAInspect
Station 2: Revise quantities or pricing on an existing quote.
Recalculates the quote at new terms and shows the margin delta compared to the original quote.
IMPORTANT: Review margin impact before accepting revised terms.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | Existing quote identifier (e.g. QUO-A1B2C3D4) | |
| revised_quantity | No | New build quantity (optional) | |
| revised_margin_pct | No | New margin percentage as decimal (optional, e.g. 0.20 for 20%) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It reveals that the tool recalculates and shows margin delta, but it does not disclose whether the quote is permanently updated, if changes are reversible, or any authorization requirements. This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences and an important note, front-loaded with the main action. Every sentence adds value, and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (though not shown), the description does not need to detail return values. It mentions that the tool shows margin delta, which hints at output. Still, it could be more explicit about side effects (e.g., whether the quote is updated in the system), but overall it is mostly complete for a revision tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the baseline is 3. The description adds no new semantic information beyond what the schema already provides (e.g., 'revised_quantity' is optional and 'revised_margin_pct' is a decimal). It merely restates the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it revises quantities or pricing on an existing quote, recalculates, and shows margin delta. It distinguishes from building a new quote by specifying 'existing', which helps differentiate from sibling tools like sales_quote_build.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description positions the tool as 'Station 2' in a workflow and includes an important caution to review margin impact. However, it does not explicitly state when to avoid this tool or list alternatives, though the context of 'existing quote' implies it is not for new quotes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_docAInspect
Scan a local file with Magika to detect its true content type.
Uses the Source Parts document scanning API (backed by Google Magika) to identify what a file actually is, regardless of its extension. Useful for checking whether a file would be accepted by the safelist before uploading it.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Absolute path to the local file to scan. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description adequately discloses behavioral traits: it uses the Source Parts document scanning API backed by Google Magika, and it identifies the file's true content type regardless of extension. This is sufficient for a read-only scanning operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with a brief explanation, front-loaded with the core purpose. Every sentence adds value with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter schema, high schema coverage, and existence of an output schema, the description is complete. It explains the tool's purpose, usage, and underlying mechanism.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter ('file_path') as an absolute path to a local file, with 100% coverage. The description does not add additional semantic details beyond what the schema provides, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Scan a local file'), the resource ('local file'), and the outcome ('detect its true content type'). It distinguishes from siblings by focusing on content type detection using Magika.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a specific use case ('checking whether a file would be accepted by the safelist before uploading it'), providing clear context. However, it does not explicitly state when not to use the tool or compare to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_parametersCInspect
Search parts by specific parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Parametric search criteria | |
| category | Yes | Part category | |
| limit | No | Maximum results |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It only says 'Search parts' but does not disclose whether it is read-only, any side effects, authentication needs, pagination behavior, or results format. The output schema exists but is not referenced. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks any structure or front-loaded key points. It is not verbose, but it is also not sufficiently informative. A score of 3 reflects minimal adequacy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the 'parameters' object (nested with free-form keys) and the presence of many sibling search tools, the description is not complete. It does not explain how to construct the parameters, provide examples, or mention the output schema. The agent would need significant implicit knowledge to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters. The description adds no extra meaning beyond what the schema provides, such as clarifying how to structure the 'parameters' object or the purpose of 'category'. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resource 'parts', and indicates the search is 'by specific parameters'. However, it does not distinguish this tool from the sibling tool 'search_parts', which likely serves a similar purpose. The lack of differentiation reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'search_parts' or 'find_alternatives'. There is no mention of prerequisites, when not to use it, or how it differs from other search-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_partsCInspect
Search for electronic parts across suppliers.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (part number, description, or keywords) | |
| category | No | Optional category filter (e.g., "resistor", "capacitor") | |
| filters | No | Optional parametric filters (e.g., {"resistance": "10k", "tolerance": "1%"}) | |
| limit | No | Maximum number of results to return |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only states the tool searches parts, with no details on pagination, result ordering, rate limits, or any behavioral constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence. It is efficient but could benefit from a bit more context without becoming overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While parameters are fully described in the schema and there is an output schema, the description lacks behavioral details and usage guidance, making it incomplete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all four parameters. The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for electronic parts across suppliers. However, it does not differentiate from the similar sibling tool 'search_by_parameters', so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'search_by_parameters' or when not to use it. The usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_preferencesAInspect
Set user preferences, optionally for a specific device.
Merges the provided key-value pairs into existing preferences. To delete a key, set its value to null.
| Name | Required | Description | Default |
|---|---|---|---|
| preferences | Yes | Key-value pairs to set. Keys use dot notation (e.g. "ecn.default_author", "fab.default_scale"). | |
| device_id | No | Optional device identifier. If provided, preferences are stored as device-specific overrides. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses merge behavior and deletion by setting value to null, which adds transparency beyond basic schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with primary purpose, second sentence adds critical behavior. No waste; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters and clear behavior, the description covers all needed context: setting, merging, deleting, and device-specific overrides. Output schema exists but is not needed in description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds value by explaining merge and deletion semantics, which are not evident from the parameter descriptions alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets user preferences, with merging behavior and deletion via null. It distinguishes from sibling tools like get_preferences (reading) and user_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It indicates optional device-specific overrides and mentions the merge/deletion semantics, but doesn't explicitly say when not to use. However, the context is clear enough for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_dfmCInspect
Queue a DFM (Design for Manufacturability) analysis for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID to analyze | |
| bom_id | No | Optional BOM ID to include in analysis | |
| revision | No | Optional revision identifier | |
| notes | No | Optional notes for the analysis | |
| priority | No | Priority level ("low", "normal", "high") | normal |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Queue' implies asynchronous behavior but does not disclose execution details, rate limits, or what happens to the queue. The description is too vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clear sentence with no extraneous information. Efficient and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown), the description does not mention return values, job tracking, or related tools like 'check_dfm_status'. Incomplete for a queueing action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are well-documented. The description does not add significant meaning beyond the schema beyond indicating the action type. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Queue' and the resource 'DFM analysis for a project'. However, there is a sibling tool 'dfm_submit' which likely has a very similar purpose, and the description does not differentiate from it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'dfm_submit' or 'check_dfm_status'. No prerequisites or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_rerouteAInspect
Suggest routing paths for disconnected nets after rip-up.
Runs an A* pathfinder on the server and returns suggested track segments as KiCad S-expressions for operator review.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to .kicad_pcb file | |
| nets | Yes | List of net names to route | |
| grid_step | No | Routing grid resolution in mm (default 0.25) | |
| layer | No | Copper layer to route on (default "F.Cu") | F.Cu |
| width | No | Track width in mm (default 0.25) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that it runs a server-side A* pathfinder and returns suggestions for operator review, but does not mention side effects, permissions, or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two short sentences without wasted words. It is front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. It covers purpose, algorithm, and output format, though it could mention prerequisites like disconnected nets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not add parameter details beyond the schema, which already provides clear descriptions for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Suggest routing paths for disconnected nets after rip-up.' It specifies the algorithm (A* pathfinder) and output format (KiCad S-expressions), effectively distinguishing it from sibling tools like kicad_ctrl_execute_ripup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after rip-up with 'after rip-up' but does not explicitly state when not to use or provide alternatives. It provides clear context for when to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supply_chain_avl_qualifyBInspect
Station 2: Check components against AVL rules and score counterfeit risk.
Uploads the BOM file to the API, which checks each component against the Approved Vendor List (AVL): authorized distributors, source control requirements (e.g. SI1304BDL), and counterfeit risk scoring based on component age, popularity, and price anomalies.
IMPORTANT: Review flagged components before proceeding with procurement.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM file (.csv or .json) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether the tool modifies state (e.g., updates records) or is read-only, nor does it mention authentication requirements or rate limits. The warning only flags components for review.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, each adding value. It front-loads purpose and includes an important note. No fluff, though could be improved with slightly more structure (e.g., separators).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter, no annotations, and an output schema (unseen), the description covers the tool's action and a warning. It omits details about return values or how the output schema works, but the presence of an output schema partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter already described as 'Path to BOM file (.csv or .json).' The description restates uploading a BOM file but adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks components against AVL rules and scores counterfeit risk, with a specific verb ('Check') and resource ('components against AVL rules'). It distinguishes from siblings like 'supply_chain_obsolescence_check' by focusing on AVL and counterfeit risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use before procurement via the warning 'Review flagged components before proceeding with procurement.' It mentions it's 'Station 2,' suggesting a workflow context, but does not explicitly state when not to use it or provide alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supply_chain_obsolescence_checkAInspect
Station 3: Check lifecycle status for each part and suggest alternatives.
Uploads the BOM file to the API, which checks each component's lifecycle status (active, NRND, obsolete, EOL, unknown) and suggests drop-in alternatives for at-risk parts.
IMPORTANT: Review at-risk components and alternatives before design freeze.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM file (.csv or .json) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions uploading BOM and checking statuses but omits details on data modification, return format, or authentication. Insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with two sentences and a note. Includes contextual 'Station 3' which may be helpful. No wasted words, but could be more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described. However, the description lacks detail on what 'suggests alternatives' entails. For a combined check-and-suggest tool, it is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with basic description. The tool description adds context that the BOM is uploaded and each component is checked for lifecycle status, enhancing meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks lifecycle status and suggests alternatives, using specific verbs and resources. It distinguishes from siblings like check_bom_status by including alternative suggestions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Station 3' and includes a note about review before design freeze, providing context but not explicit when-to-use vs alternatives. No exclusions or sibling references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supply_chain_procurement_approveBInspect
Station 1: Group BOM by vendor, check MOQs, calculate price breaks, estimate lead times.
Uploads the BOM file to the API, which groups components by vendor, validates minimum order quantities, applies price-break discounts, and estimates lead times for each purchase order.
IMPORTANT: Review the purchase orders before placing with vendors.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM file (.csv or .json) | |
| quantity | Yes | Build quantity (number of units) | |
| target_date | Yes | Target delivery date (ISO 8601, e.g. 2026-04-15) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior. It mentions uploading BOM, grouping, MOQ checks, discounts, and lead time estimation. It warns to review before placing. However, it omits details on output effects (e.g., whether data is persisted) and error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description includes a summary bullet and an important note, but it is slightly verbose. It could be more concise without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema, the description covers the main actions (grouping, MOQ, price breaks, lead times) and includes a critical warning. Minor gaps remain about non-fulfillment scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, and the description adds context like 'uploads the BOM file'. However, it does not significantly enhance parameter meaning beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool groups BOM by vendor, checks MOQs, calculates price breaks, and estimates lead times. It distinguishes from siblings like supply_chain_avl_qualify and supply_chain_obsolescence_check. However, the name 'approve' is slightly misleading as the tool generates purchase orders for review, not final approval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description only advises reviewing purchase orders before placing. Prerequisites and exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_coverage_analysisAInspect
Station 1: Analyze test point coverage and probe accessibility.
Uploads test points CSV and PCB file. Server checks probe spacing (min 1.27mm), keep-out violations, and ICT fixture clearance.
IMPORTANT: Review blocked points before committing to fixture design.
| Name | Required | Description | Default |
|---|---|---|---|
| test_points_path | Yes | Path to test points CSV (columns: ref, net_name, x, y, side) | |
| pcb_path | Yes | Path to .kicad_pcb file |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description fully carries the burden of behavioral disclosure. It discloses the server-side checks (probe spacing, keep-out violations, clearance) and warns about reviewing blocked points, providing transparency beyond the schema. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: three sentences that front-load the purpose, detail the actions, and provide an important caution. Every sentence adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple checks), the presence of an output schema (to describe return values), and complete parameter documentation, the description covers all essential aspects: purpose, inputs, behavioral details, and a caution. It is fully informative for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters. The description merely reiterates that the tool uploads a test points CSV and PCB file, adding no additional semantics or constraints beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes test point coverage and probe accessibility. It specifies the verb 'analyze' and the resource 'test point coverage and probe accessibility', and details the specific checks (probe spacing, keep-out violations, fixture clearance). This distinguishes it from sibling tools like 'test_provision_devices' or 'test_reliability_predict'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning the required inputs (test points CSV, PCB file) and a warning to review blocked points before committing. However, it does not explicitly state when to use this tool versus alternatives or provide exclusion criteria. The context is clear but lacks explicit when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_provision_devicesAInspect
Station 2: Generate per-device provisioning packages.
Creates unique keys, certificates, and serial numbers for each device. Returns provisioning packages for flashing during production test.
IMPORTANT: Verify firmware URL and device list before provisioning.
| Name | Required | Description | Default |
|---|---|---|---|
| firmware_url | Yes | URL to firmware binary | |
| device_ids | Yes | List of device identifiers to provision | |
| cert_template | No | Certificate template ("production" or "development") | production |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description partially discloses behavior (creating packages) but omits side effects, permissions, or output details beyond basic return type.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three short sentences, clearly front-loading the purpose and adding a critical warning with no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format is covered, but the description lacks behavioral context (e.g., destructive potential, permissions) and could better integrate parameter usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal extra meaning. It reinforces firmware_url and device_ids importance but does not enhance cert_template meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Generate per-device provisioning packages' and details the creation of keys, certificates, and serial numbers, specifying the tool's unique function among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an important verification note but does not provide explicit guidance on when to use this tool versus alternatives 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.
test_reliability_predictAInspect
Station 3: Calculate MTBF using MIL-HDBK-217F simplified method.
Uploads BOM file and calculates per-component failure rates, total MTBF, and identifies weakest components.
IMPORTANT: Review weakest links and consider derating or alternatives.
| Name | Required | Description | Default |
|---|---|---|---|
| bom_path | Yes | Path to BOM file (.csv or .json) | |
| ambient_temp | No | Ambient operating temperature in Celsius (default 25) | |
| environment | No | Operating environment (ground_benign, ground_fixed, airborne, etc.) | ground_benign |
| duty_cycle | No | Operating duty cycle 0.0-1.0 (default 1.0) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, authentication needs, rate limits, or read-only nature. It only states the action without further context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with four short lines including an important note. It front-loads the main purpose and avoids unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (not shown), the description adequately covers the main outputs. It mentions MTBF, failure rates, and weakest components. No critical gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 'Uploads BOM file' corresponding to bom_path but adds no additional meaning for other parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates MTBF using MIL-HDBK-217F, takes a BOM file, and outputs per-component failure rates, total MTBF, and weakest components. It is specific and distinguishes itself from sibling tools like test_coverage_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reliability prediction with a BOM, but does not explicitly state when to use versus alternatives or when not to use. No comparison to other sibling tools is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_part_renderAInspect
Queue a Blender render job for an electronic component.
Every image is generated from parametric .blend templates — no supplier assets. Pass either sku or part_id. The system will match the part to the correct Blender template based on category, package, and MPN suffix.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Source Parts SKU (required if no part_id) | |
| part_id | No | Internal part ID (required if no sku) | |
| force | No | If false (default), skip if a render already exists | |
| template_override | No | Force a specific .blend template file |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that renders are generated from parametric templates without supplier assets and that matching uses category, package, and MPN suffix. However, it omits details like the queueing nature of the job, idempotency (implied by 'force' parameter), and potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of three sentences, each providing distinct and essential information: main action, generation process, and input requirement. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (not shown) and 4 parameters, the description is mostly complete. It explains the core workflow and input requirements. However, it does not mention the asynchronous nature of rendering or how to check the resulting job status, which a sibling tool ('check_render_status') covers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds value beyond the schema by explaining the matching logic (based on category, package, MPN suffix), which helps understand how template_override might be used. It does not add extra syntax details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'queue' and the resource 'Blender render job for an electronic component'. It distinguishes from siblings like 'render_schematic' by specifying that it deals with component renders from parametric templates, not schematics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool (to generate a render of a component) and mentions input conditions ('Pass either sku or part_id'). It does not explicitly state when not to use or mention 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.
upload_bomAInspect
Upload a BOM file for processing and part matching.
Reads the file from the local filesystem, uploads it to the API for processing. Use check_bom_status with the returned job_id to track progress and see which parts are unknown.
Supported formats: CSV, XLSX, XLS, JSON, XML.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the BOM file on the local filesystem |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It effectively communicates that it reads a file from the local filesystem, uploads it to the API for asynchronous processing, and returns a job_id for polling. It lists supported formats, but does not mention potential side effects, authentication, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, each serving a purpose: stating the action, explaining the process, referencing the follow-up tool, and listing formats. It is front-loaded and free of redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 adequately covers key aspects: what it does, how to invoke it, and what to do next. It lacks details on error handling or file size limits, but is satisfactory for a straightforward upload tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter with a description. The tool description adds value by clarifying that 'Reads the file from the local filesystem' and enumerating supported formats, enhancing understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's primary action: 'Upload a BOM file for processing and part matching.' It specifies the resource (BOM file) and purpose (processing and part matching), and distinguishes itself from siblings like check_bom_status by explicitly referencing it for tracking progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by directing the user to 'Use check_bom_status with the returned job_id to track progress.' This implies a sequential workflow. However, it does not explicitly contrast with alternative BOM-related tools like extract_bom_from_kicad, leaving some ambiguity about when to use this tool versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_gerbers_for_quoteAInspect
Upload a gerber zip file to get a fabrication quote.
Reads the gerber zip from disk and submits it for fabrication quotation. Use check_manufacturing_status with the returned job_id to track progress.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the gerber zip file | |
| quantity | No | Number of boards (default 5) | |
| layers | No | Number of PCB layers (default 2) | |
| thickness | No | Board thickness in mm (default 1.6) | |
| surface_finish | No | Surface finish (HASL, ENIG, OSP, etc.) | HASL |
| color | No | Solder mask color (green, red, blue, black, white, yellow) | green |
| priority | No | Priority level (low, normal, high) | normal |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It indicates a write operation that reads from disk, but it does not disclose authentication requirements, file size limits, or what happens to the file after upload. It mentions returning a job_id implicitly but misses behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. It front-loads the purpose and adds a clear follow-up instruction. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers basic purpose and follow-up, it lacks details on prerequisites (e.g., file accessibility, format validation), potential errors, and output structure beyond job_id. For a tool with 7 parameters, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not add any parameter-specific context beyond what the schema already provides, such as allowed values for 'surface_finish' or 'color'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('upload a gerber zip file'), the purpose ('get a fabrication quote'), and the process ('reads from disk and submits'). It distinguishes from siblings like 'upload_bom' and hints at the follow-up tool 'check_manufacturing_status'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when you have a gerber zip file and want a quote), but it does not explicitly state when not to use this tool or mention alternatives like 'quote_fabrication'. It provides some guidance via the follow-up action but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user_profileAInspect
Get the current user's profile, role, and preferences.
Returns the authenticated user's profile including their role level (public, admin, owner), global preferences, and per-device overrides.
Returns: User profile with role, preferences, and device list
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool returns data for the 'authenticated user', implying authentication required and read-only behavior. It lists return fields, which adds transparency. However, it does not explicitly declare no side effects or discuss rate limits, but for a simple getter, the information is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a 'Returns:' line, no wasted words. The first sentence front-loads the main purpose, and the rest adds specifics. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with an output schema, the description is complete. It covers the key return components (role, preferences, device list, per-device overrides). There are no edge cases or missing details needed for a profile retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so baseline is 4. The description does not need to add parameter semantics, and it does not mislead. It is consistent with the empty input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose with specific verb 'Get' and resource 'user profile', and lists the contained fields (role, preferences, per-device overrides). It distinguishes itself from siblings like `get_preferences` (which likely only returns preferences) and `admin_list_users` (which lists other users).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It implies usage for retrieving the current user's profile but lacks exclusionary guidance or mention of related tools like `set_preferences` or `admin_set_user_role`. The purpose is clear enough to infer usage, but no direct comparison is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Many tools have overlapping purposes (e.g., check_dfm_status and dfm_check_status, submit_dfm and dfm_submit, multiple 'check_status' tools). The large number of domain-specific stations (assembly, quality, test) with similar verb structures further increases ambiguity for an agent.
Tool names are all snake_case, but the pattern varies: some start with a verb (add_, check_, convert_), others with a domain prefix (assembly_, quality_, supply_chain_). Even within groups, verb position is inconsistent (e.g., assembly_readiness_check vs assembly_feeder_setup). Overall moderately consistent but not uniform.
111 tools is prohibitively large for a single MCP server. While the scope is broad, this number far exceeds typical tool counts (3-15) and will overwhelm agents, leading to poor selection performance. The server would benefit from being split into multiple domain-specific servers.
The tool surface covers an impressively wide range of electronics manufacturing workflows: design conversion, BOM, assembly, quality, supply chain, sales, logistics, test, etc. However, some areas lack full depth (e.g., no full schematic editor, limited routing support), so completeness is high but not perfect.
Maintenance
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
Search real parts with datasheet-provenance specs, check compatibility and compose priced BOMs.
Electronic component datasheets for AI agents — specs, pinouts, package data on demand.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Verified KiCad footprints, symbols & 3D models for AI agents. No signup, CC-BY-4.0, quality-gated.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides Claude with access to the tscircuit electronics component registry, enabling search, browsing, and analysis of electronic components and circuit packages from the tscircuit ecosystem.3MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables searching for electronic components through the Nexar Supply API, providing detailed part information including manufacturer, pricing, specifications, and datasheets.
- FlicenseNot gradedqualityCmaintenanceEnables searching for electronic components, comparing prices across distributors, checking availability, and retrieving datasheets through the Nexar/Octopart API with specialized tools for resistors, capacitors, inductors, semiconductors, crystals, and connectors.8
- AlicenseAqualityAmaintenanceEnables searching and filtering over 1.5 million electronic components across JLCPCB, Mouser, and DigiKey using parametric queries and smart parsing. It supports finding alternative parts, accessing pinout data, and downloading KiCad footprints directly through AI coding assistants.11105MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/SourceParts/parts-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server