SyncroMSP MCP Server
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., "@SyncroMSP MCP Servershow open tickets assigned to me"
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.
SyncroMSP MCP Server
A fully-featured Model Context Protocol server for the SyncroMSP IT/MSP platform. Gives AI assistants full access to tickets, customers, assets, invoices, and 30+ resource types.
Features
180+ API endpoints across 16 domains
Full CRUD for tickets, customers, invoices, estimates, appointments, contracts, products, and more
Ticket comments — email replies, public notes, and private/internal notes
Line items — add products from catalog or manual entries to tickets, invoices, estimates, schedules
RMM alerts — create, read, mute, resolve alerts on assets
Rate limiting — built-in 180 req/min token bucket (Syncro API limit)
Confirmation required for all destructive operations (DELETE, etc.)
Auto-update check — warns on startup if a newer version is available
Deployment Options
Method | Best For | Auto-Updates |
One-command install of MCP + Skill in Claude Code | Yes (marketplace) | |
Developers wiring up the MCP without the bundled skill | Yes (npx) | |
Local desktop app users | Yes (npx) | |
Teams, remote access, Claude.ai web | Yes (Watchtower) | |
Development and customization | Manual |
Bundled Skill
This repo also ships a Claude Skill that gives Claude operating context for the MCP — workflows, API quirks (e.g. line_items ignored on *_create), the two-step labor logging pattern, ticket status transitions, ticket comment subject conventions, and a hyperlink rule that renders every Syncro record as a clickable link. It's company-agnostic; user-specific values are discovered at runtime via API calls and cached locally.
Recommended — Claude Code plugin (auto-updating, bundles skill + MCP, prompts for credentials on install):
/plugin marketplace add advenimus/syncromsp-mcp
/plugin install syncromsp@syncromspOn enable, Claude Code prompts for your Syncro subdomain and API key. The subdomain is stored in settings.json; the API key goes to your system keychain. Both are passed to the bundled MCP server as SYNCRO_SUBDOMAIN and SYNCRO_API_KEY automatically — no shell exports or manual claude mcp add needed.
New commits to main propagate to installed users on the next marketplace refresh — no manual re-install needed.
Claude Desktop / claude.ai (no public plugin marketplace yet): download syncromsp-skill.zip from Releases and upload via Settings → Capabilities → Skills (paid plan, preview feature). It syncs across that account automatically. For Team/Enterprise plans, an org admin can upload via Organization settings and every member gets auto-updates when the admin re-uploads a revised zip. Full instructions in plugins/syncromsp/skills/syncromsp/README.md.
The release zip is always published at:
https://github.com/advenimus/syncromsp-mcp/releases/latest/download/syncromsp-skill.zipRelated MCP server: Autotask MCP Server
Prerequisites
Getting Your Syncro API Key
Log in to your Syncro account
Go to Admin > API Tokens
Click + New Token
Select the Custom Permissions tab
Name your token and set permissions for the resources you need
Click Create and copy the token (it cannot be retrieved later)
Your subdomain is the part before .syncromsp.com in your Syncro URL (e.g., mycompany from mycompany.syncromsp.com).
Claude Code
claude mcp add syncromsp \
--env SYNCRO_API_KEY=your-api-key \
--env SYNCRO_SUBDOMAIN=your-subdomain \
-- npx syncromsp-mcpThat's it. Claude Code will download and run the latest version automatically.
Claude Desktop
Option 1: MCPB Extension
Download the latest .mcpb file from Releases and double-click to install. Claude Desktop will prompt you for your API key and subdomain.
Option 2: Manual Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"syncromsp": {
"command": "npx",
"args": ["-y", "syncromsp-mcp"],
"env": {
"SYNCRO_API_KEY": "your-api-key",
"SYNCRO_SUBDOMAIN": "your-subdomain"
}
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Restart Claude Desktop after saving. The server updates automatically via npx on each restart.
Docker Deployment (Remote MCP)
Deploy as a Docker container for remote access from Claude.ai, shared team usage, or running on a server. Includes built-in OAuth 2.1 authentication so only authorized users can connect.
Step 1: Clone and Configure
git clone https://github.com/advenimus/syncromsp-mcp.git
cd syncromsp-mcp
cp .env.example .envEdit .env with your settings:
# Required: Syncro credentials
SYNCRO_API_KEY=your-api-key
SYNCRO_SUBDOMAIN=your-subdomain
# Required: The public URL where this server will be reachable
# Must be HTTPS for production (put behind Traefik, Caddy, nginx, etc.)
MCP_BASE_URL=https://mcp.yourcompany.com
# Required: Access key that users must enter to authorize connections.
# Minimum 32 characters; the server refuses to start on weak/default values.
# Generate with: openssl rand -hex 32
MCP_AUTH_SECRET=Step 2: Deploy
docker compose up -dThe container runs on port 8080 by default. You need a reverse proxy (Traefik, Caddy, nginx) in front to provide HTTPS.
Step 3: Connect from Claude.ai
In Claude.ai, go to Settings > MCP Servers > Add Remote Server
Enter your MCP URL:
https://mcp.yourcompany.com/mcpClaude.ai will auto-discover the OAuth endpoints
A login page appears — enter the
MCP_AUTH_SECRETyou configured in Step 1Once authenticated, Claude.ai connects and all 170 tools become available
How Authentication Works
The server implements the MCP OAuth 2.1 + PKCE spec with an access key gate:
Client connects → 401 Unauthorized
→ Client discovers /.well-known/oauth-authorization-server
→ Client dynamically registers (RFC 7591)
→ Client redirects user to /authorize
→ User sees login page, enters MCP_AUTH_SECRET
→ Correct key: auth code issued → token granted → MCP access
→ Wrong key: 403 Access Denied, connection rejectedTokens are validated on every MCP request via bearer auth
Access tokens expire after 24 hours; refresh tokens rotate on every use and last 30 days
Access tokens and refresh tokens carry a type discriminator — a refresh token cannot be used as a bearer, and an access token cannot be exchanged at the token endpoint
Timing-safe secret comparison prevents side-channel attacks
Server refuses to start if
MCP_AUTH_SECRETis missing, shorter than 32 characters, or matches a known weak default (change-me,password,secret, etc.)Consent page displays the registered
redirect_uriso users can verify the destination before authorizing (anti-phishing)
For the full threat model, defense layers, and operator responsibilities, see SECURITY.md.
Example: Docker with Traefik
services:
syncro-mcp:
image: ghcr.io/advenimus/syncromsp-mcp:latest
container_name: syncromsp-mcp
restart: unless-stopped
environment:
- SYNCRO_API_KEY=${SYNCRO_API_KEY}
- SYNCRO_SUBDOMAIN=${SYNCRO_SUBDOMAIN}
- MCP_TRANSPORT=http
- MCP_PORT=8080
- MCP_BASE_URL=https://mcp.yourcompany.com
- MCP_AUTH_SECRET=${MCP_AUTH_SECRET}
# Container hardening — recommended for any public-facing deployment
read_only: true
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
tmpfs:
- /tmp:size=10m,mode=1777
labels:
- "traefik.enable=true"
- "traefik.http.routers.mcp.rule=Host(`mcp.yourcompany.com`)"
- "traefik.http.routers.mcp.entrypoints=websecure"
- "traefik.http.routers.mcp.tls.certresolver=letsencrypt"
- "traefik.http.services.mcp.loadbalancer.server.port=8080"Example: Docker with Caddy
services:
syncro-mcp:
image: ghcr.io/advenimus/syncromsp-mcp:latest
container_name: syncromsp-mcp
restart: unless-stopped
environment:
- SYNCRO_API_KEY=${SYNCRO_API_KEY}
- SYNCRO_SUBDOMAIN=${SYNCRO_SUBDOMAIN}
- MCP_TRANSPORT=http
- MCP_BASE_URL=https://mcp.yourcompany.com
- MCP_AUTH_SECRET=${MCP_AUTH_SECRET}
expose:
- "8080"
# Container hardening — recommended for any public-facing deployment
read_only: true
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
tmpfs:
- /tmp:size=10m,mode=1777
caddy:
image: caddy:2
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
volumes:
caddy_data:Caddyfile:
mcp.yourcompany.com {
reverse_proxy syncro-mcp:8080
}Disabling Auth (Not Recommended)
For testing on private networks only. The server refuses to start with MCP_AUTH=false unless you also set MCP_I_UNDERSTAND_INSECURE=true as an explicit foot-gun guard:
MCP_AUTH=false MCP_I_UNDERSTAND_INSECURE=true docker compose up -dWarning: Without auth, anyone who can reach the URL gets full access to your Syncro account. Never disable auth on a publicly-reachable deployment, even briefly.
Environment Variables
Variable | Required | Default | Description |
| Yes | — | Your Syncro API token |
| Yes | — | Your Syncro subdomain |
| No |
|
|
| No |
| HTTP listen port |
| For Docker | — | Public HTTPS URL (e.g., |
| No |
|
|
| For Docker | — | Access key users enter to authorize. Minimum 32 chars; weak/default values rejected at startup. |
| If | — | Must be |
| No |
|
|
Available Domains
Domain | Description | Key Operations |
tickets | Service tickets | CRUD, comments (email/public/private), cross-ticket comment feed, line items, timers, attachments, blueprints |
customers | Customer records | CRUD, phone numbers, autocomplete |
assets | Customer assets | CRUD, patches, installed applications, policy folder assignment, properties (OS, RAM, HDD, etc.) |
contacts | Customer contacts | CRUD |
invoices | Invoices | CRUD, line items (manual + product catalog), print, email |
estimates | Estimates/quotes | CRUD, line items, print, email, convert to invoice |
appointments | Calendar appointments | CRUD, appointment types, ticket linking |
products | Inventory/products | CRUD, serials, SKUs, categories, images |
payments | Payment records | Create, read, multi-invoice distribution |
leads | Leads/opportunities | Create, read, update |
contracts | Service contracts | CRUD |
rmm | RMM alerts | Create, read, mute, resolve |
scheduling | Recurring invoices | CRUD, schedule line items |
time | Timers and time logs | List, update |
admin | Search, users, vendors, wiki, portal, settings, purchase orders, and more | Various |
policies | Policy folders (Syncro accounts only) | List, get, create, update, delete folders; assign assets via |
Staying Up to Date
The server checks for updates on startup and logs a warning if a newer version is available.
Method | How to Update |
npx / Claude Desktop | Automatic — npx pulls latest on each run |
Docker |
|
Docker (auto) | Add Watchtower for automatic daily updates |
MCPB | Download latest |
From Source |
|
Auto-Update with Watchtower
Recommended: run Watchtower in label-enable mode so it only auto-updates the containers that opt in. This is much safer than letting it auto-update every container on the host.
Watchtower stack (/root/docker/watchtower/docker-compose.yml):
services:
watchtower:
image: containrrr/watchtower:1.7.1
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_LABEL_ENABLE=true # only watch opted-in containers
- WATCHTOWER_POLL_INTERVAL=300 # check every 5 minutes
- WATCHTOWER_CLEANUP=true
# On hosts running modern Docker (29.x with MinAPI 1.40), Watchtower's
# bundled SDK can default to an older API version. Pin to 1.40 to avoid
# `client version 1.25 is too old` errors at runtime.
- DOCKER_API_VERSION=1.40Then opt the syncromsp-mcp service in via a label in its compose:
labels:
- "com.centurylinklabs.watchtower.enable=true"Bring both up: docker compose up -d in each directory. New releases on :latest will be pulled and the container recreated within 5 minutes of publish.
Important Notes
Destructive operations (DELETE, remove line item, etc.) require explicit confirmation
Line items cannot be added inline during resource creation — always add them via separate API calls after creating the parent resource
Ticket comments have 3 modes: email reply (
do_not_email: false), public note (do_not_email: true, hidden: false), and private note (hidden: true)Some resources have no DELETE endpoint (vendors, leads, products, assets) — use
disabled: truevia update insteadRate limit: 180 requests per minute per IP (enforced by Syncro, managed by built-in rate limiter)
From Source
git clone https://github.com/advenimus/syncromsp-mcp.git
cd syncromsp-mcp
npm install
npm run build
export SYNCRO_API_KEY=your-api-key
export SYNCRO_SUBDOMAIN=your-subdomain
npm startDevelopment
npm run dev # Run with tsx (hot reload)
npm run build # Compile TypeScript
npm test # Run tests
npm run lint # Lint sourceLicense
MIT
Available Tools
179 toolsadmin_add_po_line_itemA
Add a line item to a purchase order. Note: the product must have maintain_stock=true or the API returns 422.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | PO ID | |
| product_id | Yes | Product ID | |
| quantity | Yes | Quantity |
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 an error condition (422 if maintain_stock is false), but lacks details on other behaviors like permissions, side effects, or response formats. 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?
Two concise sentences with zero wasted words. The first states the purpose, the second adds a crucial condition. Perfectly 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?
For a simple mutation with 3 scalar parameters and no output schema, the description covers the essential action and a key constraint. Missing details like response structure or additional error handling, but sufficient for an agent to understand basic 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 parameters are already documented. The description adds a precondition but doesn't elaborate on parameter meaning 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 verb ('Add') and resource ('line item to a purchase order'), and the note distinguishes it from sibling tools like admin_create_purchase_order or admin_receive_purchase_order.
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 critical precondition (maintain_stock=true) for successful use, guiding the agent when the tool is applicable. It doesn't explicitly mention when not to use it or suggest alternatives, but the sibling context implies differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_caller_idB
Look up caller information by phone number
| Name | Required | Description | Default |
|---|---|---|---|
| phone_number | Yes | Phone number to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states 'look up', implying a read operation, but fails to mention any potential side effects, required authentication (admin role likely needed), behavior for missing numbers, or data sources queried.
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 of six words, containing exactly the essential information without any fluff. It is appropriately front-loaded and every word serves a purpose for a simple lookup tool.
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 one parameter and no output schema, the description provides the core function. However, it omits details about the return value (what constitutes 'caller information'), error handling, and any constraints. While minimal, it is functional but not fully complete for an agent to anticipate results.
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 (phone_number) with the description 'Phone number to look up', while the tool description adds 'by phone number' which is redundant. Since schema coverage is 100%, the description adds minimal value beyond the schema, resulting in 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 uses a specific verb-resource pair 'Look up caller information by phone number', clearly indicating the action and resource. It distinguishes itself from sibling tools like admin_get_user or contacts_get, which target different entities. However, 'caller information' is somewhat vague and could be more specific.
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 such as admin_get_user, contacts_get, or customers_get. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_create_canned_responseB
Create a canned response
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title (required) | |
| body | No | Response body | |
| subject | No | Email subject | |
| canned_response_category_id | No | Category ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the creation action. It does not mention what the tool returns (e.g., the created object), authentication requirements, or side effects. For a creation tool, more transparency is needed.
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 that efficiently states the purpose. It is concise and front-loaded, though it could benefit from additional context. However, it earns its place by being 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?
Given the lack of annotations and output schema, the description is insufficiently complete. It does not clarify the result of the operation, required permissions, or any constraints. A more comprehensive description would improve usability.
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 covers all 4 parameters with descriptions, achieving 100% schema description coverage. The tool description adds no additional meaning beyond the schema, so the 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 'Create a canned response' clearly states the action (create) and the resource (canned response). It distinguishes from sibling tools like admin_update_canned_response, admin_delete_canned_response, and admin_list_canned_responses by using a different verb.
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. It does not mention any prerequisites, context, or exclusions. With many sibling tools for different actions on the same resource, 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.
admin_create_portal_invitationC
Send a portal invitation to a user
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Portal user ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides minimal behavioral details. It does not disclose side effects (e.g., email sending), idempotency, or return value.
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, six words) and front-loaded. However, it may be too brief, lacking important context.
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, the description is adequate but leaves gaps: it doesn't explain prerequisites (e.g., user must exist) or what the invitation entails.
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 parameter ('Portal user ID') with 100% coverage. The description adds no additional meaning 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 clearly states the action ('send a portal invitation to a user'), which matches the tool name. However, it does not differentiate from sibling tools like admin_create_portal_user.
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., admin_create_portal_user). No prerequisites or context are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_create_portal_userA
Create a customer portal user. Always provide contact_id to associate a person/name -- without it the portal user shows as an anonymous email.
| Name | Required | Description | Default |
|---|---|---|---|
| contact_id | No | Contact ID (strongly recommended -- associates a name with the portal user) | |
| customer_id | No | Customer ID | |
| Yes | Email (required) | ||
| password | No | Password | |
| password_confirmation | No | Password confirmation | |
| portal_group_id | No | Portal group ID |
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 the anonymous email behavior when contact_id is missing, but omits other important details such as required permissions, duplicate handling, or what the tool returns.
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. The first states the purpose, the second provides critical guidance. No extraneous 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 no output schema, the description should mention what the tool returns (e.g., the created user object or ID). It also lacks context about prerequisites, constraints, or error scenarios, making it incomplete 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?
The input schema fully describes all 6 parameters, and the description adds value by explaining the effect of providing contact_id (associates a name) and the consequence of omitting it (anonymous email). This helps 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 'Create a customer portal user', which is specific and uses a verb+resource structure. However, it does not explicitly distinguish from the sibling tool 'admin_create_portal_invitation' which might create invitations rather than 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 provides a strong recommendation to always include contact_id, explaining the consequence of omitting it. But it lacks guidance on when to choose this tool over the similar sibling 'admin_create_portal_invitation' or 'admin_update_portal_user'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_create_purchase_orderC
Create a purchase order
| Name | Required | Description | Default |
|---|---|---|---|
| vendor_id | Yes | Vendor ID (required) | |
| user_id | No | User ID | |
| location_id | No | Location ID | |
| expected_date | No | Expected delivery date | |
| due_date | No | Due date | |
| order_date | No | Order date | |
| paid_date | No | Paid date | |
| general_notes | No | Notes | |
| shipping_notes | No | Shipping notes | |
| shipping_cents | No | Shipping cost in cents | |
| other_cents | No | Other costs in cents | |
| discount_percent | No | Discount % | |
| delivery_tracking | No | Tracking number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the obvious. It does not disclose side effects, validation, or success/failure 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 one-sentence description is appropriately concise, but it adds minimal value. It is not verbose, but also not highly informative.
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 no output schema, the description lacks completeness. It does not explain return values, error handling, or typical usage patterns.
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 no extra meaning beyond the schema, hence adequate but not improved.
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 'Create a purchase order' clearly identifies the action (create) and resource (purchase order). It is specific but does not differentiate from sibling tools beyond the name.
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. No context on prerequisites, constraints, or typical scenarios is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_create_user_deviceB
Register a user device for push notifications
| Name | Required | Description | Default |
|---|---|---|---|
| device_uuid | No | Device UUID | |
| device_name | No | Device name | |
| registration_token_gcm | No | GCM registration token | |
| system_name | No | OS name | |
| model | No | Device model | |
| screen_size | No | Screen size |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only states 'register', implying creation, but provides no detail on idempotency, error handling, permissions, or side effects such as whether existing devices get overwritten.
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 without wasted words. However, it is very brief and could include more context without sacrificing conciseness, so it does not achieve a perfect 5.
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 6 parameters, no output schema, and no annotations, the description is too sparse. It lacks information about return values, error conditions, and behavioral details, leaving significant gaps for an 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?
All 6 parameters have descriptions in the schema (100% coverage), so the description adds no additional meaning. Baseline 3 is appropriate as the schema already documents 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 action ('Register') and the resource ('a user device') along with the purpose ('for push notifications'). This specificity distinguishes it from sibling tools like 'admin_get_user_device' and 'admin_update_user_device'.
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 offers no guidance on when to use this tool versus alternatives like 'admin_update_user_device' or 'admin_get_user_device'. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_create_vendorC
Create a new vendor. Note: there is no delete endpoint for vendors.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Vendor name (required) | |
| rep_first_name | No | ||
| rep_last_name | No | ||
| No | |||
| phone | No | ||
| account_number | No | ||
| address | No | ||
| city | No | ||
| state | No | ||
| zip | No | ||
| website | No | ||
| notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It mentions the absence of a delete endpoint but lacks other behavioral traits such as required permissions, idempotency, side effects (e.g., notifications), or error states for duplicate names.
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 with two sentences. The first sentence states the purpose, the second adds a behavioral note. No fluff, but could be slightly 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?
For a tool with 12 parameters and no output schema, the description is incomplete. It does not explain return values, parameter details, or usage context beyond creation.
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 low (8%, only 'name' described). The description adds no additional parameter information beyond what is in the schema, leaving 11 parameters undocumented.
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 vendor' with a specific verb and resource, distinguishing it from sibling tools like admin_list_vendors, admin_get_vendor, and admin_update_vendor.
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 note about no delete endpoint is a caution but not usage direction. Missing context like prerequisites or post-creation steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_create_wikiC
Create a wiki page
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Page name (required) | |
| body | No | Page content (HTML/Markdown) | |
| slug | No | URL slug | |
| customer_id | No | Associate with customer | |
| asset_id | No | Associate with asset | |
| visibility | No | Visibility level |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose any behavioral traits such as permissions required, side effects, or whether it returns the created resource. For a mutation tool, this is a significant 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?
Single short sentence, no fluff. Appropriate length for a simple creation tool, though could benefit from slight expansion.
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 full schema coverage, the description omits return value, error conditions, and usage context. With 6 parameters and no output schema, more information is needed for complete understanding.
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 clear descriptions for each parameter. The description adds no additional meaning beyond the schema, but baseline is 3 given full schema 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 'Create a wiki page' clearly states the action and resource. It uses a specific verb and resource, but does not differentiate from sibling tools like admin_update_wiki, though the distinct verb 'create' is sufficient.
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., admin_update_wiki, admin_delete_wiki). Lacks context such as prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_create_worksheetB
Create a worksheet result for a ticket. Note: worksheet_template_id is required and must reference an existing admin-configured template.
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | Ticket ID | |
| worksheet_template_id | No | Worksheet template ID (required -- must reference an existing template) | |
| title | No | Title |
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 only states the action and a constraint, lacking details on side effects, permissions, or return behavior. It also contradicts the input schema by claiming worksheet_template_id is required when it is not listed in the required array.
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, no unnecessary words, and the critical note is front-loaded. Every sentence serves a 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?
The description does not explain what a worksheet result is, what the tool returns upon success, or provide any additional context about the creation process. Given no output schema, more detail is needed for complete understanding.
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 with descriptions. The description adds a note emphasizing that worksheet_template_id must reference an existing template, but contradicts the schema by stating it is required when it is not in the required list, reducing clarity.
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 'Create' and the resource 'worksheet result for a ticket', making the tool's purpose specific and distinct from sibling tools like admin_update_worksheet or admin_delete_worksheet.
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 that worksheet_template_id is required and must reference an existing template, which gives a constraint but does not provide guidance on when to use this tool vs others like admin_create_canned_response or admin_update_worksheet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_delete_canned_responseA
DELETE a canned response. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Canned response ID | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must cover behavioral traits fully. It only discloses the confirmation requirement and the destructive nature, lacking details about error handling 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 short sentences, front-loaded with the action, and 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?
For a simple delete operation with two parameters and no output schema, the description is adequate but could mention the return state or permanence of deletion.
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%, providing descriptions for both parameters. The description reinforces the confirmed parameter 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 the action (DELETE) and resource (canned response), distinguishing it from sibling tools like admin_create_canned_response or admin_update_canned_response.
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 the confirmation requirement but does not provide guidance on when to use this tool vs alternatives or any prerequisites beyond having the ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_delete_portal_userB
DELETE a portal user. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Portal user ID | |
| confirmed | Yes | Must be true |
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 states 'DELETE' (destructive) and 'MUST confirm' (safety). However, it does not cover permanence, authorization needs, error states, or side effects on related data.
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 short (two sentences) and front-loaded with the action. It is concise but could be slightly more informative without sacrificing brevity.
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 output schema and no annotations, the description should provide more behavioral and contextual details. It lacks information on what happens if the user doesn't exist, idempotency, permissions needed, or impact on related data. Incomplete for a deletion 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 documents both parameters. The description restates the confirmation requirement ('user MUST confirm'), but adds no new meaning beyond the schema's description for 'confirmed' ('Must be true'). Baseline 3 with no 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 states the verb 'DELETE' and the resource 'portal user'. It distinguishes itself from siblings like admin_create_portal_user and admin_update_portal_user by specifying the action and the confirmation requirement.
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., admin_update_portal_user) or prerequisites. It only mentions the action and a requirement, lacking explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_delete_wikiA
DELETE a wiki page. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Wiki page ID | |
| confirmed | Yes | Must be true |
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 destructive nature and the confirmation requirement, but lacks details about irreversibility, cascading effects (e.g., on attachments), or authorization needs. The confirmation is a behavioral trait, but more context would improve transparency for a deletion 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 extremely concise with two short sentences, each conveying essential information. Every word serves a purpose, and the structure is clear and 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?
For a simple delete operation with full schema coverage and no output schema, the description is adequately complete. It names the action, resource, and a key usage constraint. However, a note about irreversibility or permissions would make it more robust, but not strictly necessary for a basic 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%, so baseline is 3. The description adds 'MUST confirm' which is redundant with the schema description of the 'confirmed' parameter ('Must be true'). No additional semantic value beyond the 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 action ('DELETE') and the resource ('a wiki page'), providing a specific verb-resource pair. It distinguishes from sibling delete tools by naming the resource, and the sibling tool list includes other delete operations for different resources, so there is no ambiguity.
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 requirement ('The user MUST confirm'), which guides usage, but it does not specify when to use this tool versus alternatives (e.g., archiving or updating). No context about prerequisites or conditions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_delete_worksheetB
DELETE a worksheet result. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | Ticket ID | |
| id | Yes | Worksheet result ID | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of disclosing behavioral traits. It indicates that the operation is a DELETE (mutation) and requires confirmation, but it does not disclose whether the operation is irreversible, error conditions, or what happens to related data.
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 two short sentences, front-loading the action ('DELETE'). Every word is necessary and there is no redundancy. It is exceptionally 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?
For a simple destructive tool with 3 parameters and no output schema, the description is adequate but not complete. It covers the basic action and the confirmation requirement, but lacks information on idempotency, error handling, or post-deletion 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%, so the baseline is 3. The description adds emphasis on the 'confirmed' parameter ('The user MUST confirm') but does not add meaning to 'ticket_id' or 'id' beyond their schema descriptions. It does not exceed the schema's 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 'DELETE a worksheet result', specifying the verb (DELETE) and the resource (worksheet result). This distinguishes it from sibling tools that delete other resources like canned responses or portal 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 only provides minimal guidance by stating that user confirmation is required ('The user MUST confirm'). It does not mention when to use this tool versus alternatives, nor does it cover prerequisites or potential side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_get_canned_settingsC
Get canned response settings
| Name | Required | Description | Default |
|---|---|---|---|
No 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. While 'Get' implies read-only, it does not explicitly confirm non-destructive behavior, idempotency, or any side effects. For a parameterless tool, this is minimal.
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 phrase with no wasted words. It is appropriately sized for a simple get operation with no parameters.
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 is too minimal. It does not specify what 'canned response settings' includes (e.g., default response, permissions), and there is no output schema to clarify the return structure. Given the absence of annotations, more context is needed for an agent to correctly interpret the tool's output.
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 no parameters, and schema coverage is 100%. The description adds no additional meaning beyond the schema. Baseline score of 3 applies per guidelines.
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 'Get canned response settings' clearly indicates a read operation on a specific resource. It distinguishes from siblings like 'admin_list_canned_responses' (list vs get) and 'admin_get_settings' (general settings), though 'canned response settings' could be more precisely defined as global settings for the canned responses feature.
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. For example, it does not clarify when to use 'admin_get_settings' vs 'admin_get_canned_settings', or whether to use 'admin_list_canned_responses' first. No exclusions or preconditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_get_meA
Get the currently authenticated user's profile
| Name | Required | Description | Default |
|---|---|---|---|
No 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. It indicates a read operation ('Get'), but does not disclose authentication requirements, potential errors (e.g., unauthenticated user), or return format. Minimal but adequate for a simple read.
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 unnecessary words. Every part is essential.
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 no input parameters and no output schema. The description does not explain what fields are included in the profile, which could be useful. However, for a 'get profile' tool, it is moderately 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?
There are no parameters, and schema description coverage is 100%. The description adds no additional parameter meaning beyond the schema, which is acceptable given zero parameters. Baseline of 4 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') and the resource ('the currently authenticated user's profile'). It is specific and distinguishes from sibling tools like admin_get_user (for other users) and admin_list_users (list of 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 implies usage for retrieving one's own profile, but it does not explicitly state when to use this tool over alternatives like admin_get_user. No exclusion criteria or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_get_printingB
Get printing settings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided to convey read-only or destructive nature, and the description does not disclose any behavioral traits, such as whether it returns current configuration or requires specific permissions.
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 a single phrase. It is front-loaded and efficient, but could be slightly more informative without losing brevity.
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 no parameters or output schema, the description does not elaborate on return values, side effects, or prerequisites. An agent may need additional context to use it effectively.
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 schema coverage is 100%. The description adds no parameter information, which is acceptable given the absence of parameters; baseline score of 4 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 'Get printing settings' clearly identifies the verb and resource, distinguishing it from sibling tools like admin_get_settings (general) and admin_get_canned_settings. However, it does not elaborate on what printing settings encompass.
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 admin_get_settings for general settings. The description lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_get_purchase_orderB
Get a purchase order by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | PO ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details beyond the basic retrieve action. No annotations exist to compensate, so the agent is unaware of permissions, data scope (e.g., active vs. all), or if the operation 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 a single, efficient sentence with no extraneous words, conveying the essential purpose clearly.
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?
Without an output schema, the description should indicate what is returned (e.g., full purchase order object). It does not, leaving the agent uninformed about the response structure.
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 parameter is fully described in the schema ('PO ID'), and the description merely restates it without adding further meaning. Baseline 3 applies due to high schema 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 tool retrieves a purchase order by ID, using a specific verb and resource, distinguishing it from sibling tools that create, list, or modify purchase orders.
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 first using admin_list_purchase_orders to obtain the ID, 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.
admin_get_settingsB
Get system settings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It describes a safe read-only operation without side effects. However, it doesn't mention any behavioral traits like whether it returns a summary or full 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 highly concise with a single sentence, containing no unnecessary 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 simplicity (no params, no output schema), the description is adequate but could be improved by specifying the scope of 'system settings' to avoid confusion with similar tools.
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, and schema coverage is 100%. The description adds no parameter details but doesn't need to.
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 the resource 'system settings', but does not differentiate from sibling tools like admin_get_canned_settings or admin_get_tabs. It lacks specificity about which system settings are 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?
No guidance on when to use this tool versus other admin_get_* tools. The description is too generic to help an agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_get_tabsA
Get settings tabs configuration
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It correctly suggests a read operation, but does not explicitly state read-only semantics, auth requirements, or lack of side effects. 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?
A single sentence without any extraneous words. Information is front-loaded and every word serves a 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?
While the tool is simple with no parameters, the description lacks explanation of the output structure, which is important since there is no output schema. It minimally satisfies the agent's need for basic understanding.
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 tool has zero parameters and 100% schema description coverage. The baseline is 4, and the description adds no extra parameter details, which is acceptable since none are needed.
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 'Get settings tabs configuration' is a specific verb+resource pair. It clearly indicates the action (get) and the resource (settings tabs configuration), which helps distinguish it from sibling tools like admin_get_settings or admin_get_ticket_form.
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 or when not to use this tool. It does not mention alternatives or prerequisites, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_get_ticket_formC
Get a ticket form by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Form ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks any behavioral details (e.g., what happens if ID is invalid, required permissions, rate limits). The description merely states the action without 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 concise sentence with no filler. Every word contributes to purpose 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?
Given the lack of output schema and no annotations, the description should include at least basic behavioral or return information. It is incomplete for a get-by-ID tool, leaving the agent guessing about error handling or response 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?
The single parameter 'id' is described in the schema as 'Form ID'. The description adds no additional semantic value beyond what the schema provides. With 100% schema coverage, 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 'Get a ticket form by ID' clearly specifies the verb (Get) and resource (ticket form), and includes the parameter (ID) that differentiates from sibling admin_list_ticket_forms. However, it does not explicitly state the distinction from list 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?
No guidance is provided on when to use this tool versus alternatives like admin_list_ticket_forms or admin_process_ticket_form. The agent is given no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_get_userC
Get a user by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID |
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 beyond implying a read operation. It omits details about permissions, error handling, or side effects, leaving the agent to assume it is a simple fetch.
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 one short sentence. While it is front-loaded, it could include a hint about uniqueness or scope without becoming verbose. It is adequate but minimal.
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 output schema and a simple operation, the description omits what the response contains (likely a user object). For completeness, it should note that the tool returns full user details or reference an 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 coverage is 100% with one parameter 'id' described as 'User ID'. The description adds no further meaning, but the schema is sufficient. 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 ('Get') and resource ('a user by ID'), making the tool's purpose obvious. It differentiates from sibling tools like 'admin_list_users' (list all) and 'admin_get_me' (get current user), though it could explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'admin_list_users' for users or 'admin_get_me' for the current user. The description lacks context for selection and prerequisites (e.g., user existence).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_get_user_deviceB
Get a user device by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Device ID |
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 of behavioral disclosure. It only states 'Get a user device by ID' without indicating any behavioral traits such as read-only nature, return format, pagination, error conditions, 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?
The description is a single, front-loaded sentence with zero wasted words. It is appropriately concise for a simple retrieval 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?
For a simple 'get by ID' tool with no output schema, the description is minimally adequate but lacks any extra context such as what is returned, error handling, or usage notes that would make it fully 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?
With 100% schema description coverage for the single parameter 'id', the description adds no additional meaning beyond what the schema already provides. A baseline of 3 is appropriate as the schema does the heavy lifting.
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'), the resource ('a user device'), and the identifier ('by ID'). It is specific and unambiguously distinguishes itself from sibling tools like admin_create_user_device and admin_update_user_device.
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, no mention of prerequisites or context, and no exclusions or when-not scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_get_vendorB
Get a vendor by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Vendor ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the burden. It indicates a read operation ('Get') but does not disclose permissions, response format, or error cases. For a simple fetch-by-ID, this is minimally 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 extremely concise (four words) and front-loaded. It could include slightly more context without becoming verbose, but it 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 retrieval tool with one parameter and no output schema, the description is adequate but does not mention return value or expected behavior. It is minimal yet functional.
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% (id described as 'Vendor ID'), and the description adds no extra meaning. Per guidelines, 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 'Get a vendor by ID' specifies the verb (Get) and resource (vendor by ID), clearly distinguishing it from siblings like admin_list_vendors and admin_create_vendor.
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 admin_list_vendors or admin_search. The description does not provide 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.
admin_get_wikiB
Get a wiki page by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Wiki page ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose any behavioral traits like permissions, idempotency, or return format. It carries the full burden but adds little beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. However, it could be more informative while remaining 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?
No output schema is provided, and the description does not explain what the tool returns (e.g., full page content, metadata). This is insufficient for a retrieval 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 description coverage is 100%, and the description adds no additional meaning beyond what the schema provides for the 'id' parameter. 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 a specific verb ('Get') and resource ('wiki page by ID'), clearly distinguishing it from sibling tools like admin_create_wiki, admin_delete_wiki, and admin_list_wiki.
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 admin_list_wiki. There is no mention of context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_get_worksheetC
Get a worksheet result by ID
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | Ticket ID | |
| id | Yes | Worksheet result ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It only states 'Get' implying read-only, but does not disclose any side effects, authorization requirements, error handling, or return format.
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 short (one sentence) and to the point. It is concise, though could potentially include more context without becoming verbose.
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 output schema, the description should ideally hint at the return structure or provide more context. It is minimally adequate for a simple retrieval but lacks details like possible errors or related tools.
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 no additional meaning beyond what the schema provides for the two 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 action ('Get') and the resource ('a worksheet result by ID'). It directly matches the tool name and function, but lacks differentiation from other 'get' tools like admin_get_user which also retrieve by ID.
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 admin_list_worksheets or admin_create_worksheet. The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_canned_responsesC
List canned ticket responses
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavioral traits. It only states the action, failing to mention whether the operation is read-only, requires authentication, or returns paginated results. The lack of annotations and minimal description leaves the agent without crucial 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 very short (4 words) and lacks structure. While it is concise, it does not front-load key information or provide any additional context beyond the bare minimum. It is acceptable but not 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 tool has no parameters and no output schema, the description is minimal. It does not explain what a 'canned response' is, what fields will be returned, or any limits. For a list operation, more detail (e.g., 'Returns all canned responses with their IDs and names') 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?
There are no parameters, and the schema coverage is 100% (empty schema). The description does not add any parameter semantics, but none are needed. The baseline of 3 is appropriate as the schema already fully documents the lack of 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 'List canned ticket responses' clearly identifies the action (list) and the resource (canned ticket responses), making it easy to understand the tool's purpose. It is not a tautology and is specific enough to differentiate from unrelated 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?
No guidance is provided on when to use this tool versus alternatives like admin_create_canned_response or other list tools. There is no context about intended use cases or situations where this tool might be inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_itemsB
List items (global item catalog)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description offers no behavioral details such as permissions, pagination, or return format. It only repeats the tool's purpose without disclosing any constraints 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?
The description is a single sentence that immediately communicates the tool's action and scope. It is front-loaded and contains no superfluous information, making it 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?
Without an output schema, the description should explain return values. It does not mention what fields are returned, pagination behavior, or ordering. The tool is trivial but still incomplete for an AI agent to fully leverage.
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 no parameters, and schema description coverage is 100%. With no parameters to describe, the baseline score of 3 applies—the description adds no further semantic 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 'List items (global item catalog)', using a specific verb and resource. It distinguishes itself from sibling list tools by specifying 'global item catalog', setting it apart from other admin_list_* 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?
No explicit guidance on when to use this tool versus alternatives (e.g., admin_list_line_items). The context is implied by the mention of 'global catalog', but no exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_line_itemsA
List line items across invoices/tickets
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only indicates a read operation ('List') without detailing pagination, limits, or what is returned. No mention of potential performance implications for large datasets.
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. While concise, it could be expanded slightly to include behavioral notes without losing 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 description is minimal but adequate for a simple list operation with no parameters. However, without an output schema or behavioral details, it lacks completeness for understanding what data is 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?
The input schema has zero parameters, so the description carries the full burden. It adds context by specifying 'across invoices/tickets', which clarifies the scope. Baseline 4 applies for zero-parameter tools.
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 ('List'), resource ('line items'), and scope ('across invoices/tickets'). It effectively distinguishes this tool from sibling list tools like admin_list_items and admin_list_purchase_orders.
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 listing line items but lacks explicit guidance on when to prefer this over alternatives or when not to use it. No mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_portal_usersC
List customer portal users
| Name | Required | Description | Default |
|---|---|---|---|
No 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 any behavioral traits (e.g., read-only, pagination, permissions). With the full burden on the description, it fails to convey any behavior beyond the 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 a single sentence, which is concise but adds minimal value beyond the tool name. It is efficient yet under-specified.
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 parameters, no output schema), the description is minimal. It does not indicate what the output contains or any limitations, leaving the agent guessing.
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 tool has zero parameters, so the description does not need to add parameter details. Schema coverage is 100% trivially, and baseline is 4.
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 'List customer portal users' clearly states the verb and resource, making the basic purpose unambiguous. However, it does not differentiate from sibling tools like 'admin_list_users', which might have a similar but broader scope.
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 'admin_list_users' or 'admin_create_portal_user'. The description offers no contextual hints for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_purchase_ordersC
List purchase orders
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states it lists purchase orders. It does not disclose any behavioral traits such as pagination details, sorting, or response contents, leaving the agent to infer from the schema alone.
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 at three words, with no wasted information. However, it could be slightly more informative without becoming verbose.
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 simplicity of the tool (one optional param, no output schema), the description is too minimal. It fails to explain the context of purchase orders, response format, or any pagination behavior, which an agent might need.
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% (only one parameter, 'page', with description). The description adds no additional meaning beyond the schema, 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 it lists purchase orders using a specific verb+resource. It is distinguishable from other admin_list_* tools by the resource type, but does not highlight any unique characteristics.
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 admin_get_purchase_order or admin_receive_purchase_order, or other list tools. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_ticket_formsC
List new ticket forms
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates a read operation ('List') but does not disclose what 'new' means, return format, or potential side effects. Minimal behavioral detail.
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 short (one phrase). It is concise but lacks structure; every word earns its place, but the brevity sacrifices completeness.
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 output schema, no annotations, and zero parameters, the description should provide more context about the list (e.g., what fields are returned, pagination, filtering). It is incomplete 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?
There are no parameters, so schema coverage is 100%. The description adds no parameter-specific meaning, which is acceptable due to no parameters. However, it does not elaborate on the meaning of 'new' in the output context.
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 'List new ticket forms' clearly states the action (list) and resource (ticket forms). The word 'new' introduces slight ambiguity but does not obscure the core purpose. Among siblings like admin_get_ticket_form and admin_process_ticket_form, listing is 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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_usersB
List all users/technicians
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like pagination, response format, or permissions, but it only states the basic action. This is insufficient for a tool with zero annotation coverage.
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 and front-loaded with the core purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no output schema), the description is adequate but lacks details about returned data or any behavioral caveats. It meets minimum viability but no more.
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 no parameters, so schema coverage is 100%. The description adds no extra meaning, but none is needed. Baseline 4 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 lists users/technicians, using a specific verb and resource. However, it does not differentiate from siblings like admin_get_user or admin_list_portal_users, which target subsets.
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 appropriate contexts or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_vendorsC
List vendors
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and only a two-word description, no behavioral traits are disclosed. The agent cannot infer whether the tool is read-only, what data it returns, or any constraints like pagination. The description carries the full burden and fails to provide any 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 extremely concise but fails to earn its place as it adds no value beyond the tool name. It is under-specified rather than efficiently informative.
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 simplicity of the tool (no parameters, no output schema), the description should at least indicate the nature of the returned data (e.g., 'Returns a list of all vendors'). It is incomplete and leaves the agent with no understanding of the tool's output or behavior.
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 tool has zero parameters and schema coverage is 100% (vacuously). Baseline for 0 parameters is 4. The description adds no parameter info, but none is needed. Thus, a score of 4 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 'List vendors' restates the tool name 'admin_list_vendors' without adding any additional context or distinguishing features. It is a tautology, as it merely repeats the action implied by the name.
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 are many list tools (e.g., admin_list_users, admin_list_purchase_orders), but the description offers no criteria for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_wikiC
List wiki pages
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose behavioral traits like read-only nature, authentication requirements, pagination behavior, or ordering. The agent is left with no behavioral context beyond the name.
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 at three words, but this brevity comes at the cost of essential detail. It is adequately sized only if the tool were trivial, but for an admin list tool, more structure is warranted.
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 optional parameter), the description is incomplete. It fails to specify return format, pagination, or any constraints, and does not differentiate from numerous sibling list tools, leaving an 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% (the single 'page' parameter has a description in the schema). The description adds no additional meaning to the parameter beyond what the schema already provides, achieving the 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 'List wiki pages' clearly states the action (list) and resource (wiki pages), providing a clear purpose. However, it does not differentiate from sibling tools like admin_get_wiki or admin_list_users, lacking specificity about scope or 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?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives such as admin_get_wiki for a single page or other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_list_worksheetsC
List worksheet results for a ticket
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | Ticket ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behaviors. It only states the function, not any side effects, permissions, or output nature. Assumed read-only but not 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?
Single short sentence front-loads the purpose. No unnecessary words, but could add slight context like 'all' or 'available' without harming 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?
Does not explain what a 'worksheet result' is, what the output contains, or how it relates to other worksheet tools. Lacks context for a newcomer.
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 ticket_id described as 'Ticket ID'. Description adds no extra meaning beyond the schema, which is adequate for a simple required 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?
Description clearly states action 'List' and resource 'worksheet results for a ticket', distinguishing it from other worksheet tools like admin_get_worksheet and admin_create_worksheet. However, 'results' is slightly 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 like admin_get_worksheet or admin_list_worksheet (if exists). 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.
admin_otp_loginB
Login with a one-time password code
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | OTP code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits. It does not mention side effects (e.g., creates a session), return value, or error conditions. For a mutation-like operation, this is a significant 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 very concise with a single phrase, no wasted words. However, it could be slightly more structured (e.g., including a verb-subject format). Still, it 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 tool's simplicity, the description is too minimal. It does not explain how the OTP is obtained, what the login achieves, or that it likely returns authentication tokens. For a login tool, this lacks essential context.
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 one parameter (code), and the description adds no extra meaning beyond 'OTP code'. Baseline 3 is appropriate since the schema already defines the parameter adequately.
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 (login) and the method (one-time password code). It is a specific verb+resource that distinguishes it from sibling tools like admin_get_me or admin_search.
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. There is no mention of prerequisites (e.g., user must have requested an OTP) or that it should be used after admin_otp_request (if such exists). Siblings include other admin tools but no login alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_process_ticket_formC
Submit/process a new ticket form
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Form ID | |
| customer_details | No | Customer details | |
| ticket_details | No | Ticket details | |
| appointments | No | Appointment details |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist; the description only says 'Submit/process' without revealing behavioral traits (e.g., mutation, side effects, permissions).
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, but the brevity sacrifices helpful detail; a few more sentences would improve utility.
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 4 parameters including nested objects and no output schema, the description lacks sufficient context about processing behavior and 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% with parameter descriptions, so the description adds little extra 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 'Submit/process a new ticket form', but it does not differentiate from sibling tools like admin_get_ticket_form or tickets_create.
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 tickets_create or other admin tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_receive_purchase_orderC
Receive a line item on a purchase order
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | PO ID | |
| line_item_id | Yes | Line item ID to receive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits (e.g., status changes, irreversibility, permissions) beyond the basic action. Without annotations, this is a significant 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 a single, clear sentence with no redundancy. It is appropriately concise for a straightforward 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?
The description lacks completeness: it does not explain what 'receiving' means, any side effects, or return values. For a simple tool with two parameters and no output schema, more context is needed.
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 description adds no additional meaning beyond the parameter names and schema descriptions. Adequate but not enhanced.
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 ('Receive') and the specific resource ('a line item on a purchase order'), which distinguishes it from sibling tools like admin_add_po_line_item.
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, such as prerequisites (e.g., purchase order must exist, line item must be added first) or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_searchA
Global search across Syncro (tickets, customers, assets, invoices, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral traits such as authentication requirements, rate limits, or side effects. It only states the action without depth.
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 that front-loads the core functionality ('Global search') 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?
For a search tool with one parameter and no output schema, the description provides adequate context on what can be searched but lacks details on result format or behavior.
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 value by specifying the types of resources searched (tickets, customers, assets, invoices), which enhances the meaning of the 'query' parameter beyond the schema's generic description.
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 a global search across Syncro and lists example resources (tickets, customers, assets, invoices), making the purpose specific and distinguishing it from sibling tools that target individual resources.
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 specific resource lookup tools, nor any context about when not to use it. The use case is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_update_canned_responseC
Update a canned response
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Canned response ID (required) | |
| title | No | ||
| body | No | ||
| subject | No | ||
| canned_response_category_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must bear the full burden. It merely repeats the tool's name and provides no details on behavior (e.g., whether updates are partial or full, error handling, permission 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?
The description is extremely short (one sentence), but it lacks necessary detail. While it is front-loaded, it does not earn its place due to under-specification.
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 5 parameters, no output schema, and no annotations, the description provides virtually no context about what 'update' entails, what fields are acceptable, or what happens on success/failure.
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 only 20% (only 'id' has a description). The tool description adds no additional parameter information, failing to compensate for the low 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 'Update a canned response', using a specific verb and resource. It distinguishes itself from siblings like admin_create_canned_response and admin_delete_canned_response.
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 (create, delete). The description lacks explicit 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.
admin_update_portal_userD
Update a portal user
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Portal user ID (required) | |
| No | |||
| password | No | ||
| password_confirmation | No | ||
| portal_group_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says 'Update a portal user'. It fails to mention that it mutates data, requires authentication, or any side effects. The agent cannot infer safety or idempotency.
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, but it is too sparse for a tool with 5 parameters. Conciseness should not sacrifice necessary information; here it omits critical context, making it under-specified rather than effectively 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?
The description is grossly incomplete given the tool's complexity (5 parameters, no output schema, 0 annotations) and the presence of 4 sibling portal user tools. It provides no context on return values, error conditions, or relationship to other tools.
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?
Only 20% of parameters have descriptions in the schema, yet the description adds no parameter context. It does not explain the purpose of email, password, password_confirmation, or portal_group_id, leaving the agent to guess their roles and 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?
Description 'Update a portal user' clearly states the action and resource, but it essentially restates the tool name and does not scope the update (e.g., which fields). It distinguishes from siblings only by the verb, lacking specificity to uniquely identify the tool's 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?
No guidance on when to use this tool versus alternatives like admin_create_portal_user or admin_list_portal_users. There are no usage scenarios, preconditions, or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_update_user_deviceC
Update a user device
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Device ID (required) | |
| registration_token_gcm | No | GCM token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only states 'Update', implying mutation, but provides no details on side effects, required permissions, rate limits, or what happens to existing data.
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 (3 words), which is efficient but lacks substance. It is front-loaded but omits important context that would justify its 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 simple schema and lack of output schema, the description is incomplete. It does not specify which fields can be updated (only GCM token via schema) or the scope of the update, leaving the agent to infer too much.
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% description coverage, so the baseline is 3. The description adds no additional meaning beyond the schema, which already documents the two parameters sufficiently.
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 action and resource ('Update a user device') clearly. However, it does not differentiate from sibling tools like admin_create_user_device or admin_get_user_device, leaving ambiguity about the specific scope of updates.
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 when to update versus create or get a user device. There are no usage recommendations or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_update_vendorC
Update a vendor
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Vendor ID (required) | |
| name | No | ||
| rep_first_name | No | ||
| rep_last_name | No | ||
| No | |||
| phone | No | ||
| account_number | No | ||
| address | No | ||
| city | No | ||
| state | No | ||
| zip | No | ||
| website | No | ||
| notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose side effects, authorization needs, or error conditions. It only states the action, providing 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?
Extremely concise at three words, but too terse to be informative. Could be expanded slightly for clarity 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?
Given 13 parameters, no output schema, and no annotations, the description is severely under-specified and does not provide sufficient context for correct tool 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 has 13 parameters with only 'id' described. The description adds no param details, failing to compensate for low schema coverage (8%).
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 'Update a vendor' clearly indicates the action and resource. While it distinguishes from 'create' and 'get' siblings, it lacks specificity about what can be updated.
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 prerequisites like existing vendor ID or relationship to admin_get_vendor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_update_wikiC
Update a wiki page
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Wiki page ID (required) | |
| name | No | ||
| body | No | ||
| slug | No | ||
| customer_id | No | ||
| asset_id | No | ||
| visibility | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral traits such as side effects, idempotency, or error conditions. The mutating nature is implied but not elaborated.
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 it omits necessary details. For a tool with 7 parameters, it is under-specified.
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 output schema, 7 parameters with minimal descriptions, and a complex update operation, the description is far from complete. It does not cover return values, allowed field updates, 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?
Schema description coverage is only 14%, yet the description adds no parameter-level information. It does not explain the meaning or constraints of parameters like name, body, slug, etc.
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 'Update a wiki page' clearly states the action (update) and the resource (wiki page). It distinguishes from sibling tools like admin_create_wiki, admin_get_wiki, admin_delete_wiki.
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, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
admin_update_worksheetD
Update a worksheet result
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | Ticket ID | |
| id | Yes | Worksheet result ID | |
| title | No | ||
| complete | No | ||
| public | No | ||
| required | No | ||
| user_id | No | ||
| answers | No | Worksheet answers |
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 only states 'Update', which implies mutation, but lacks details on permissions, side effects, atomicity, or any constraints. The agent gets no insight beyond the verb.
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 4-word sentence. While concise, it is too brief to be informative. It sacrifices substance for brevity, resulting in under-specification rather than efficient communication.
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 8 parameters (including a nested object), no output schema, and no annotations, the description is completely inadequate. It does not explain the update behavior, expected input format, or return value, leaving the agent with no actionable context.
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 only 38% (3 of 8 parameters described). The description adds no parameter-level explanation. It does not elaborate on the meaning or format of any parameter, failing to compensate for the schema's gaps.
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 'Update a worksheet result' is a vague verb+resource statement. It does not clarify what 'worksheet result' refers to or distinguish this tool from its sibling 'admin_create_worksheet' or 'admin_delete_worksheet'. It almost restates the name, offering little added 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?
There is no guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical usage scenarios, or situations where another tool (like create or delete) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointments_createA
Create a new appointment. When possible, link to a ticket via ticket_id -- this auto-populates the description with ticket details and the location from the customer address.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | No | Appointment summary/title | |
| description | No | Description | |
| start_at | No | Start time (ISO 8601) | |
| end_at | No | End time (ISO 8601) | |
| appointment_duration | No | Duration (e.g., '1h', '30m') | |
| customer_id | No | Customer ID | |
| ticket_id | No | Ticket ID | |
| user_id | No | Assigned user ID | |
| user_ids | No | Multiple user IDs | |
| location | No | Location | |
| appointment_type_id | No | Appointment type ID | |
| email_customer | No | Email customer about appointment | |
| do_not_email | No | Suppress email notification | |
| all_day | No | All-day appointment |
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 auto-population behavior when linking to a ticket, which is a useful behavioral trait. However, it does not mention other side effects, permissions, or constraints beyond that.
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 with no fluff. It is front-loaded with the core purpose and immediately provides a key usage hint.
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 14 parameters, no required parameters, and no output schema, the description is minimal. It only highlights one feature (ticket link). While the schema covers all parameters, the description lacks guidance on typical usage, optionality, or combination of parameters, making it somewhat incomplete for a complex 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 baseline is 3. The description adds value beyond the schema by explaining that ticket_id auto-populates description and location, which is a meaningful semantic enhancement for that parameter. Other parameters are not enriched, but the added context for ticket_id lifts the score slightly.
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 appointment' which is a specific verb and resource. It distinguishes from sibling tools like appointments_list, appointments_delete, etc., by the verb 'Create'.
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 guidance on when to use the ticket_id parameter ('when possible, link to a ticket') and explains the benefit (auto-population). However, it does not provide explicit when-not-to-use or alternatives like scheduling_create.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointments_create_typeB
Create a new appointment type. Note: location_type is REQUIRED (API returns 422 without it). Integer value where 0 = 'customer'.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Type name (required) | |
| email_instructions | No | Instructions sent in email | |
| location_type | No | Location type (REQUIRED, integer, 0 = 'customer') | |
| location_hard_code | No | Hardcoded location |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It reveals that location_type is actually required (contradicting schema) and defines the integer mapping, but does not explain side effects (creates a new type), errors, permissions, or idempotency.
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 without wasted words. First sentence states purpose, second provides critical parameter nuance.
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?
Lacks return value information (likely the created type object) and no explanation of other parameters (email_instructions, location_hard_code) beyond their schema descriptions. Insufficient for a creation tool without 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 coverage is 100% with descriptions for each parameter. The description adds emphasis by restating location_type as REQUIRED and defining the integer mapping (0='customer'), but this contradicts the schema's required list, creating confusion.
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 a new appointment type') and resource ('appointment type'), distinguishing it from siblings like appointments_create (which creates an appointment instance) and appointments_update_type.
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 appointments_update_type or appointments_delete_type. It only provides a critical usage note about location_type being required, but fails to contextualize relative to other type-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointments_deleteA
DELETE an appointment. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Appointment ID | |
| confirmed | Yes | Must be true |
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 destructive nature ('DELETE') and the need for confirmation, adding value beyond the 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?
The description is extremely concise, using only two clauses to convey action and constraint. 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 delete tool with basic parameters, the description covers the essential action and constraint. It lacks details on error handling or success response, but it is adequate given low 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 does not add additional meaning to the parameters 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 action 'DELETE' and the resource 'appointment', distinguishing it from sibling tools like appointments_create, appointments_get, 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?
The description includes the critical usage guideline 'The user MUST confirm', implying the tool should only be used with explicit user confirmation. It could be improved by specifying when not to use, but the requirement is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointments_delete_typeA
DELETE an appointment type. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Appointment type ID | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It states the operation is destructive ('DELETE') and requires user confirmation, which is key. However, it omits details about irreversibility, effects on related data, or any permissions required.
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 short sentences that front-load the verb and resource. Every word serves a purpose, avoiding 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?
For a simple delete operation with two required parameters and no output schema, the description is minimally complete. It identifies the action and a critical constraint (confirmation), but lacks context about prerequisites, side effects, or how it fits among siblings like appointments tools.
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 provides complete descriptions for both parameters ('id' as 'Appointment type ID' and 'confirmed' as 'Must be true'), covering 100% of schema fields. The description adds no further meaning 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 clearly states the verb 'DELETE' and the resource 'appointment type', making the tool's purpose explicit. It distinguishes itself from sibling tools like 'appointments_delete' (which deletes appointments, not types) through the name and resource.
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 when to delete an appointment type versus other deletion operations. The description only mentions a confirmation requirement, which is a constraint rather than usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointments_getB
Get a single appointment by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Appointment ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as required permissions, error behavior (e.g., what happens if the ID does not exist), or rate limits. The description is minimal and does not add context beyond the obvious.
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 unnecessary words. It is concise and to the point.
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 get-by-ID tool with one parameter and no output schema, the description is adequate but lacks details on return format or error handling. It covers the essential purpose but could provide more context 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 a description for the 'id' parameter. The tool description does not add any 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?
Description clearly states the verb 'Get' and resource 'single appointment by ID', distinguishing it from sibling tools like appointments_list (which returns multiple appointments).
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. For instance, it does not mention that appointments_list should be used for multiple appointments or that appointments_get is for a specific ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointments_get_typeB
Get an appointment type by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Appointment type ID |
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 merely restates the function's basic purpose and does not mention idempotency, return type, error scenarios, 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?
The description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the essential 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 low complexity (1 parameter, no output schema), the description is minimally adequate but does not explain return values or behavior. For a simple get operation, it meets a basic threshold 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 already describes the single parameter 'id' as 'Appointment type ID' with 100% coverage. The description adds no additional meaning or constraints (e.g., ID format, range) 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 'Get an appointment type by ID' clearly states the action (get) and the resource (appointment type) with the identifier method (by ID). It distinguishes from sibling tools like appointments_list_types (list) and appointments_create_type (create).
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 appointments_list_types for listing all types or appointments_update_type for modifying. The description does not mention contexts, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointments_listC
List appointments with optional date range filter
| Name | Required | Description | Default |
|---|---|---|---|
| date_from | No | Start date (ISO 8601) | |
| date_to | No | End date (ISO 8601) | |
| mine | No | Only my appointments | |
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions dating filtering but omits behavior like default scope (e.g., all appointments), authentication needs, or pagination 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?
Single sentence, directly states the purpose and key feature, 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?
Despite simple tool, description lacks details on default behavior (e.g., without date range), meaning of 'mine', pagination defaults, and response 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 already describes all 4 parameters with 100% coverage; description adds only 'optional date range filter' 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?
Description clearly states the tool lists appointments with an optional date range filter, but it does not differentiate from sibling list tools like appointments_get or appointments_list_types.
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 appointments_get for a single appointment or appointments_list_types for listing types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointments_list_typesA
List appointment types
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description only states the operation. It does not disclose any behavioral traits like whether it is read-only, permissions required, pagination behavior, or any side effects. As a simple list, minimal disclosure is acceptable, but with no annotations, the description should provide more 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 a single sentence, extremely concise with no extraneous information. It is appropriately sized for a simple, parameterless list 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 no output schema and a simple operation, the description is minimally complete but lacks context about what appointment types are, what they contain, or any filtering. It could be more informative, but it is not confusing.
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 is empty (0 parameters), and the description does not need to add parameter meaning. According to guidelines, 0 parameters yields a baseline of 4. The description does not contradict or add confusion.
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 'List appointment types' uses a specific verb 'list' and resource 'appointment types', clearly stating its purpose. It distinguishes from sibling tools like appointments_create_type or appointments_get_type.
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 guidelines provided. The description does not mention when to use this tool versus alternatives, such as appointments_get_type for a specific type or appointments_list for appointments. No exclusions or context given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointments_updateC
Update an existing appointment
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Appointment ID (required) | |
| summary | No | ||
| description | No | ||
| start_at | No | ||
| end_at | No | ||
| appointment_duration | No | ||
| customer_id | No | ||
| ticket_id | No | ||
| user_id | No | ||
| user_ids | No | ||
| location | No | ||
| appointment_type_id | No | ||
| email_customer | No | ||
| all_day | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description should disclose behavioral traits. It only says 'update', implying mutation, but fails to mention error handling for missing IDs, partial update behavior, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short sentence), but this brevity sacrifices informativeness. It is front-loaded but too minimal for a tool with many parameters.
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 high parameter count, lack of output schema, and no annotations, the description is completely inadequate. It does not cover return values, error states, or parameter interactions.
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 only 7%, yet the description adds no meaning to the 14 parameters. It does not explain the roles of fields like summary, start_at, customer_id, etc., leaving the agent without guidance.
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 updates an existing appointment, but it does not differentiate from sibling tools like appointments_update_type, which updates appointment types. The purpose is specific but lacks distinction.
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, nor any prerequisites or exclusions. The description does not help the agent decide when to choose this tool over siblings like appointments_create or appointments_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointments_update_typeC
Update an appointment type
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Appointment type ID | |
| name | No | ||
| email_instructions | No | ||
| location_type | No | ||
| location_hard_code | No |
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 says 'Update', implying mutation, but does not mention side effects (e.g., impact on existing appointments), required permissions, or idempotency. The lack of transparency is significant for a mutation 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 a single sentence, which is concise but overly brief for a 5-parameter tool. It could include more detail without becoming verbose, achieving a balance between brevity and informativeness.
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 5 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return values, validation rules, or error conditions. The tool's complexity demands richer context.
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?
Only the 'id' parameter has a schema description; other 4 parameters have none. The tool description adds no meaning to any parameter, failing to explain what 'name', 'email_instructions', 'location_type', or 'location_hard_code' represent or their allowed values.
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 'Update' and the resource 'appointment type', distinguishing it from related tools like 'appointments_create_type' and 'appointments_delete_type'. However, it does not specify which fields can be updated.
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. There are no instructions on prerequisites, exclusions, or context for invocation. The sibling tools suggest a CRUD pattern, but no explicit usage advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assets_chat_infoB
Get chat information for assets by IDs
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Comma-separated asset IDs |
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 only states 'Get chat information' without disclosing behavioral traits like read-only nature, authentication needs, rate limits, or any side effects. 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 short sentence with no structure or organization. While it is concise, it lacks any bullet points or headers that could improve readability for an AI agent.
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 no output schema, yet the description does not hint at what the return value contains (e.g., chat messages, status, participants). For a simple tool, it provides insufficient context for an agent to understand the full behavior.
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 required parameter 'ids', describing it as 'Comma-separated asset IDs'. The tool description adds no additional meaning beyond the schema, so it meets the baseline for high schema 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 uses a specific verb 'Get' and identifies the resource 'chat information for assets' and the method 'by IDs', clearly distinguishing it from other assets tools like assets_get or assets_list.
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 any guidance on when to use this tool versus alternatives such as assets_get or assets_list. It lacks context about 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.
assets_createA
Create a new customer asset. Note: asset_type_name must match an existing type in the account. Custom properties on create are IGNORED -- set them via assets_update after creation.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID (required) | |
| name | Yes | Asset name (required) | |
| asset_type_name | No | Asset type name (must match an existing type in the account) | |
| asset_type_id | No | Asset type ID | |
| asset_serial | No | Serial number | |
| properties | No | Custom properties |
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 custom properties are ignored on create, which is a key behavioral trait. However, it does not mention authentication needs, rate limits, or what the response returns, leaving gaps in 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 two sentences long, front-loaded with the action, and contains no fluff. Every sentence is necessary and informative.
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 does not mention return values or whether the created asset is returned, which is useful for a creation tool. Additionally, no output schema is provided. For a 6-param tool, it covers the essentials but lacks some 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%, providing baseline. The description adds value by explaining that 'asset_type_name must match an existing type' and that 'properties' are ignored on create, which goes 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 'Create a new customer asset' with a specific verb and resource. It distinguishes from sibling 'assets_update' by noting that custom properties are ignored on create and should be set via 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?
The description explicitly guides when not to use this tool for setting custom properties, directing to 'assets_update'. However, it does not provide broader context on when to choose this over other creation tools or mention any prerequisites beyond asset type existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assets_getA
Get a single asset by ID with full details
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Asset ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description indicates a read-only operation but does not disclose error handling, authentication requirements, or response format. Adequate for a straightforward get 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?
Single sentence, no redundant information. Efficiently communicates the tool's 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 get tool with one parameter and no output schema, the description is almost complete. It lacks detail on the return value, but 'full details' sufficiently hints at the output.
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 parameter with description 'Asset ID'. Description adds no additional meaning beyond what the schema provides. 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?
Description clearly states verb 'Get', resource 'asset', scope 'single by ID', and specifies 'full details'. Distinct from sibling tools like assets_list which retrieves multiple assets.
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 vs alternatives like assets_list or other get tools. However, the name and description are self-explanatory for a simple retrieval operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assets_get_installed_applicationsA
Get the paginated list of software applications installed on an asset. Returns name, vendor, version, and installed_at (falls back to first-seen date when no explicit install date is recorded).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Asset ID | |
| page | No | Page number (default 1) | |
| per_page | No | Records per page (default 100, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a behavioral fallback for installed_at, but with no annotations, it fails to mention other behavioral traits like read-only nature, authorization requirements, or error handling. It partially compensates for missing 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 a single, well-structured sentence that front-loads the purpose and includes key details. It is concise but could be slightly improved by splitting the output field list and fallback 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?
Given no output schema, the description provides moderate context: return fields, pagination, and a fallback. However, it lacks mention of required permissions, error scenarios, or exact output structure, leaving gaps for a 3-parameter 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 clear parameter descriptions. The description adds no additional meaning beyond the schema for the parameters, only context about the output (fallback). 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 specifies the verb 'Get' and the resource 'paginated list of software applications installed on an asset', and lists the returned fields. It distinguishes from siblings like assets_get (asset details) and assets_get_patches (patches).
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 paginated retrieval by mentioning pagination, but provides no explicit guidance on when to use vs. alternatives (e.g., assets_list for all assets, or assets_get for single asset info) 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.
assets_get_patchesB
Get patch information for an asset (available OS/software patches)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Asset ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks any disclosure of behavioral traits such as read-only status, permissions, or rate limits, which is minimal 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?
The description is a single concise sentence that is front-loaded with the key information, 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?
For a simple read tool with one parameter and no output schema, the description is moderately complete but lacks behavioral context needed for confident agent 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?
The single parameter 'id' is fully described in the schema (100% coverage), and the description does not add additional meaning beyond 'Asset ID', 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 verb 'Get' and the resource 'patch information for an asset', distinguishing it from sibling tools like 'assets_get' and 'assets_get_installed_applications'.
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 the tool is for retrieving available OS/software patches for an asset but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assets_listB
List customer assets with optional filters. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | No | Filter by customer ID | |
| asset_type_id | No | Filter by asset type ID | |
| snmp_enabled | No | Filter by SNMP enabled status | |
| query | No | Search query | |
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose traits. It mentions 'Returns paginated results', but does not explain pagination mechanics, authentication, rate limits, or side effects. Only one behavioral trait is added.
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 efficient sentences: first states purpose, second mentions pagination. No redundant words, 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?
For a list tool with 5 optional parameters and no output schema, the description covers basic behavior but lacks details like filter semantics, pagination navigation, or result format. Adequate but not rich.
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 adds no additional meaning beyond 'optional filters' which is already implied by no required 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 verb 'list' and resource 'customer assets', and mentions optional filters and pagination. It sufficiently distinguishes from sibling tools like assets_get or admin_list_items, though no explicit 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 other list tools (e.g., admin_list_items) is provided. The description lacks context about appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assets_updateA
Update an existing asset. Use this to set asset properties (hdd, manufacturer, model, os, cpu_name, ram, last_boot) after creation, as properties on create are ignored. Pass policy_folder_id to move the asset to a same-customer policy folder (see policies_list_folders).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Asset ID (required) | |
| name | No | Asset name | |
| asset_type_name | No | Asset type name | |
| asset_type_id | No | Asset type ID | |
| customer_id | No | Customer ID | |
| asset_serial | No | Serial number | |
| policy_folder_id | No | Policy folder ID to assign this asset to. Must belong to the same customer; cross-customer or nonexistent IDs return 422. | |
| properties | No | Asset properties (hdd, manufacturer, model, os, cpu_name, ram, last_boot, etc.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals key behaviors: properties set on creation are ignored, asset can be moved to a same-customer policy folder, and returns 422 for cross-customer or nonexistent IDs. No annotations provided, so description carries full burden and does it 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?
Two concise sentences with no redundant information. Key points are front-loaded: purpose, usage timing, and special behavior. Every sentence adds unique 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?
The description covers core behaviors and constraints effectively. No output schema exists, but return values are not described. Given the complexity (nested object, 8 params), the description is thorough without being verbose.
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?
All 8 parameters have schema descriptions, so baseline is 3. The description adds value by listing specific property keys (hdd, manufacturer, etc.) that the 'properties' object can take, and reiterates the constraint on policy_folder_id, going 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's purpose: 'Update an existing asset.' It distinguishes from the sibling tool assets_create by noting that properties set during creation are ignored, so this tool must be used to set properties after creation.
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 advises when to use the tool ('after creation') and mentions a specific use case (moving asset to a policy folder with reference to policies_list_folders). It does not list 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.
contacts_createB
Create a new contact for a customer
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID (required) | |
| name | Yes | Contact name (required) | |
| No | Email address | ||
| phone | No | Phone number | |
| mobile | No | Mobile number | |
| address1 | No | Address line 1 | |
| address2 | No | Address line 2 | |
| city | No | City | |
| state | No | State | |
| zip | No | ZIP code | |
| notes | No | Notes |
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 implies a write operation ('Create'), but does not disclose side effects, authorization requirements, or what happens on duplicate. The behavioral disclosure is minimal.
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: 'Create a new contact for a customer.' It is concise, front-loads the purpose, 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 no output schema, the description should disclose the return value or outcome, but it does not. For a create tool, the agent needs to know if the created contact is returned. The description is incomplete in this regard.
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 all parameters documented (customer_id, name, email, phone, etc.). The tool description does not add any meaning beyond what the schema provides, so it meets 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 'Create a new contact for a customer' is clear, specific, and directly states the action (create) and resource (contact for a customer). It distinguishes from sibling tools like contacts_delete, contacts_get, etc., which have 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 is provided on when to use this tool versus alternatives (e.g., contacts_update), prerequisites (e.g., customer must exist), or when not to use it. The description leaves the agent without contextual best-practice advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contacts_deleteA
DELETE a contact permanently. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contact ID | |
| confirmed | Yes | Must be true to confirm deletion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description conveys the destructive nature ('permanently') and mandatory confirmation. It does not detail side effects, authentication needs, or rate limits, but for a simple delete, these details are minimally necessary.
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 that is concise and front-loaded with the action. It could be more structured, but it effectively communicates the core functionality without 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 deletion tool with two parameters and no output schema, the description covers the essential behavior. However, it does not mention return values or error handling, which could be helpful for an agent deciding to invoke the 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 the description does not add new semantics beyond the schema's descriptions of 'id' and 'confirmed'. The description's mention of confirmation aligns with the schema but does not enhance 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 is to delete a contact permanently, with a requirement for confirmation. It distinguishes from sibling tools like contacts_create or contacts_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?
The description explicitly states that the user must confirm, which is a usage guideline. However, it does not provide explicit instructions on when to use this tool versus alternatives, though the permanence and confirmation requirement imply careful use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contacts_getA
Get a single contact by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contact ID |
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 describes a read-only operation but does not explicitly state safety, side effects, or permissions. The term 'Get' implies no mutation, but more detail would improve clarity.
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 that is concise and front-loaded with the key information. Every word serves a purpose with no wasted 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?
For a simple retrieval tool with one parameter and no output schema, the description is mostly complete. However, it could mention that the tool returns a contact object or potential null if not found. Minor gap given the simplicity.
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 single 'id' parameter described as 'Contact ID'. The description adds 'by ID' but does not provide additional semantics beyond what the schema already states, 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) and resource (a single contact by ID), which is specific and distinct from sibling tools like contacts_list (list multiple) or contacts_update (modify).
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 explicit guidance on when to use this tool versus alternatives, such as contacts_list or contacts_search. It implies usage when you have a specific ID, but lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contacts_listC
List contacts with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | No | Filter by customer ID | |
| page | No | Page number |
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 mentions optional filters but does not disclose pagination behavior, ordering, or what happens when no filters are applied. The behavioral traits are under-specified.
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 a single sentence, front-loading the purpose. It is efficient, though it could benefit from slightly more structure for complex cases.
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 two parameters and no output schema, the description is incomplete. It does not clarify if the list is paginated, what the default page size is, or what the response format looks like. More detail is needed for a complete understanding.
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 already documented. The description adds no additional meaning beyond 'optional filters', so it meets the baseline without adding 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 tool lists contacts with optional filters. However, it does not differentiate from sibling tools like contacts_get or other list tools, leaving some ambiguity about scope.
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., contacts_get for a single contact), nor any exclusions or prerequisites. The description lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contacts_updateB
Update an existing contact
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contact ID (required) | |
| customer_id | No | Customer ID | |
| name | No | Contact name | |
| No | Email address | ||
| phone | No | Phone number | |
| mobile | No | Mobile number | |
| title | No | Job title | |
| address1 | No | Address line 1 | |
| address2 | No | Address line 2 | |
| city | No | City | |
| state | No | State | |
| zip | No | ZIP code | |
| notes | No | Notes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'Update an existing contact' without disclosing behavioral traits like partial vs full update, error handling, authorization needs, or side effects. This is insufficient for an agent to use the tool correctly.
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 (4 words, one sentence) and contains no filler. However, it is so brief that it omits useful details, making it slightly less than optimal for a highly informative definition.
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 13 parameters and no output schema, the description is too minimal. It does not explain the update behavior (e.g., partial vs complete replacement), return values, or what happens if the contact ID doesn't exist. The description is inadequate for a tool with 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?
All 13 parameters have descriptions in the input schema (100% coverage), so baseline is 3. The description adds no extra meaning beyond the schema. Thus, it neither improves nor degrades the 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 'Update an existing contact' clearly states the verb (update) and resource (contact). It distinguishes from siblings like contacts_create, contacts_delete, contacts_get, and contacts_list, making the tool's 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?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or recommend siblings for other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contracts_createA
Create a new contract. Note: there is no 'notes' field -- 'description' is the only text field. The activity/notes section in the UI is not API-accessible.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID (required) | |
| name | Yes | Contract name (required) | |
| description | No | Description | |
| contract_amount | No | Contract amount | |
| start_date | No | Start date | |
| end_date | No | End date | |
| primary_contact | No | Primary contact | |
| status | No | Status | |
| likelihood | No | Likelihood (0-100) | |
| apply_to_all | No | Apply to all | |
| sla_id | No | SLA ID |
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. It discloses that there is no 'notes' parameter and that the UI activity/notes section is not API-accessible, which is useful. However, it does not mention side effects, permissions required, or return behavior, leaving gaps for a creation 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 extremely concise with two sentences, front-loading the purpose. Every word earns its place, providing the core action and a key constraint without 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 11 parameters and no output schema, the description is brief but covers a critical constraint. However, it lacks information on what the tool returns, validation rules, or potential failures, which would be expected for a creation tool to be fully 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?
All 11 parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description adds value by clarifying that 'description' is the only text field and that there is no 'notes' parameter, which is not evident from 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 'Create a new contract,' which is a specific verb and resource. It distinguishes from sibling tools like contracts_delete, contracts_get, contracts_update by focusing on creation. The note about the missing 'notes' field further clarifies the tool's behavior.
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, such as contracts_update for modifications. It lacks guidance on prerequisites, success conditions, or when not to use it. The note about the description field being the only text field is a constraint, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contracts_deleteA
DELETE a contract (soft-delete -- GET returns null after deletion, not 404). The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contract ID | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the soft-delete behavior (GET returns null, not 404) which is a critical behavioral trait beyond the basic operation. It also mentions the required user confirmation. With no annotations provided, the description effectively communicates important behaviors.
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 plus a brief clarification. It front-loads the core action 'DELETE a contract'. Every word is necessary and adds value, with no 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?
For a delete operation with no output schema and no annotations, the description covers the essential aspects: action, soft-delete behavior, and requirement of confirmation. It does not mention return value or permissions, but these are less critical given the tool's simplicity and the presence of sibling tools that provide context.
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 clear descriptions for id and confirmed. The description reiterates the confirmation requirement but does not add new semantic meaning beyond the schema. Baseline score 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 'DELETE a contract', specifying the action and resource. It distinguishes from sibling tools like contracts_create or contracts_get by clearly indicating deletion. The soft-delete clarification adds further specificity.
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 (to delete a contract) and notes the user MUST confirm, which is a usage prerequisite. However, it does not explicitly state when not to use or compare to alternatives like contracts_update or contacts_delete. The context from sibling names helps but is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contracts_getA
Get a contract by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contract ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as read-only nature, auth requirements, or side effects, leaving the agent without important 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 a single front-loaded sentence with no wasted words, effectively communicating 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?
For a simple retrieval tool with one parameter, the description is minimally adequate but lacks information about expected output or any constraints, which would be helpful with no 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 coverage is 100% and the description merely restates the parameter name and type ('Contract ID') already present in the schema, adding no deeper 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 'Get a contract by ID' clearly specifies the action and resource, and distinguishes from related sibling tools like contracts_list and contracts_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?
The description implies usage when a contract ID is known but provides no explicit guidance on when to use this vs alternatives like contracts_list or other get tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contracts_listD
List contracts
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks any behavioral details such as pagination, ordering, or side effects. The agent gets no insight into what happens when invoked.
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?
While very short (2 words), the description is under-specified rather than efficiently complete. It could be expanded to include useful context without becoming verbose.
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 lack of output schema and annotations, the description should compensate by explaining return data or pagination behavior. It fails to do so, leaving the agent with insufficient information.
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 one parameter 'page'. The description adds no extra 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 'List contracts' is a tautology with the tool name. It adds no new information about the specific purpose or scope, making it minimally helpful for distinguishing from siblings like contracts_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?
No guidance is provided on when to use this tool vs alternatives (e.g., contracts_get for a single contract). There is no mention of prerequisites, filtering, or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contracts_updateB
Update a contract. Note: there is no 'notes' field -- 'description' is the only text field. The activity/notes section in the UI is not API-accessible.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contract ID (required) | |
| customer_id | No | ||
| name | No | ||
| description | No | ||
| contract_amount | No | ||
| start_date | No | ||
| end_date | No | ||
| primary_contact | No | ||
| status | No | ||
| likelihood | No | ||
| apply_to_all | No | ||
| sla_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a notable behavioral trait: the absence of a 'notes' field and the inaccessibility of the UI notes section. However, with no annotations provided, the description carries a heavy burden; it fails to mention whether the update is destructive, what happens to omitted fields, or any required permissions, leaving significant gaps.
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, consisting of two sentences that immediately convey the purpose and a critical behavioral note. No words are wasted, 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?
Given the tool has 12 parameters, no output schema, and no annotations, the description is severely incomplete. It only provides a small behavioral note and a one-line purpose statement, leaving out return values, error handling, required permissions, and the semantics of partial updates. This is insufficient for an agent to use the tool confidently.
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 only 8% (only 'id' described). The description adds a clarification that 'description' is the sole text field and that there is no 'notes' parameter, which adds some meaning. But it ignores the other 11 parameters, offering no explanation for fields like customer_id, name, status, etc., thus compensating poorly for the low schema 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 states 'Update a contract', which clearly identifies the verb and resource, distinguishing it from sibling tools like contracts_create or contracts_get. However, it does not specify whether updates are partial or full, missing a chance to clarify typical update semantics.
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 contracts_create or contracts_get. The description lacks any when-to-use or when-not-to-use context, leaving the agent without decision support for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_autocompleteB
Autocomplete search for customers by name or business
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for autocomplete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided and description lacks behavioral details such as matching algorithm (exact, prefix, fuzzy), rate limits, or return format. 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?
Very brief single sentence, no wasted words. However, lacks structure for output or usage context, which would be helpful.
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?
No output schema and description does not specify what the autocomplete returns (e.g., list of names, IDs, objects). 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?
Schema coverage is 100% with parameter description. Tool description adds no additional meaning beyond what the schema already states, so 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?
Description clearly states it is an autocomplete search for customers by name or business, which is specific and distinguishes it from list or get tools. However, it doesn't explicitly differentiate from 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?
Implies usage for typeahead/autocomplete scenarios but provides no explicit guidance on when to use this vs customers_list or other search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_createA
Create a new customer. Note: phone and mobile fields auto-create entries in the phones sub-resource.
| Name | Required | Description | Default |
|---|---|---|---|
| business_name | No | Business name | |
| firstname | No | First name | |
| lastname | No | Last name | |
| No | Email address | ||
| phone | No | Phone number | |
| mobile | No | Mobile number | |
| address | No | Street address | |
| address_2 | No | Address line 2 | |
| city | No | City | |
| state | No | State | |
| zip | No | ZIP code | |
| notes | No | Notes | |
| get_sms | No | Receive SMS notifications | |
| opt_out | No | Opt out of communications | |
| no_email | No | No email communications | |
| get_billing | No | Receive billing emails | |
| get_marketing | No | Receive marketing emails | |
| get_reports | No | Receive report emails | |
| ref_customer_id | No | Referring customer ID | |
| referred_by | No | Referral source | |
| tax_rate_id | No | Tax rate ID | |
| notification_email | No | Notification email | |
| invoice_cc_emails | No | Invoice CC emails | |
| invoice_term_id | No | Invoice term ID | |
| properties | No | Custom field values | |
| consent | No | Consent settings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly discloses that phone and mobile fields auto-create entries in the phones sub-resource, which is a significant behavioral side-effect not captured by annotations (none provided). This adds transparency beyond the input schema. However, it does not mention other potential behaviors such as whether the created customer is returned, required permissions, or idempotency.
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 two concise sentences with no superfluous information. The first sentence states the core purpose, and the second provides a critical behavioral note. It is well-structured and front-loaded with essential 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 has 26 parameters, no output schema, and no annotations, the description is too minimal. It fails to explain what the tool returns, error conditions, or prerequisites. While the phone note helps, the description is incomplete for an agent to reliably use the tool without additional context.
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 baseline is 3. The description adds value by noting the side-effect of phone and mobile parameters, which clarifies their behavior beyond the schema descriptions. This enhances understanding of the parameter semantics, justifying a score above 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 'Create a new customer' with a specific verb and resource. The additional note about phone/mobile auto-creating entries in the phones sub-resource helps distinguish this tool from the sibling tool customers_create_phone, which is used to explicitly create phone entries for existing customers.
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. It does not mention that customers_create_phone should be used for adding phones to existing customers, nor does it specify any prerequisites or context (e.g., required fields or conditions for creation). The auto-create note implies a side-effect but not usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_create_phoneB
Add a phone number to a customer
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID | |
| label | No | Phone label (e.g., 'Work', 'Home') | |
| number | Yes | Phone number | |
| extension | No | Extension |
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 only states the action without disclosing behavioral traits such as idempotency, error handling, or side effects (e.g., whether duplicate numbers are allowed). 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, concise sentence that front-loads the purpose. It is appropriately sized with no fluff, though could include more context without harming 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?
Given 4 parameters and no output schema, the description lacks completeness. It does not mention return values, prerequisites, or any confirmation of success, leaving the agent with insufficient context for reliable 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 description coverage is 100% (all parameters described in schema). The description does not add meaning beyond the schema, so a 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 'Add a phone number to a customer' clearly states the action (Add) and resource (phone number to a customer). It distinguishes from siblings like 'customers_create' and 'customers_update_phone' by specifying the operation on a phone number.
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 adding a phone number, but does not provide explicit guidance on when to use this tool versus alternatives like 'customers_update_phone' or 'customers_list_phones'. No when-not or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_deleteA
DELETE a customer permanently. The user MUST confirm before executing.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Customer ID | |
| confirmed | Yes | Must be true to confirm deletion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully bears the responsibility. It discloses the destructive nature ('permanently') and the requirement for explicit confirmation, offering important behavioral context beyond the 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 packed with essential information (action, permanence, confirmation requirement). No extraneous words, efficiently 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?
For a simple delete operation with confirmation, the description is adequate. It covers the critical behavioral aspects, though it could optionally mention the result (e.g., customer removed). No output schema exists, but the core usage is well-covered.
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 are already clear. The description's mention of confirmation aligns with the schema but adds no extra meaning beyond reinforcing the requirement.
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 'DELETE a customer permanently', specifying the action, resource, and scope. It distinguishes from sibling tools like customers_create or customers_update, and the mention of confirmation adds 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?
The description provides explicit usage guidance by stating 'The user MUST confirm before executing', indicating a prerequisite. While it doesn't explicitly list alternatives, the purpose is clear for deletion scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_delete_phoneA
Delete a phone number from a customer. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID | |
| id | Yes | Phone ID | |
| confirmed | Yes | Must be true to confirm deletion |
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 mentions the need for confirmation, which is a key behavioral trait, but does not disclose reversibility, permissions, 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 sentences, front-loaded, no wasted words. However, it could be more informative without breaking 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?
No output schema, and the description does not explain return values or success indicators. It covers the confirmation aspect but lacks completeness for a deletion tool with no 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 schema already explains the parameters. The description adds no new meaning beyond 'confirmed' must be true, 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 the action ('Delete a phone number') and the target resource ('from a customer'). It is distinct from sibling tools like customers_create_phone or customers_update_phone.
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 usage requirement ('The user MUST confirm'), but does not explicitly state when to use this tool versus other phone-related tools or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_getA
Get a single customer by ID with full details
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only conveys it's a read operation without additional behavioral context such as permissions 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?
The description is a single, front-loaded sentence with no wasted words—concise and to the point.
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 get operation with one parameter, the description covers the essential purpose and output; missing details like error conditions are minor.
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 does not add meaning beyond what the schema already provides for the single 'id' 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 verb 'Get', the resource 'customer by ID', and the scope 'full details', distinguishing it from list or autocomplete 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?
No explicit guidance on when to use this vs alternatives like customers_list or customers_autocomplete; usage is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_latestB
Get the most recently created customers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It only states it retrieves recent customers, but lacks details on pagination, limit, ordering, or whether it returns all recent customers or a subset. This leaves important behavior ambiguous.
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 one sentence, clearly conveying the core purpose without redundancy. However, it sacrifices necessary detail for brevity, so it is not maximally effective.
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 output schema and no annotations, the description is insufficiently complete. It does not explain return value format, count of customers, or any constraints, leaving the agent uncertain about how to interpret results.
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 0 parameters, and the description's coverage is 100%. The description adds meaning by specifying the tool retrieves recent customers, which compensates for the lack of parameters. Following the rule for 0 parameters, baseline 4 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 'Get the most recently created customers' clearly states the action (Get) and the resource (most recently created customers), distinguishing it from siblings like 'customers_list' and 'customers_get'. However, it does not specify the number of customers returned or the exact criteria for 'most recent', which would enhance 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. Siblings like 'customers_list' and 'customers_get' exist, but the description does not explain scenarios where 'customers_latest' is preferred, nor does it mention any limitations or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_listA
List customers with optional filters. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field | |
| query | No | Search query | |
| firstname | No | Filter by first name | |
| lastname | No | Filter by last name | |
| business_name | No | Filter by business name | |
| No | Filter by email | ||
| id | No | Filter by specific IDs | |
| include_disabled | No | Include disabled customers (true/false) | |
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full disclosure burden. It informs that the tool lists customers with filters and returns paginated results, which implies a read operation. However, it does not disclose specifics like default sorting, pagination limits, or whether filters are exact matches, leaving gaps in behavioral 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?
The description is extremely concise, consisting of two short sentences that convey the essential information without any superfluous words. 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?
Given the tool has 9 optional parameters and no output schema, the description is adequate but not fully complete. It covers the core functionality but lacks details on pagination behavior, return format, or how filters interact. For a simple list tool, this is minimally viable, but there is room for improvement.
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 descriptions for all 9 parameters. The overall description adds no parameter-specific details beyond stating 'optional filters' and 'paginated results,' so it meets the baseline but does not provide additional semantic 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 'List customers with optional filters. Returns paginated results,' which identifies the action (list), the resource (customers), and key features (filters, pagination). This distinguishes it from sibling tools like customers_get (single customer) and customers_autocomplete (autocomplete 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 implies usage for retrieving a filtered, paginated list of customers but does not explicitly state when to use this tool over alternatives like customers_get or customers_latest. No when-not or alternative guidance is provided, only implied scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_list_phonesA
List phone numbers for a customer
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden but only says 'List phone numbers'. It does not disclose whether the operation is read-only, requires specific permissions, handles pagination, or any side effects. Minimal transparency beyond the 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 a single, concise sentence with no unnecessary words. It communicates the essential purpose 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 simplicity (one parameter, no output schema), the description is adequate but lacks details about return format, ordering, or the scope of phone numbers (e.g., all types). It does not fully compensate for missing output schema information.
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 parameters, with 'customer_id' described as 'Customer ID'. The description 'List phone numbers for a customer' adds no extra meaning beyond the schema, so it meets the baseline for high schema 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 'List phone numbers for a customer', which specifies the verb (list), resource (phone numbers), and context (for a customer). This distinguishes it from sibling tools like customers_create_phone, customers_delete_phone, and customers_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 does not provide explicit when-to-use or when-not-to-use guidance. Usage is implied by the action name and context, but there is no mention of prerequisites or alternatives, such as using customers_get to retrieve all customer details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_updateB
Update an existing customer. Only provided fields will be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Customer ID (required) | |
| business_name | No | Business name | |
| firstname | No | First name | |
| lastname | No | Last name | |
| No | Email address | ||
| phone | No | Phone number | |
| mobile | No | Mobile number | |
| address | No | Street address | |
| address_2 | No | Address line 2 | |
| city | No | City | |
| state | No | State | |
| zip | No | ZIP code | |
| notes | No | Notes | |
| get_sms | No | Receive SMS notifications | |
| opt_out | No | Opt out | |
| no_email | No | No email | |
| properties | No | Custom field values |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only indicates partial update behavior but does not disclose permissions, side effects, return value, or any destructive aspects. The agent lacks critical behavioral context for a mutation 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 sentences, zero wasted words. Front-loaded with action and key behavioral trait. Efficiently communicates essential info.
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 17 parameters, no output schema, and no annotations, the description is too brief. It lacks details on return values, required permissions, error scenarios, or how the partial update works in practice. Incomplete for the tool's 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 adds no extra meaning beyond the schema parameter descriptions; the partial update note is general behavior, not parameter-specific.
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 identifies the action ('Update') and the resource ('an existing customer'), and adds the behavioral note 'Only provided fields will be changed,' distinguishing it from create, get, list, delete, and specific field update tools like customers_update_phone.
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 partial updates but does not explicitly state when to use this tool over alternatives like customers_update_phone or when not to use it. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_update_phoneC
Update a phone number for a customer
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID | |
| id | Yes | Phone ID | |
| label | No | Phone label | |
| number | No | Phone number | |
| extension | No | Extension |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only says 'Update', implying mutation, but does not mention whether the operation is destructive, what happens to missing records, or any permission requirements. Very limited 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?
A single sentence is concise and front-loaded. It wastes no words, though it could be expanded slightly to add value 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?
Given no output schema and no annotations, the description is too brief. It doesn't explain what happens on success, error conditions, or the relationship between customer_id and id. A simple update tool still benefits from minimal context.
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 already documented. The description adds no additional meaning beyond acknowledging that a phone number is updated. 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 ('Update') and the resource ('a phone number for a customer'), which distinguishes it from sibling tools like customers_create_phone (create) and customers_delete_phone (delete). However, it could specify which fields can be updated.
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, nor any prerequisites (e.g., customer must exist, phone ID must belong to customer). The agent receives no help in selecting 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.
estimates_add_line_itemA
Add a line item to an estimate. When using product_id, only product_id + quantity are needed -- the API auto-fills name, cost, and price from the product catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Estimate ID | |
| item | No | Item name | |
| name | No | Display name | |
| quantity | No | Quantity | |
| price | No | Price | |
| cost | No | Cost | |
| product_id | No | Product ID | |
| upc_code | No | UPC code | |
| discount_percent | No | Discount % | |
| taxable | No | Whether taxable | |
| tax_rate_id | No | Tax rate ID | |
| position | No | Sort position |
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 using product_id auto-fills name, cost, and price, which is useful behavioral info. However, it omits details on error conditions, idempotency, or prerequisites like estimate existence.
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 sentences, front-loaded with purpose followed by a key usage detail. 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 12 parameters and no output schema, the description covers the main behavioral nuance (product_id auto-fill) but lacks mention of return values, error handling, or prerequisites. 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%. The description adds meaning beyond schema by explaining that product_id + quantity are sufficient and that the API auto-fills associated fields, clarifying parameter relationships.
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 'Add a line item to an estimate', specifying the verb and resource. It distinguishes from sibling tools like estimates_delete_line_item by context and provides specific behavior with product_id.
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 a clear usage tip for product_id scenario, but does not explicitly state when to use this tool versus other add_line_item tools. However, the entity name disambiguates among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimates_convert_to_invoiceB
Convert an estimate to an invoice
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Estimate ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits. Without annotations, it fails to explain side effects (e.g., whether the original estimate is updated or marked as converted), reversibility, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that accurately conveys the tool's purpose 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 the tool's simplicity (one parameter, no output schema), the description is somewhat adequate but lacks essential context such as what happens after conversion and any constraints, leaving gaps for the 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% coverage, describing the 'id' parameter as 'Estimate ID'. The description adds no extra meaning beyond the schema, so baseline score 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 an estimate to an invoice'. It specifies the verb and both resources involved, distinguishing it from sibling tools like estimates_create or invoices_create.
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 creating an invoice from scratch. The description lacks any context about 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.
estimates_createA
Create a new estimate. Note: line_items array in the create body is IGNORED by the API -- add line items via estimates_add_line_item after creation.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID (required) | |
| name | No | Estimate name | |
| number | No | Estimate number | |
| date | No | Date | |
| note | No | Note | |
| status | No | Status: Fresh, Draft, Approved, Declined | |
| ticket_id | No | Associated ticket ID | |
| location_id | No | Location ID | |
| line_items | No | Array of line item objects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It truthfully reveals that the API ignores the line_items parameter, which is a critical behavioral trait beyond typical create operations. It does not cover auth, idempotency, or side effects, but the main non-obvious behavior is 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, no fluff. The purpose is front-loaded, and the critical caveat follows immediately. 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 tool's complexity (9 params, 1 required) and no output schema, the description adequately covers the main purpose and the key behavioral note. It does not describe return values, but the purpose is straightforward.
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 the baseline is 3. The description adds significant meaning by warning that the line_items array is ignored, which is not covered in the schema. This extra context elevates the 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 creates a new estimate, immediately followed by a crucial caveat about the line_items parameter being ignored. This verb+resource combination is specific and distinguishes from siblings like estimates_add_line_item.
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?
Explicitly tells the agent that line_items in the create body are ignored and directs to use estimates_add_line_item after creation. This provides clear when-to-use and when-not-to-use guidance, with a named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimates_deleteA
DELETE an estimate permanently. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Estimate ID | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It states the action is permanent and requires confirmation, which is adequate but lacks details on irreversibility or authorization needs.
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, well-structured sentence that front-loads the action and key requirement, with 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 tool's simplicity (2 parameters, no output schema), the description is minimally viable but omits explicit mention of irreversibility or effects on related data.
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, and the description adds no further meaning beyond what is already 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 verb 'DELETE' and the resource 'estimate', and highlights permanence. This distinguishes it from other estimate-related tools like 'estimates_create' or 'estimates_list'.
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 only mentions that user confirmation is required, but provides no guidance on when to use this tool versus alternatives (e.g., if the estimate is already converted to invoice).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimates_delete_line_itemB
Delete a line item from an estimate. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Estimate ID | |
| line_item_id | Yes | Line item ID | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given the absence of annotations, the description carries the full burden for behavioral disclosure. It notes the confirmation requirement, which is a key behavioral trait. However, it does not disclose whether deletion is irreversible, what happens to associated data, or any side effects. The description adds modest value beyond the 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?
The description is extremely concise: two sentences, no fluff. The critical action and constraint are front-loaded. 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?
The tool has 3 required parameters, no output schema, and no annotations. The description is minimal and lacks context about error scenarios, return values, or usage boundaries. Given the complexity of deletion, the description fails to provide sufficient completeness for an agent to use it without further guidance.
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 descriptions. The description reinforces the 'confirmed' parameter's purpose ('Must be true'), but adds little beyond what the schema already states. The baseline is 3 due to full schema coverage, and the description does not elevate beyond that.
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 (Delete), resource (a line item from an estimate), and adds a critical constraint (user MUST confirm). It effectively distinguishes from sibling tools like estimates_add_line_item and estimates_update_line_item.
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 fails to provide guidance on when to use this tool versus alternatives. It does not mention prerequisites, consequences, or when not to use it. The only guideline is the confirmation requirement, which is more of a parameter constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimates_emailC
Email an estimate to the customer
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Estimate ID |
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 only says 'email an estimate' without explaining side effects (e.g., marks estimate as sent, logs email, triggers notifications) or idempotency. The agent lacks insight into what happens when the tool is invoked.
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 (six words) and front-loads the core action. However, it may be too terse, omitting important context that could justify a slightly longer description. Every word earns its place, but the brevity sacrifices completeness.
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 is a mutation (sends an email) with no output schema and no annotations, the description is insufficient. It does not mention prerequisites, expected behavior, error conditions, or post-conditions. The agent lacks enough context to use the tool correctly or handle failures.
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 covers the single parameter 'id' with a description ('Estimate ID'), achieving 100% schema coverage. The description does not add any additional information about the parameter beyond what is already in the schema, resulting in no 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 states the action ('email') and the resource ('estimate to the customer'). It distinguishes from siblings like 'estimates_print' (print) and 'estimates_convert_to_invoice' (convert). However, it could be more specific about what 'email' entails (e.g., sending via default template to the customer's email).
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 'estimates_print' or 'invoices_email'. There is no mention of prerequisites (e.g., estimate must exist, customer must have email) or conditions (e.g., estimate must be in a certain status).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimates_getB
Get a single estimate by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Estimate ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description merely states 'Get', implying read-only, but does not disclose error handling, authentication, or any side effects. Lacks behavioral depth.
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, concise, and to the point. 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 get-by-ID operation, the description is minimally adequate but lacks return value details and error conditions. Could be more 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?
Parameter 'id' is fully described in schema (100% coverage). 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?
Clearly states verb 'Get', resource 'estimate', and identifier 'by ID'. Distinguishes from sibling tools like 'estimates_list' which returns multiple.
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., 'estimates_list'). No mention of prerequisites or typical usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimates_listB
List estimates with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status (Fresh, Draft, Approved, Declined) | |
| customer_id | No | Filter by customer ID | |
| created_after | No | Return estimates created after this date (e.g., '2026-02-25') | |
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It does not mention read-only nature, pagination, default sorting, or result limits. Only the presence of a 'page' parameter hints at pagination, but this is not explained.
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 (5 words) and front-loaded. It could be slightly more informative without losing brevity, but it is not 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?
Given the tool has 4 optional parameters, no output schema, and no annotations, the description is insufficient. It omits details on pagination behavior, result ordering, and what happens when no filters are applied.
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?
All 4 parameters have descriptions in the input schema, so baseline is 3. The 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 action ('List estimates') and the resource ('estimates'), and mentions optional filters. It is specific and distinguishable from sibling tools like estimates_get which retrieves a single 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?
No guidance is provided on when to use this tool versus alternatives (e.g., estimates_get for a single estimate). The description does not mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimates_printB
Generate a printable PDF for an estimate
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Estimate ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description lacks details on side effects, return format, or required permissions for generating a PDF.
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, front-loaded with verb and resource, no extraneous 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-parameter tool, the description is minimal but lacks details about the output (e.g., file download, URL) and whether it's a synchronous 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% and the parameter 'id' is described but the description adds no additional 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 the specific action 'Generate a printable PDF' for the resource 'estimate', distinguishing it from related tools like estimates_get or estimates_list.
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., estimates_email or invoices_print) or any prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimates_updateB
Update an existing estimate
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Estimate ID (required) | |
| customer_id | No | Customer ID | |
| name | No | Estimate name | |
| number | No | Number | |
| date | No | Date | |
| note | No | Note | |
| status | No | Status: Fresh, Draft, Approved, Declined | |
| ticket_id | No | Ticket ID | |
| location_id | No | Location ID |
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 'Update', which implies mutation, but does not specify partial update behavior, error handling (e.g., if ID not found), or required permissions. This is insufficient for a mutation 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 a single sentence, which is concise but lacks structure for a tool with 9 parameters. It could benefit from additional context while remaining focused.
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 (9 parameters, no output schema, no annotations), the description is too minimal. It does not explain that only provided fields are updated or what the response looks like. This leaves gaps 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% coverage with descriptions for all 9 parameters. The description adds no additional meaning 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 'Update an existing estimate' clearly states the action (update) and the resource (estimate). It distinguishes itself from sibling tools like estimates_create and estimates_delete, which have 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?
The description provides no explicit guidance on when to use this tool versus alternatives like estimates_add_line_item. It is implied that this is for updating estimate fields, but no prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimates_update_line_itemC
Update a line item on an estimate
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Estimate ID | |
| line_item_id | Yes | Line item ID | |
| item | No | ||
| name | No | ||
| quantity | No | ||
| price | No | ||
| cost | No | ||
| discount_percent | No | ||
| taxable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavior. It only states 'update', implying mutation, but lacks details on error handling, side effects, return values, or authorization 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?
The description is a single sentence with no wasted words, but it lacks essential details. It is concise but at the expense of completeness.
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, no output schema, and no annotations, the description is insufficient. It does not explain optional fields, update behavior, or return value, leaving significant 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 only 22%, with only id and line_item_id described. The description adds no explanation for the other 7 parameters (item, name, quantity, price, cost, discount_percent, taxable), failing to compensate for the low 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 (update) and the resource (line item on an estimate). It effectively differentiates from sibling tools like estimates_add_line_item and estimates_delete_line_item. However, it could be more specific by listing which fields can be updated.
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 estimates_update (which updates the estimate header). No prerequisites or conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_add_line_itemA
Add a line item to an invoice. When using product_id, only product_id + quantity are needed -- the API auto-fills name, cost, and price from the product catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID | |
| item | No | Item name | |
| name | No | Display name | |
| quantity | No | Quantity | |
| price | No | Price per unit | |
| cost | No | Cost per unit | |
| product_id | No | Product ID | |
| upc_code | No | UPC code | |
| discount_percent | No | Discount percentage | |
| taxable | No | Whether taxable | |
| tax_note | No | Tax note | |
| tax_rate_id | No | Tax rate ID | |
| user_id | No | User ID | |
| position | No | Sort position | |
| product_category | No | Product category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that when product_id is used, it auto-fills name, cost, and price, which is beyond basic schema. However, it does not mention side effects like updating total, permission requirements, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence states the purpose, second provides a key usage tip. Efficient and 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 has 15 parameters and no output schema, the description is reasonably complete. It covers the primary use case and the auto-fill behavior. However, it lacks information about the return value or result of the operation, which would be helpful since no output schema is provided.
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 already documented. The description adds value by explaining that product_id+quantity is sufficient and triggers auto-fill, providing workflow guidance 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 adds a line item to an invoice, which is a specific verb+resource combination. It distinguishes itself from sibling tools like invoices_delete_line_item or estimates_add_line_item by being invoice-specific.
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 hints at a usage pattern (using product_id to auto-fill) but does not provide explicit guidance on when to use this tool versus other add_line_item tools for different entities (estimates, tickets, scheduling). No when-not-to-use or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_createA
Create a new invoice. Note: line_items in the create body are IGNORED by the API -- add line items via invoices_add_line_item after creation.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID (required) | |
| date | No | Invoice date | |
| due_date | No | Due date | |
| number | No | Invoice number | |
| ticket_id | No | Associated ticket ID | |
| location_id | No | Location ID | |
| po_number | No | PO number | |
| contact_id | No | Contact ID | |
| note | No | Invoice note | |
| hardwarecost | No | Hardware cost | |
| line_items | No | Array of line item objects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully shoulders behavioral disclosure. It reveals the critical behavior that line_items are ignored by the API, a fact not evident from the schema. This transparency exceeds expectations.
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 unnecessary words. The first sentence states the purpose, and the second delivers the essential caveat. Perfectly 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?
For a creation tool with 11 parameters and no output schema, the description covers the most critical behavioral nuance (line items). However, it does not mention return values or other potential pitfalls, which slightly reduces completeness. Still, the description is largely adequate given the rich 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 schema covers all 11 parameters with descriptions (100% coverage), but the description adds critical meaning by warning that line_items are ignored, which is not reflected in the schema's description of that parameter. This adds significant value 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 explicitly states 'Create a new invoice' with a clear verb and resource. It distinguishes itself from sibling tools like invoices_add_line_item by noting that line_items are ignored during creation, 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?
Provides explicit guidance on when to use this tool (create an invoice) and what not to do (include line_items in the body). It directs users to use invoices_add_line_item after creation, which is an excellent example of when-not-to and alternative tool usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_deleteA
DELETE an invoice permanently. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID | |
| confirmed | Yes | Must be true to confirm deletion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes the permanent and destructive nature of the action and the required confirmation, but lacks details on side effects, error conditions, or permissions needed.
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 filler; the verb and resource are first, making it immediately clear what the tool does.
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 delete with 2 parameters, the description is adequate but could be improved by noting irreversibility, expected response, or prerequisite 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?
The description adds context beyond the schema by emphasizing the confirmation requirement ('the user MUST confirm'), which reinforces the role of the 'confirmed' 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 'DELETE an invoice permanently' with a specific verb and resource, distinguishing it from siblings like invoices_update or invoices_delete_line_item.
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 the crucial guideline that the user must confirm deletion, but does not explicitly state when not to use this tool or mention alternatives like archiving.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_delete_line_itemB
Delete a line item from an invoice. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID | |
| line_item_id | Yes | Line item ID | |
| confirmed | Yes | Must be true to confirm deletion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only states the destructive nature and confirmation requirement, lacking details on authorization needs, undoability, 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 sentences with no wasted words: first sentence states the action, second adds the key requirement. 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?
For a simple deletion tool with full schema coverage and no output schema, the description covers the essential behavior and confirmation need, though could mention post-deletion effects (e.g., invoice recalculation).
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 well-described parameters; the description only reinforces the 'confirmed' parameter without adding new 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 the verb 'Delete' and the resource 'a line item from an invoice', distinguishing it from sibling tools like invoices_add_line_item and invoices_delete.
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 the need for user confirmation, but does not provide guidance on when to use this tool versus alternatives (e.g., updating a line item instead) or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_emailC
Email an invoice to the customer
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description offers no behavioral details beyond the action itself. It does not disclose side effects (e.g., status changes, permissions needed).
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 single sentence, but it is appropriately short for a simple tool. Could benefit from slightly more detail 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?
Given the simplicity, the description is incomplete. It fails to mention post-email effects, error conditions, or output format. The lack of annotations exacerbates the 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 coverage is 100% for the single parameter, so the description does not need to add much. However, the description adds no extra meaning beyond the schema's 'Invoice ID'.
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 (email) and the resource (invoice to customer). It is specific, but does not differentiate from the sibling 'estimates_email'.
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 like 'invoices_print' or prerequisites. The description is silent on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_getA
Get a single invoice by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It implies a read-only operation but does not explicitly confirm absence of side effects or mention authorization needs. For a simple retrieval, 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 at 7 words in a single sentence. No unnecessary information, perfectly front-loaded with the essential action and resource.
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 retrieval tool with one parameter and no output schema, the description covers the essential information. It could mention that the full invoice details are returned, but not strictly necessary given the tool'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?
The single parameter 'id' is fully described in the schema with type and description. The description adds no additional meaning beyond 'by ID', which is already clear from the schema. Baseline 3 for high schema 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 ('Get'), the resource ('a single invoice'), and the identifier method ('by ID'). It effectively distinguishes this tool from siblings like invoices_list or invoices_get_ticket.
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. Implied usage from the description, but no explicit context for when to choose invoices_get over other invoice-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_get_ticketC
Get the ticket associated with an invoice
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID |
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 permissions, error handling (e.g., what if no ticket exists), or side effects. The minimal description fails to convey important 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 (one sentence) and front-loaded. However, it could be slightly more informative without significantly increasing 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 simplicity of the tool (one parameter, no output schema), the description covers the basic purpose. However, missing details about return format, error cases, and any related notes reduce 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 a single parameter 'id' described as 'Invoice ID'. The description does not add additional meaning beyond the schema, so 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 retrieves a ticket linked to an invoice, using a specific verb ('Get') and resource ('ticket associated with an invoice'). However, it does not differentiate from sibling tools like invoices_get or tickets_get, which could cause confusion.
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., invoices_get, tickets_get). The description lacks context about prerequisites or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_listB
List invoices with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| paid | No | Filter paid invoices only | |
| unpaid | No | Filter unpaid invoices only | |
| ticket_id | No | Filter by ticket ID | |
| since_updated_at | No | ISO 8601 date - invoices updated after this date | |
| page | No | Page number |
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 only says 'List invoices with optional filters' and fails to mention pagination, ordering, or whether the response is summaries or full objects. The behavioral impact is under-specified.
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 with no fluff. However, it is slightly under-specified, which reduces the score from 5 to 4.
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 5 parameters, no output schema, and no annotations, the description lacks completeness. Missing details on pagination, ordering, and return format make it insufficient for full understanding without further exploration.
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 no additional meaning beyond the schema's parameter descriptions. It simply restates 'with optional filters'.
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 'invoices' with optional filters. It accurately reflects the tool's function and distinguishes it from sibling tools like invoices_get (single) and invoices_create.
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 vs alternatives like invoices_get_ticket or invoices_list. No usage context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_printB
Generate a printable PDF for an invoice
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Minimal behavioral context beyond the action. Does not describe return format (e.g., file URL or binary), side effects (e.g., logging), or required permissions. No annotations to compensate.
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 concise sentence with no filler. Front-loaded with the key action and resource. Could be slightly improved by mentioning output, but efficient overall.
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 the basic purpose but missing output format (e.g., returns PDF file) and preconditions (invoice must exist). Incomplete for a tool with no annotations or 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 for 'id' is 'Invoice ID', which is clear. Description adds no additional detail. With 100% schema coverage, 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 'Generate a printable PDF for an invoice' clearly states the tool's action (generate PDF) and resource (invoice). It distinguishes from siblings like invoices_get (returns JSON) and invoices_email (sends email).
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 that it should be used only after an invoice exists, nor contrasts with other invoice actions (e.g., create, update).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_updateB
Update an existing invoice
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID (required) | |
| customer_id | No | Customer ID | |
| date | No | Invoice date | |
| due_date | No | Due date | |
| number | No | Invoice number | |
| ticket_id | No | Ticket ID | |
| location_id | No | Location ID | |
| po_number | No | PO number | |
| contact_id | No | Contact ID | |
| note | No | Invoice note | |
| hardwarecost | No | Hardware cost |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description merely says 'update'. It does not disclose whether the update is partial or full, if it triggers side effects, or if it is idempotent. Significant gaps in 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 very short (one sentence), which might be considered insufficient given the tool's 11 parameters. While not verbose, it could be more structured to include 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?
For a tool with 11 parameters and no output schema or annotations, the description is too brief. It lacks details on return values, side effects, or usage context, making it 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 description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it simply says 'update an existing invoice' without elaborating on 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 'Update an existing invoice' clearly states the action (update) and resource (invoice), distinguishing it from sibling tools like invoices_create or invoices_delete.
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 invoices_create or invoices_update_line_item. The description lacks any context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoices_update_line_itemB
Update a line item on an invoice
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Invoice ID | |
| line_item_id | Yes | Line item ID | |
| item | No | Item name | |
| name | No | Display name | |
| quantity | No | Quantity | |
| price | No | Price | |
| cost | No | Cost | |
| discount_percent | No | Discount % | |
| taxable | No | Whether taxable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description says 'update' implying mutation, but does not disclose side effects, required permissions, or error handling. For a tool with 9 parameters (2 required), more behavioral context is needed.
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, concise and front-loaded with the action. Could include more useful info without being verbose.
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?
No output schema, no annotations, and only a generic description. For a tool with 9 parameters and many similar siblings, it lacks completeness regarding return values and special behaviors.
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 description does not add parameter-specific meaning 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 'Update a line item on an invoice' clearly states the action (update) and resource (line item on invoice). It is specific and distinguishes from sibling tools like invoices_add_line_item and invoices_delete_line_item.
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 tickets_update_line_item or estimates_update_line_item. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leads_createB
Create a new lead. Note: leads have no DELETE endpoint. To soft-delete, use leads_update with disabled=true.
| Name | Required | Description | Default |
|---|---|---|---|
| first_name | No | First name | |
| last_name | No | Last name | |
| business_name | No | Business name | |
| No | |||
| phone | No | Phone | |
| mobile | No | Mobile | |
| address | No | Address | |
| city | No | City | |
| state | No | State | |
| zip | No | ZIP | |
| status | No | Status | |
| ticket_subject | No | Ticket subject | |
| ticket_description | No | Ticket description | |
| ticket_problem_type | No | Problem type | |
| hidden_notes | No | Hidden notes | |
| user_id | No | Assigned user ID | |
| customer_id | No | Existing customer ID | |
| contact_id | No | Contact ID | |
| location_id | No | Location ID | |
| opportunity_amount_dollars | No | Opportunity amount in dollars | |
| likelihood | No | Likelihood (0-100) | |
| opportunity_start_date | No | Opportunity start date | |
| appointment_time | No | Appointment time | |
| appointment_type_id | No | Appointment type ID | |
| properties | No | Custom field values | |
| ticket_properties | No | Ticket custom field values |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions the lack of a DELETE endpoint but does not disclose any other behavioral traits such as side effects, required permissions, return value, or error handling. This is insufficient for a create 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: one stating the purpose and one adding a critical note about deletion. It is concise, front-loaded, and contains no unnecessary 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 has 26 parameters, no required fields, no output schema, and a note about deletion, the description lacks essential behavioral details such as what happens on success, duplicate handling, or any constraints. It is incomplete for a complex 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 description coverage is 100% with all 26 parameters having individual descriptions. The tool description does not add any extra meaning beyond the schema, so the 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 'Create a new lead,' which is a specific verb+resource combination. It distinguishes from siblings by noting the absence of a DELETE endpoint and suggesting leads_update for soft-delete, but does not explicitly differentiate from leads_get or leads_list.
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 clear action (create) and a warning about deletion with an alternative (leads_update), which gives some usage context. However, it does not specify when to use this tool versus other sibling tools like leads_list or leads_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leads_getA
Get a lead by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Lead ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, error handling, or authentication requirements. It adds no value beyond the basic 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 a single sentence, directly to the point, with no wasted words. It is appropriately sized for the tool's simplicity.
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 'get by ID' tool with one parameter and no output schema, the description is adequate but lacks information about the return structure or any edge cases. It is minimally 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?
The input schema has 100% coverage with a description for the 'id' parameter. The tool description adds no additional meaning beyond the schema, so it meets the baseline 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 'Get a lead by ID' clearly states the action (Get), the resource (a lead), and the method (by ID). It effectively distinguishes from sibling tools like leads_create, leads_list, and leads_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?
The description implies usage when a specific lead ID is known but provides no explicit guidance on when to use or when not to use, nor does it mention alternatives. It is minimally adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leads_listC
List leads/opportunities
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full responsibility. It only states 'List leads/opportunities' without mentioning pagination, sorting, or any behavioral traits.
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. Could arguably be too terse, but it is concise and 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?
Given the simplicity (1 param, no output schema), the description is incomplete. It doesn't explain if it returns all leads, supports filtering, or pagination behavior.
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% (one parameter 'page' described). The tool description adds no additional meaning beyond the schema, so a 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 lists leads/opportunities, which is specific and distinguishes it from leads_create, leads_get, etc. However, it could be more precise (e.g., 'all leads' vs 'filtered').
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., leads_get for a single lead). The description lacks context on filtering or pagination.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leads_updateC
Update an existing lead
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Lead ID (required) | |
| first_name | No | ||
| last_name | No | ||
| business_name | No | ||
| No | |||
| phone | No | ||
| mobile | No | ||
| address | No | ||
| city | No | ||
| state | No | ||
| zip | No | ||
| status | No | ||
| converted | No | ||
| disabled | No | ||
| hidden_notes | No | ||
| user_id | No | ||
| opportunity_amount_dollars | No | ||
| likelihood | No | ||
| properties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Update an existing lead' without disclosing behavioral traits such as partial update behavior, return value, required permissions, 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?
The description is a single sentence with no fluff, but it is too minimal for a tool with 19 parameters and nested objects, sacrificing essential 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 complexity of 19 parameters, nested objects, no output schema, and no annotations, the description is severely incomplete, lacking details on usage, parameters, and behavior.
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?
With only 5% schema description coverage, the description adds no additional meaning beyond the schema, leaving 19 parameters mostly unexplained.
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 the resource ('lead'), distinguishing it from sibling tools like leads_create, leads_get, and leads_list.
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 updating an existing lead but provides no explicit guidance on when to use this versus alternatives or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payments_createC
Record a payment. Use apply_payments to distribute a payment across multiple invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID (required) | |
| invoice_id | No | Invoice ID | |
| invoice_number | No | Invoice number | |
| amount_cents | No | Amount in cents | |
| payment_method | No | Payment method | |
| ref_num | No | Reference number | |
| address_street | No | Billing street | |
| address_city | No | Billing city | |
| address_zip | No | Billing ZIP | |
| register_id | No | Register ID | |
| signature_name | No | Signature name | |
| apply_payments | No | Object where keys are invoice IDs and values are amounts in cents. Distributes payment across multiple invoices. Example: { "456": 3000, "789": 2000 } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral details are provided beyond the minimal 'Record a payment'. There is no mention of side effects, required permissions, idempotency, or error handling. With no annotations, the description carries the full burden but fails to disclose key behaviors.
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 short (two sentences) and concise. However, the second sentence introduces confusion by referencing an external tool that conflicts with the schema, reducing the effectiveness of the 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 tool with 12 parameters, a nested object, and no output schema, the description is severely incomplete. It does not explain the return value, validation constraints, or the relationship between the fields, leaving the agent with insufficient context.
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 covers all 12 parameters with descriptions, achieving 100% coverage. The description does not add any additional meaning beyond what the schema provides, so it meets the baseline but does not improve 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 states 'Record a payment', which is a clear verb+resource. However, it then says 'Use apply_payments to distribute a payment across multiple invoices', which contradicts the input schema that includes an 'apply_payments' parameter for distribution. This creates confusion about the tool's actual scope.
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 only mentions one alternative (apply_payments) but does not clarify when to use this tool versus other payment-related siblings like payments_list or payments_get. No guidance on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payments_create_profileB
Create a stored payment profile for a customer
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID | |
| customer_external_id | No | Payment gateway customer token | |
| payment_profile_id | No | Payment gateway profile token | |
| expiration | No | Expiration date | |
| last_four | No | Last 4 digits |
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 only states 'Create a stored payment profile' but does not disclose side effects, authentication needs, or behavior if profile already exists (e.g., idempotency).
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 that is concise and to the point. However, it may be too brief given the tool's complexity (5 parameters, no output schema), but it is not verbose.
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 5 parameters, no output schema, and no annotations, the description lacks completeness. It does not explain return values, required context (e.g., need a customer), or how it fits with sibling tools.
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 5 parameters. The description adds no extra meaning beyond the schema, meeting the baseline for high coverage 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 verb 'Create' and the resource 'stored payment profile for a customer', distinguishing it from siblings like payments_create (which creates a transaction) and payments_get_profile (which retrieves a 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?
No guidance on when to use this tool versus alternatives (e.g., payments_create vs. payments_create_profile), nor prerequisites or exclusions. Sibling tools exist but no usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payments_delete_profileA
Delete a payment profile. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID | |
| id | Yes | Profile ID | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose all behavioral traits. It only states it deletes a profile and requires confirmation, but omits critical details such as whether deletion is permanent, cascading effects, permissions needed, or error scenarios. This is insufficient 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 very concise with two short sentences, immediately stating the core action and a crucial user requirement. Every word earns its place; 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 no output schema and no annotations, the description is too sparse. It lacks information on return values, error handling, prerequisites (e.g., customer existence), or lifecycle implications (e.g., irreversible removal). The tool's simplicity does not excuse the omission of behavior beyond deletion.
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 minimal value beyond the schema descriptions ('Customer ID', 'Profile ID', 'Must be true') by reiterating the confirmation requirement. It does not clarify format, constraints, or relations between 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 verb 'Delete' and resource 'a payment profile,' distinguishing it from sibling tools like payments_create_profile or payments_update_profile. The addition 'The user MUST confirm' emphasizes a critical precondition, 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?
The description implies usage through the name and the requirement for confirmation, but it does not explicitly state when to use this tool versus alternatives like payments_update_profile. However, the clear verb-resource pairing and the sibling list provide adequate context for an AI agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payments_getA
Get a single payment by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Payment ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description indicates a read operation but does not disclose any additional traits such as potential null return or authentication requirements. For a simple getter, this is adequate but minimal.
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 with no wasted words. Every word is necessary and the description 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?
For a simple retrieval tool with one parameter and no output schema, the description is sufficiently complete. It clearly identifies the resource and the identifier needed.
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% (one parameter with a description). The tool description adds no additional meaning beyond what the schema already provides, so 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?
Description clearly states the tool gets a single payment by ID. The verb 'Get' and resource 'single payment by ID' distinguish it from sibling tools like payments_list (list) or payments_create (create).
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 vs alternatives. The description implies use when you have a specific payment ID, but does not state when not to use it or mention alternatives like payments_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payments_get_profileC
Get a payment profile by ID
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID | |
| id | Yes | Payment profile ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only states 'Get a payment profile by ID', which implies a read-only operation, but does not confirm safety, required permissions, or any side effects. This is insufficient for an agent to understand the tool's impact.
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 words. It is concise and front-loaded, but could include a brief note about required IDs without sacrificing brevity.
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 100% schema coverage, the description lacks information about the return value (since no output schema exists). An agent would benefit from knowing what data the profile contains or that it returns a single object. The description is too sparse for a complete understanding.
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 provides descriptions for both parameters (100% coverage), so the baseline is 3. The description does not add any extra meaning beyond what the schema already states, such as clarifying the relationship between customer_id and id or any 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 clearly states the tool retrieves a payment profile by ID, using a specific verb and resource. However, it does not explicitly distinguish from siblings like payments_list_profiles or payments_get, though the resource name 'profile' and 'by ID' hints at the distinction. A clearer differentiator would be helpful.
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 guidelines are provided on when to use this tool versus alternatives such as payments_list_profiles or payments_create_profile. The description does not include conditions, prerequisites, or exclusions, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payments_listC
List payments
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number |
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 beyond implying a read operation ('List'). It lacks details on pagination, rate limits, or data scope, which is critical for a read operation 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?
The description is extremely concise (two words) but lacks necessary detail. While no words are wasted, the brevity sacrifices clarity and completeness, which is not an ideal trade-off.
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 lack of output schema and the presence of many sibling tools, the description is insufficient. It does not explain what 'payments' means in this context, nor does it address pagination or result format, leaving 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?
The schema covers the single parameter 'page' with description 'Page number'. The description adds no additional meaning, but schema coverage is 100%, so a 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 'List payments' is overly vague. It does not specify the scope or type of payments (e.g., all payments, filtered, paginated). Sibling tools like payments_list_methods and payments_list_profiles indicate different listing contexts, but this description fails to distinguish itself.
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 description does not indicate when to use this tool over alternatives like payments_get or payments_list_methods, nor does it mention 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.
payments_list_methodsA
List available payment methods
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description is minimal. Fails to disclose behavioral traits such as read-only nature, authentication requirements, or rate limits. Bare minimum is not met for a tool with no annotation support.
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 succinct sentence that is front-loaded and contains zero wasted words. 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 list tool with no parameters or output schema, the description is adequate. Could benefit from clarifying what constitutes a 'payment method' or mention of read-only nature, but overall sufficient given low 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?
No parameters exist, and schema coverage is 100%. Description adds no parameter detail, but none is needed. Baseline of 3 is slightly elevated due to perfect schema coverage and zero params.
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 action 'List' and resource 'available payment methods', distinguishing it from sibling tools like payments_list and payments_create.
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 payments_list or payments_create. Context signals and sibling names imply purpose, but explicit usage instructions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payments_list_profilesA
List stored payment profiles for a customer
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It only states the basic action but omits behavioral details like read-only nature, authentication requirements, error handling for missing customer_id, or pagination.
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 a single, concise sentence with no redundant information. Every word is necessary.
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 list tool with one parameter and no output schema, description provides the core action but lacks details on return format, possible errors, or usage examples, leaving some 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 covers 100% of parameters (customer_id with description 'Customer ID'). Description adds no further semantic value beyond schema, so 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?
Description clearly states action ('List'), resource ('stored payment profiles'), and scope ('for a customer'). It distinguishes from siblings like payments_list (which lists payments) and payments_list_methods.
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 provides no guidance on when to use this tool versus alternatives. While purpose is clear, the agent must infer from context that this lists profiles, not payments or methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payments_update_profileC
Update a payment profile
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID | |
| id | Yes | Profile ID | |
| expiration | No | ||
| last_four | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description alone must disclose behavioral traits. It fails to mention whether the update is idempotent, what happens if the profile does not exist, or any side effects. This is a significant gap for a mutation 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 a single sentence with no fluff, achieving high efficiency. However, the extreme brevity sacrifices valuable detail, which prevents a perfect 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?
Given the lack of output schema and missing parameter descriptions, the description is insufficient for safe and correct use. It does not specify return values, error conditions, or what aspects of the profile can be updated, leaving critical gaps for the 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 50% (only customer_id and id have descriptions). The description does not explain the purpose of 'expiration' or 'last_four', nor does it add context beyond the schema. It should clarify what these fields represent in the context of updating a payment profile.
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 provides a clear verb ('Update') and resource ('a payment profile'), making the core purpose understandable. However, it does not distinguish from sibling tools like payments_create_profile or payments_delete_profile, relying solely on the verb for 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 given on when to use this tool versus alternatives (e.g., payments_create_profile for creation, or direct profile modification). The description lacks context such as prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
policies_create_folderA
Create a new policy folder under an existing parent folder. customer_id, name, and parent_id are all required -- folders cannot be created at the root level (the root folder is auto-created per customer). Use policies_list_folders first to find the root or desired parent folder ID.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID this folder belongs to (required) | |
| name | Yes | Folder name (required) | |
| parent_id | Yes | Parent policy folder ID (required) -- must belong to the same customer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the root folder constraint and that parent_id must belong to the same customer (also in schema). However, it does not discuss error conditions, idempotency, or side effects, leaving gaps 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?
Three sentences, efficiently front-loaded with the core purpose, no redundant information. Every sentence provides useful context.
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 creation tool with 3 required parameters and no output schema, the description covers prerequisites (use list_folders), constraints (no root creation), and parameter sourcing. Missing details on return value or success response, but otherwise 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 coverage is 100% with decent parameter descriptions. The description adds value by reinforcing required status, explaining the root folder constraint, and advising on how to obtain parent_id via policies_list_folders, which goes 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 'Create a new policy folder under an existing parent folder,' specifying the action, resource, and relationship. It distinguishes from siblings by mentioning root folder is auto-created and that folders cannot be created at root level, which is unique to folder creation.
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?
Explicitly advises to use policies_list_folders first to find the root or desired parent folder ID, providing clear when-to-use and alternative guidance. Also notes that all three parameters are required and that folders cannot be created at root level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
policies_delete_folderA
DELETE a policy folder permanently. The folder must not have child folders (422 otherwise). This action cannot be undone -- the user MUST confirm before executing this.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Policy folder ID to delete | |
| confirmed | Yes | Must be true to confirm deletion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry the burden. It discloses permanent deletion, the child folder constraint, and the requirement for confirmation. This is adequate for a delete 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?
Two concise sentences. The first states the action and constraint, the second emphasizes the irreversible nature and confirmation requirement. 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 no output schema and simple parameters, this description fully covers prerequisites, required action, and consequences. It is complete for the tool's purpose.
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 both parameters at 100%. Description adds context: the need for confirmation for the 'confirmed' parameter and a 422 error for 'id' if child folders exist, going 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 action: 'DELETE a policy folder permanently.' It also specifies the condition about child folders, distinguishing it from sibling tools like policies_update_folder or policies_create_folder.
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?
Explicitly says when to use (no child folders) and warns about irreversibility and the need for confirmation. Does not explicitly mention alternatives but provides sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
policies_get_folderA
Get a single policy folder by ID with full details.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Policy folder ID |
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 states 'with full details' but does not specify what those details include, nor does it mention side effects, permissions, or error conditions. This is minimal disclosure for a 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 one short sentence, front-loaded with the key action and resource. 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 get tool with one required parameter and no output schema, the description adequately covers what the tool does and how to specify the target. It lacks details on possible errors or return structure, but these are minor gaps given the tool's simplicity.
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, and the description adds no additional meaning beyond what is in the schema ('Policy folder ID'). Baseline score of 3 applies as the description does not compensate for or enhance 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 action (Get), the resource (policy folder), and the identifier (by ID). It distinguishes from sibling tools like policies_list_folders, policies_create_folder, etc., which have 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 implies usage for retrieving a single folder when you have its ID, but does not explicitly state when to use this tool versus alternatives like policies_list_folders or when not to use it. No exclusions or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
policies_list_foldersA
List policy folders for a customer. customer_id is required. Returns paginated results with each folder's parent_id, partial_policy_id (policy attached at this folder), and effective_policy_id (inherited policy).
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID whose policy folders to list (required) | |
| page | No | Page number | |
| per_page | No | Results per page (max 100) |
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 mentions pagination and the fields returned, which is adequate for a read-only list operation. It does not disclose any other behavioral traits like rate limits or authentication, but for a list tool this is acceptable.
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 short sentences, each adding valuable information: purpose, required parameter, and return value fields. No redundant or vague language. Ideal conciseness for an AI agent.
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 this is a simple list tool with pagination parameters and no output schema, the description completely explains what the tool does, what it requires, and what it returns. It is sufficient for an agent to understand and correctly invoke the 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 fully describes all three parameters (100% coverage). The description adds context about pagination and the return fields, but does not significantly enhance parameter understanding beyond what the schema already provides. 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 'List policy folders for a customer' which is a specific verb and resource. It also distinguishes itself from sibling tools (create, delete, get, update) by being the only list operation among folder-related 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 implicitly indicates usage for listing folders, but does not explicitly state when not to use it or mention alternatives. However, given the sibling tool names, an agent can infer when to use this vs. other folder operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
policies_update_folderA
Update an existing policy folder. Use this to rename, re-parent, or attach/detach a partial policy. Set partial_policy_id to null to detach the policy at this folder; the effective_policy_id then inherits from the parent.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Policy folder ID (required) | |
| name | No | New folder name | |
| parent_id | No | New parent folder ID (must belong to the same customer) | |
| partial_policy_id | No | Policy ID to attach at this folder, or null to detach |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explains key behavior: detaching policy by setting partial_policy_id to null and inheritance of effective_policy_id. Lacks details on error conditions or permissions, but covers main mutation 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?
Three sentences: purpose in first, use cases in second, parameter detail in third. Front-loaded and concise with 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 no annotations or output schema, description covers main functionality and the nuanced partial policy behavior. Minor gaps on response format or existence checks, but adequate.
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%, but description adds value by clarifying null usage for detach and inheritance behavior. Adds meaning beyond schema definitions.
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 updates an existing policy folder with specific actions: rename, re-parent, attach/detach partial policy. Distinguishes from siblings like create/delete/get/list.
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 specific use cases and detailed guidance for partial_policy_id parameter. Does not explicitly state when not to use, but context with siblings implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_add_imagesB
Add images to a product
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID | |
| files | Yes | Image URLs |
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 beyond the action. It fails to mention whether images are appended or replaced, or any side effects or authentication needs.
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 redundant information, making it highly concise and 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?
For a simple tool with two parameters and no output schema, the description is adequate but lacks context about success/error behavior. It could be improved with brief notes on constraints or expected outcomes.
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 explicit descriptions for both parameters. The description adds no additional meaning beyond the schema, 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 ('Add images') and the target ('a product'), using a specific verb and resource. It distinguishes from sibling tools like products_delete_image.
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., products_update for other modifications). No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_attach_serial_to_line_itemC
Attach serial numbers to a line item
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID | |
| record_type | No | Record type | |
| line_item_id | Yes | Line item ID | |
| product_serial_ids | Yes | Serial IDs |
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 'Attach', implying mutation, but provides no details on side effects (e.g., appending vs. replacing serials, inventory impact, record changes). This lack of transparency hinders the agent's ability to understand the tool's consequences.
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 with no fluff. However, it is too brief, sacrificing necessary context (e.g., which line item, serial numbers' origin). The structure is front-loaded but incomplete.
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 output schema, no annotations, and minimal parameter descriptions, the tool lacks crucial context. It does not explain what 'attach' means, the operation's return value, or which module(s) this applies to. Sibling tools suggest multiple line item types (invoices, purchase orders), but this is not clarified.
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?
Despite 100% schema coverage, parameter descriptions are tautological (e.g., 'Product ID' for product_id) and add no meaning beyond parameter names. The tool description does not clarify ambiguous parameters like 'record_type' (what types?). The descriptions fail to explain how parameters relate to the operation.
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 ('Attach serial numbers') and the resource ('line item'), providing a specific verb-resource pair. It distinguishes from sibling tools like products_create_serial (which creates serials) and admin_add_po_line_item (which adds line items). However, it does not specify the context (e.g., which module or line item type), leaving some ambiguity.
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. It does not mention prerequisites (e.g., existing serials, line item, product), or situations where this tool is not appropriate. The description solely states the action without any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_barcodeB
Look up a product by barcode/UPC
| Name | Required | Description | Default |
|---|---|---|---|
| barcode | Yes | Barcode/UPC value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It only says 'look up' without indicating what happens if the barcode is not found, whether the operation is read-only, or what side effects occur. This lack of disclosure makes behavioral expectations 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, concise sentence with no unnecessary words. While it is brief, it is appropriate for a simple tool and front-loads the purpose effectively.
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?
There is no output schema, so the description should provide hints about the return value (e.g., product details). It fails to do so, leaving the agent uncertain about what information will be retrieved after a successful lookup.
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 with a clear description for the barcode parameter. The tool description adds no extra meaning beyond the schema, so 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 (look up), the resource (product), and the method (by barcode/UPC). It effectively distinguishes this tool from other product-related tools like products_get (likely by ID) and products_list (list all).
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 a barcode is available, but it does not explicitly state when not to use this tool or provide alternatives such as products_get for ID-based lookups. Without this guidance, the agent may misuse the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_categoriesB
List product categories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only says 'list', disclosing no behavioral traits such as whether it returns all categories, pagination, sorting, or any 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?
A single sentence with no wasted words. While very minimal, it is appropriately concise for a simple listing endpoint.
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?
No output schema exists and the description does not explain what fields or data are returned for product categories. An agent lacks enough context to interpret usage 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?
Schema coverage is 100% (no parameters). The description does not add meaning beyond the empty 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 'list' and resource 'product categories'. It is specific enough to understand the tool's function, but does not distinguish it from sibling tools like products_list.
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. Usage is implied for retrieving product categories, but no exclusions or contextual cues are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_createA
Create a new product. Note: products have no DELETE endpoint -- use products_update with disabled=true instead. Custom properties on create may be ignored -- set via products_update after creation.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Product name (required) | |
| description | No | Description | |
| price_cost | No | Cost price | |
| price_retail | No | Retail price | |
| price_wholesale | No | Wholesale price | |
| condition | No | Condition | |
| maintain_stock | No | Track inventory | |
| quantity | No | Quantity in stock | |
| warranty | No | Warranty info | |
| reorder_at | No | Reorder threshold | |
| desired_stock_level | No | Desired stock level | |
| disabled | No | Disabled | |
| taxable | No | Taxable | |
| product_category | No | Category | |
| upc_code | No | UPC code | |
| discount_percent | No | Discount % | |
| notes | No | Notes | |
| physical_location | No | Physical location | |
| serialized | No | Serialized product | |
| vendor_ids | No | Vendor IDs | |
| category_ids | No | Category IDs |
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 discloses two key behavioral traits: products have no DELETE endpoint (deletion is simulated via update) and custom properties may be ignored on create. These are critical for agent decision-making. However, it does not mention what the response looks like, whether the operation is idempotent, or any validation constraints beyond the 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 concise sentences with no superfluous information. The first sentence states the primary action, and the second provides two critical warnings in parentheses. Every part 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 complexity (21 parameters) and the absence of an output schema, the description is incomplete: it does not explain what the response contains (e.g., created product ID), error conditions, or confirm that the creation is immediate. The provided warnings are valuable but do not cover the full context needed for reliable tool 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 description coverage is 100%, so the schema already explains all parameters. The description does not add additional meaning beyond the schema, except indirectly mentioning that custom properties may be ignored, which is not parameter-specific. 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 'Create a new product' and distinguishes from siblings by noting the absence of a DELETE endpoint and advising the use of products_update with disabled=true. It also warns about custom properties being ignored on create, which further differentiates the tool's purpose from similar create/update 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 provides explicit guidance on when to use this tool versus alternatives: it notes that there is no delete endpoint, so to disable a product one should use products_update instead. It also warns that custom properties may be ignored on create and should be set via update. However, it does not offer broader guidance on other use cases like when to use create vs update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_create_serialB
Create a serial number for a product
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID | |
| serial_number | Yes | Serial number (required) | |
| condition | No | Condition | |
| price_cost_cents | No | Cost in cents | |
| price_retail_cents | No | Retail in cents |
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. It does not disclose any behavioral traits such as uniqueness constraints, error conditions, or effects on existing data. For a creation tool, more transparency is needed.
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 (one sentence, 7 words). However, it lacks structure such as bullet points or sections. It could be expanded slightly 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?
With 5 parameters, no output schema, and no annotations, the description is too brief. It does not mention required parameters, expected behavior on duplicate serial numbers, or response format. More context is needed 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 coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the input schema provides. It does not explain parameter relationships or formats.
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 'Create' and the resource 'serial number for a product'. It distinguishes from sibling tools like 'products_create' (creating a product) and 'products_create_sku' (creating a SKU).
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. Sibling tools include 'products_attach_serial_to_line_item' and 'products_update_serial', but the description does not differentiate usage or provide prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_create_skuB
Create a SKU for a product
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID | |
| vendor_id | No | Vendor ID | |
| value | Yes | SKU value (required) |
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 'create', implying a write operation, but lacks details on side effects, idempotency, authentication requirements, or what happens on duplicate SKU.
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 wasted words. It efficiently communicates the action and resource.
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 create tool with no output schema, the description should explain return format or confirmation. It does not mention whether the created SKU is returned or what constitutes a successful creation. Sibling tools exist but no context is given.
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 clear parameter descriptions. The tool description adds no additional semantic value beyond what the schema already provides, 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 'Create a SKU for a product' uses a specific verb (create) and resource (SKU), and clearly associates it with products. This distinguishes it from sibling tools like products_update_sku and products_create_serial.
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. It does not mention conditions like product existence prerequisites, or contrast with products_update_sku for modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_delete_imageC
Delete an image from a product. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits. It mentions the user must confirm, which is already implied by the required 'confirmed' parameter in the schema. It does not disclose whether the operation is destructive, irreversible, or what other side effects (e.g., impacts on product data) occur.
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 only two sentences. Every word is necessary and there is no fluff. It is front-loaded with the 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 lack of an output schema and the ambiguity about which image is deleted, the description is incomplete. It does not clarify how the image is identified (e.g., by order, primary, or all images), leaving the agent with insufficient context 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?
Schema description coverage is 100%, with both parameters described. The tool description adds no extra meaning 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 states 'Delete an image from a product', which is a clear verb and resource. However, the parameter 'id' is specified as 'Product ID' in the schema, creating ambiguity about which image is deleted—there is no image identifier parameter, leaving the specific image unclear. This lowers the score as the resource is not fully distinguished.
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. Among siblings, there is 'products_add_images' but no other delete image tool, yet the description does not mention any context for use, such as 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.
products_getB
Get a product by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a read-only operation but does not disclose authentication needs, error behaviors (e.g., missing ID), or any 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 a single sentence with no fluff. It could benefit from slight expansion (e.g., mentioning the return value) but remains efficient for a simple tool.
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 output schema, no nested objects), the description is mostly adequate but leaves gaps about the returned product data and error handling.
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 schema already describes the 'id' parameter as 'Product ID'. The description adds no additional context beyond this, meeting the baseline 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 'Get a product by ID' clearly states the verb (Get) and resource (product by ID), distinguishing it from siblings like products_list (list all) and products_create (create).
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 products_list or products_get_serial. The description does not mention when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_listC
List products/inventory items
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'List products/inventory items.' It does not disclose behavioral traits like pagination, sorting, filtering, or rate limits, which are relevant for a list 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 a single sentence that earns its place. However, it could be more structured by adding key details upfront, such as pagination 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 the lack of annotations, output schema, and minimal input schema, the description is incomplete. It does not explain pagination defaults, response format, or how to handle large lists, which are essential for effective 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% (one parameter 'page' described as 'Page number'). The description adds no additional meaning beyond the schema, so 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 'List products/inventory items' clearly states the tool's function using a specific verb ('List') and resource ('products/inventory items'). It is distinguishable from sibling tools like products_get or admin_list_items, though it could be more precise about scope.
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 guidelines are provided. The description does not mention when to use this tool versus alternatives such as products_get (for a single product) or admin_list_items (for inventory), nor does it specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_list_serialsB
List serial numbers for a product
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only says 'list', but does not disclose if it is read-only, any rate limits, or whether it returns full serial objects or just identifiers.
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 and front-loaded. Seven words capture the core function without 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?
Lacks details on output format (e.g., array of strings or objects), pagination, or any sorting/ordering. No output schema is provided to compensate.
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?
Only one parameter 'product_id' with schema description 'Product ID'. The description adds no additional meaning beyond the schema, which already covers the parameter. Baseline 3 due to high schema 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?
Clearly states it lists serial numbers for a product. Distinguishes from sibling tools like 'products_list_skus' which lists SKUs, and 'products_create_serial' which creates a serial.
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 similar tools like 'products_get' or 'products_list_skus'. Missing context about prerequisites or usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_list_skusC
List SKUs for a product
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose any behavioral traits such as permissions needed, pagination, sorting, or what exactly is returned (e.g., full SKU objects or just 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, efficient sentence. It is front-loaded with the key action, though it could benefit from slightly more detail without becoming verbose.
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 list tool with one parameter and no output schema, the description is adequate but lacks information on return format or edge cases. It meets minimum viability.
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 description for product_id. The tool description adds no additional meaning beyond the schema, so baseline score 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 'List SKUs for a product' clearly states the action (list) and the resource (SKUs per product). It distinguishes from sibling tools like products_create_sku and products_update_sku, which are write 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?
No guidance on when to use this tool versus alternatives. With siblings for creating/updating SKUs, the description doesn't explicitly state that this is for reading or exclude other use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_updateC
Update a product
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID (required) | |
| name | No | ||
| description | No | ||
| price_cost | No | ||
| price_retail | No | ||
| price_wholesale | No | ||
| condition | No | ||
| maintain_stock | No | ||
| quantity | No | ||
| disabled | No | ||
| taxable | No | ||
| product_category | No | ||
| upc_code | No | ||
| notes | No | ||
| physical_location | No | ||
| vendor_ids | No | ||
| category_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'Update a product'. It does not disclose behavioral traits such as permission requirements, whether update is additive or replacing, or what the response contains.
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 short and front-loaded, but overly terse for a tool with 17 parameters. While concise, it sacrifices necessary 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 complexity (17 parameters, no output schema, no annotations), the description is severely incomplete. It does not explain what happens during update, required fields beyond id, or any 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 description coverage is only 6% (only 'id' has a description). The description adds no meaning for the remaining 16 parameters, leaving the agent without any guidance on their semantics or usage.
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 'Update a product' with a specific verb and resource. However, it does not differentiate from other product-related tools like products_update_location_qty or products_update_serial, which are also update 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?
No guidance is provided on when to use this tool versus alternatives such as specialized update tools (e.g., products_update_location_qty). The description lacks any context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_update_location_qtyC
Update product quantity at a location
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID | |
| location_quantity_id | Yes | Location quantity ID | |
| quantity | Yes | New quantity |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose side effects, permission requirements, or return behavior. 'Update' implies mutation but without further detail.
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 with one clear sentence. While it omits some details, it is appropriately 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?
Lacks information about return values, error handling, or prerequisites. For a simple mutation tool, the description should at least mention what the tool returns.
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. 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?
Clearly states the tool updates product quantity at a location, distinguishing it from general product update tools like products_update. However, it could be more specific about the context (e.g., stock management).
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 over alternatives such as products_update or products_update_serial. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_update_serialC
Update a product serial
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID | |
| id | Yes | Serial ID | |
| serial_number | No | ||
| condition | No | ||
| price_cost_cents | No | ||
| price_retail_cents | No | ||
| notes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'update'. It does not disclose whether the operation is destructive, idempotent, or requires specific permissions.
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 only two words, which is overly terse for a 7-parameter tool. It sacrifices necessary detail for brevity, making it insufficiently informative.
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 7 parameters, no output schema, and no annotations, the description is completely inadequate. It does not explain update scope, return values, or behavior.
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 low (29%). The description adds no parameter information beyond what the schema provides (which is minimal). No parameter descriptions are elaborated.
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 'Update a product serial' clearly states the verb and resource, distinguishing from sibling tools like 'create' and 'list'. However, it does not explicitly differentiate from siblings or specify scope beyond the name.
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, prerequisites, or when not to use it. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
products_update_skuC
Update a product SKU
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID | |
| id | Yes | SKU ID | |
| vendor_id | No | Vendor ID | |
| value | No | SKU value |
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 'Update' without detailing behavioral traits such as whether existing values are overwritten, validation rules, or side effects. This is insufficient for a mutation 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 a single, concise sentence. It is front-loaded and efficient, though it could be 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?
Given the tool has 4 parameters and no output schema, the description lacks essential context such as what the update entails, whether all fields can be updated, or return behavior. It is not complete enough for an agent to use reliably.
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 generic descriptions (e.g., 'Product ID'). The description adds no additional meaning beyond the schema, so 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 'Update a product SKU' clearly specifies the verb (Update) and resource (product SKU). It is direct and unambiguous, though it does not differentiate from sibling tools like products_create_sku or products_list_skus.
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 products_create_sku. There is no mention of prerequisites, when to use, 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.
rmm_create_alertA
Create an RMM alert. Note: formatted_output (not in swagger) populates the 'Details' field in the UI. description maps to the 'Type' field. Include properties with trigger and description keys to match real alert structure.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | No | Customer ID | |
| asset_id | No | Asset ID | |
| description | No | Alert description (maps to 'Type' field in UI) | |
| formatted_output | No | Populates the 'Details' field in UI (not in swagger docs) | |
| resolved | No | Whether resolved | |
| status | No | Status | |
| properties | No | Additional properties -- include trigger and description to match real alert structure |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist so description carries burden; it discloses field mappings but does not cover idempotency, auth, 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 sentences, front-loaded with purpose, 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 7 params, nested objects, and no output schema, the description clarifies key mappings and real-structure hints, though returns are not mentioned.
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 value by explaining UI mapping and hints for properties structure, exceeding mere schema repetition.
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 creates an RMM alert, but does not differentiate from sibling tools like rmm_mute_alert or rmm_delete_alert.
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 field mapping context (formatted_output, description, properties) but lacks explicit guidance on when to use this tool versus sibling alert tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rmm_delete_alertA
DELETE (soft-resolve) an RMM alert. Sets resolved=true -- the alert is still readable via GET after deletion. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Alert ID | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively discloses the soft-delete behavior (sets resolved=true, alert still readable) and the mandatory confirmation. This covers key behavioral traits beyond the 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?
The description is concise: two sentences with no fluff. The first sentence states the action, the second adds behavioral detail and a requirement. 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?
Given the tool's simplicity (2 required parameters, no output schema), the description covers purpose, behavior, and a usage requirement. It omits return values or error conditions, but is largely complete for the context.
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 minimal extra context by reinforcing that confirmed must be true and linking it to user confirmation, but does not significantly augment parameter 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 the action: DELETE (soft-resolve) an RMM alert. It specifies that it sets resolved=true and the alert remains readable via GET, distinguishing it from a hard delete or mute 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 implies usage when a soft-resolve is needed and explicitly requires user confirmation via the confirmed parameter. However, it does not explicitly state when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rmm_get_alertA
Get an RMM alert by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Alert ID |
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 of behavioral disclosure. It does not mention any behavioral traits such as read-only nature, required permissions, potential side effects, or return format. For a 'get' operation, it is typically safe, but the lack of explicit transparency leaves gaps.
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 of 5 words, perfectly concise with no redundant information. It is front-loaded and to the point.
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 get-by-ID tool, the description is minimally adequate. However, it lacks details about the response structure, error conditions, and any prerequisites. Without an output schema, the agent cannot know what to expect from the tool. It meets the bare minimum for understanding the tool's purpose.
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 'id', described as 'Alert ID'. The description adds no additional meaning beyond what the schema already provides. Baseline score of 3 is appropriate given high schema 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 'Get an RMM alert by ID' clearly states the verb (Get), the resource (RMM alert), and the key parameter (ID). It distinguishes itself from sibling tools like rmm_list_alerts, rmm_create_alert, rmm_delete_alert, and rmm_mute_alert by focusing on retrieval of a single item.
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. Usage is implied by the name and context from sibling tools, but no when-not or alternative tool names are mentioned. The description is minimal, leaving the agent to infer purpose from naming conventions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rmm_list_alertsC
List RMM alerts
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status | |
| created_after | No | Return alerts created after this date (e.g., '2026-02-25') | |
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It only states 'List RMM alerts' without describing any side effects, required permissions, rate limits, or what happens when no filters are applied. The minimal description adds no value beyond the tool name.
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 at one sentence, but it borders on tautological ('List RMM alerts' adds little over the name). It lacks substance and could be more informative without becoming verbose.
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 three optional parameters (status, created_after, page) and no output schema, the description should explain filtering behavior, pagination, or return format. It does not address these, leaving the agent uninformed about how to effectively use the 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%, so the input schema already documents all three parameters with descriptions. The tool description adds no additional semantics, but the baseline score of 3 is appropriate since the schema handles parameter meaning adequately.
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 ('List') and the resource ('RMM alerts'), and the tool name distinguishes it from sibling alert tools like rmm_create_alert and rmm_delete_alert. However, it does not explain what qualifies as an RMM alert or the scope of the 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?
No guidance is provided on when to use this tool versus alternatives. There are sibling tools like rmm_get_alert (for a single alert) and rmm_mute_alert, but the description does not differentiate when to list vs. get or mute. No mention of optional filters or pagination usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rmm_mute_alertB
Mute an RMM alert. Requires mute_for parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Alert ID | |
| mute_for | Yes | Mute duration (required). Known valid value: 'forever' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavioral traits. It only states 'Mute an RMM alert' without explaining side effects (e.g., whether the alert stops notifications, if it's reversible, or any impact on related records). The required mute_for parameter hints at duration but offers no clarity on behavior beyond the 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 very short (two sentences) with no wasted words. It front-loads the action and parameter requirement. However, it could be slightly more informative while remaining 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?
For a simple tool with 2 parameters and no output schema, the description is still under-specified. It fails to explain what 'mute' entails (e.g., effect on alert visibility, notification suppression, or persistence). The required mute_for parameter is mentioned but not elaborated, leaving the agent with insufficient context for proper 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%, so the baseline is 3. The description adds minimal value by repeating 'Requires mute_for parameter' and the known valid value 'forever' (already in schema). No additional semantics provided for either 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 action ('Mute') and the resource ('RMM alert'), making it distinct from sibling tools like rmm_create_alert, rmm_delete_alert, etc. It also mentions the required parameter, leaving no ambiguity about the basic 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?
No guidance on when to use this tool vs alternatives (e.g., when to mute vs delete an alert). It only notes the required mute_for parameter but provides no context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scheduling_add_line_itemB
Add a line item to a schedule. Note: pricing uses cents (retail_cents, cost_cents).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Schedule ID | |
| product_id | No | Product ID | |
| name | No | Item name | |
| description | No | Description | |
| quantity | No | Quantity | |
| retail_cents | No | Retail price in cents | |
| cost_cents | No | Cost in cents | |
| taxable | No | Taxable | |
| one_time_charge | No | One-time charge (not recurring) | |
| position | No | Sort position | |
| user_id | No | User ID | |
| recurring_type_id | No | Recurring type (1-6) |
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 notes that pricing uses cents, which is already in the schema. It does not mention side effects, idempotency, prerequisites, or what happens upon success/failure.
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 (2 sentences) and front-loaded with the action. It could be more informative without being verbose, but it is appropriately brief given the schema covers parameter 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?
For a tool with 12 parameters, no output schema, and no annotations, the description is too minimal. It does not explain the process, return values, error conditions, or prerequisites, leaving significant gaps for the 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 all 12 parameters. The description adds no additional meaning beyond the schema, as the 'cents' detail is already documented in the schema descriptions for retail_cents and cost_cents.
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 adds a line item to a schedule, with a specific verb (Add) and resource (line item) and target (schedule). It is distinguishable from sibling tools that operate on other entities (e.g., tickets_add_line_item, estimates_add_line_item).
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 versus alternatives, such as scheduling_update_line_item or scheduling_remove_line_item. The context of sibling names implies usage, but the description itself lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scheduling_createA
Create a recurring invoice schedule. Always create with paused=true to prevent auto-firing during setup. Note: invoice-side fields (invoice name, employee, template, billing terms, memo) are NOT settable via API.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID (required) | |
| name | No | Schedule name | |
| frequency | No | Frequency: Daily, Weekly, Biweekly, Monthly, Quarterly, Semi-Annually, Annually, Biennially, Triennially | |
| next_run | No | Next run date | |
| email_customer | No | Email customer | |
| snail_mail | No | Send physical mail | |
| charge_mop | No | Auto-charge payment method on file | |
| invoice_unbilled_ticket_charges | No | Include unbilled ticket charges | |
| paused | No | Pause schedule |
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 adds important behavioral details (paused recommendation, field limitations) but does not disclose other behaviors like side effects, permissions, or error states. This 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 extremely concise: two sentences with no wasted words. First sentence states purpose, second provides critical usage guidance and limitation. It is 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 tool has 9 parameters and no output schema, the description covers purpose, a key usage rule, and a notable limitation. It does not explain return values or error scenarios, but for a creation tool with high schema coverage, it is largely 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 coverage is 100%, so baseline is 3. The description does not add meaning to individual parameters beyond the schema, but it provides context about the paused parameter and invoice field restriction. This adds some value but does not significantly 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?
Description clearly states 'Create a recurring invoice schedule,' providing a specific verb and resource. It also adds critical usage guidance (paused=true) and a limitation (invoice-side fields not settable), distinguishing it from siblings like scheduling_update and scheduling_delete.
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 gives explicit usage rules: 'Always create with paused=true to prevent auto-firing' and notes what cannot be set ('invoice-side fields...NOT settable via API'). It implies when to use it but does not explicitly state alternatives, so a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scheduling_deleteA
DELETE a schedule. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Schedule ID | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It mentions deletion and confirmation but fails to specify irreversibility, effects on related data, authentication needs, or error handling. For a delete tool, 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 with only two short sentences, no filler, and front-loaded with the core action. Every sentence serves a 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 no output schema and no annotations, the description misses critical context such as return values, success/error responses, permissions, or side effects. A delete operation requires more completeness to guide the 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. The description adds minor emphasis on confirmation but does not provide additional semantics beyond the schema's 'Schedule ID' and 'Must be true' fields.
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 'DELETE a schedule' with a specific verb and resource. Among sibling scheduling tools, this is the only delete operation, making it easily distinguishable.
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 notes that 'The user MUST confirm', which is a critical usage requirement for this destructive action. However, it does not provide guidance on when to avoid using this tool or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scheduling_getC
Get a schedule by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Schedule ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must inform about behavior. It only states 'Get', which implies a read operation, but does not explicitly confirm read-only nature, permissions, or error conditions. The description adds no value beyond the obvious.
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 of only 5 words. It is concise but could include more detail without being verbose.
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 output schema), the description is minimally complete. However, it lacks context on when to choose this over scheduling_list and does not mention error handling or that it returns a single object.
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 'id' as 'Schedule ID'. The description does not add any additional meaning or context to the parameter, so 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 ('Get') and the resource ('schedule'), and specifies retrieval by ID. It is specific but lacks explicit differentiation from sibling tools like scheduling_list, which could list multiple schedules.
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 scheduling_list or scheduling_create. The description implies usage for retrieving a specific schedule by ID, but does not provide context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scheduling_listC
List recurring invoice schedules
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond the obvious list operation. With no annotations, the agent is left to assume read-only, but pagination, result limits, or ordering are not mentioned.
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 that conveys the core purpose. It is concise but could be improved with minimal additional context without becoming verbose.
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 simplicity of the tool (one parameter, no output schema), the description is adequate but incomplete. It doesn't explain expected output format or pagination behavior, which is important for a list endpoint.
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 'page' described as 'Page number'. The description adds no extra meaning beyond what the schema 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 the tool lists recurring invoice schedules, which is a specific action on a specific resource. It differentiates from sibling scheduling tools that perform other operations like create, update, delete.
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 filtering by status or date. No mention of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scheduling_remove_line_itemB
Remove a line item from a schedule. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Schedule ID | |
| line_item_id | Yes | Line item ID to remove | |
| confirmed | Yes | Must be true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states removal and confirmation, but fails to disclose side effects, prerequisites, or error handling. Heavily reliant on short text.
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 wasted words. Front-loaded with purpose, then critical user instruction.
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?
No output schema. Description fails to explain post-removal effects, return values, or failure scenarios. Incomplete for a simple removal 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?
Input schema has 100% coverage with clear descriptions. Description reinforces the 'confirmed' requirement (already in schema), adding minimal 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?
Explicitly states 'Remove a line item from a schedule', with specific verb and resource. Distinguishes from siblings like scheduling_add_line_item and scheduling_update_line_item, and from tickets_remove_line_item by 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?
Includes required confirmation ('user MUST confirm'), but no when-to-use or when-not-to-use guidance. Does not differentiate from similar tools like scheduling_add_line_item or tickets_remove_line_item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scheduling_updateC
Update a schedule
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Schedule ID (required) | |
| customer_id | No | ||
| name | No | ||
| frequency | No | ||
| next_run | No | ||
| email_customer | No | ||
| snail_mail | No | ||
| charge_mop | No | ||
| paused | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like whether updates are partial or full, idempotency, or side effects. The phrase 'Update a schedule' only implies mutation, without explaining if permissions are needed or if the operation can be undone.
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 (three words), but this is under-specification rather than conciseness. It does not add meaningful context beyond the function name, failing to earn 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 9 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return values, field constraints, or relationships to sibling tools like scheduling_get or scheduling_create.
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 only 11% (only the 'id' parameter has a description). The description adds no information about the other 8 parameters, such as 'name', 'frequency', or 'next_run'. It fails to compensate for the low schema 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 'Update a schedule' clearly indicates the verb (update) and the resource (schedule), distinguishing it from create, get, or delete operations. However, it does not specify what aspects of a schedule can be updated (e.g., fields like name or frequency), which limits full 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 about when to use this tool versus siblings like scheduling_update_line_item or scheduling_create. The description lacks context on prerequisites, such as requiring an existing schedule ID, or when updating is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scheduling_update_line_itemC
Update a line item on a schedule
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Schedule ID | |
| line_item_id | Yes | Schedule line item ID | |
| product_id | No | ||
| name | No | ||
| description | No | ||
| quantity | No | ||
| retail_cents | No | ||
| cost_cents | No | ||
| taxable | No | ||
| one_time_charge | No | ||
| position | No | ||
| recurring_type_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description only says 'Update' without any behavioral details. With no annotations, the description should disclose whether it's a partial update, side effects, or idempotency. The brief description fails to convey important behavioral traits.
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 with no wasted words. However, it is too brief and lacks structure; still, conciseness alone does not detract significantly.
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 (12 parameters, no output schema, no annotations), the description is severely incomplete. It does not explain return values, behavior, or usage constraints, leaving large gaps 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 only 17% (2 of 12 parameters have descriptions). The tool description adds no additional parameter information. For low coverage, the description should compensate but does not.
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 'Update a line item on a schedule'. The verb 'Update' and the resource 'line item on a schedule' are specific. It distinguishes from sibling tools like scheduling_add_line_item and scheduling_remove_line_item.
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. Sibling tools for adding/removing line items exist, but the description does not differentiate usage context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_add_line_itemA
Add a line item (product/service charge) to a ticket. Note: name and description are REQUIRED even when using product_id (unlike invoices/estimates which auto-fill from catalog).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID | |
| name | No | Line item name | |
| description | No | Line item description | |
| quantity | No | Quantity | |
| price_cost | No | Cost price | |
| price_retail | No | Retail price | |
| product_id | No | Product ID from inventory | |
| upc_code | No | UPC code | |
| taxable | No | Whether item is taxable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It reveals a key behavioral trait: name and description are always required even with product_id, unlike invoices/estimates. Missing details like effect on total, idempotency, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences. First defines purpose, second delivers crucial behavioral note. No redundancy or 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 no output schema and no annotations, the description provides enough context for a simple add operation. It covers purpose, key behavioral requirement, and contrast with siblings. Lacks mention of prerequisites (e.g., existing ticket) or return value, but overall adequate.
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, but the description adds critical nuance: name and description are effectively required despite not being in the schema's required array. This overrides the schema's requirement field and aids correct usage.
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 a line item' and specifies the target resource 'to a ticket'. It differentiates from similar tools for invoices/estimates by noting the required name/description 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?
Provides explicit context for when to use (adding line items to tickets) and contrasts with invoices/estimates, implying alternative tools. However, no explicit when-not-to-use or direct mention of sibling removal/update tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_add_timerA
Add a timer entry to a ticket for time tracking. Note: start_at is REQUIRED (API returns 422 without it). duration_minutes auto-calculates end_time from start_at.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID | |
| start_at | No | Start time (ISO 8601) - REQUIRED | |
| end_at | No | End time (ISO 8601) | |
| duration_minutes | No | Duration in minutes (alternative to start/end) | |
| user_id | No | User ID (defaults to current user) | |
| notes | No | Timer notes | |
| product_id | No | Product ID for billing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses required parameter and auto-calculation behavior. No annotations exist, so description carries full burden; missing details on side effects, permissions, or 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?
Two efficient sentences with no redundancy, front-loading the core action and key requirement.
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 for a simple addition tool with no output schema; could mention return value but not essential.
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 critical nuance: start_at is required (despite not marked required) and duration_minutes auto-calculates end_time.
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 'Add a timer entry to a ticket for time tracking'. Distinguishes from sibling timer tools like update and delete.
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 that start_at is required and that duration_minutes auto-calculates end_time. Lacks explicit comparison to sibling tools but provides actionable usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_attach_fileA
Attach a file to a ticket via URL
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID | |
| files | Yes | Array of file URLs to attach |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description provides minimal behavioral insight. It doesn't disclose side effects, idempotency, or error conditions, only stating the 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?
Single sentence, no unnecessary words. Efficiently communicates the tool's 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 tool with clear schema, the description is mostly adequate. Missing details like URL accessibility or file size limits are minor.
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 little beyond confirming the 'files' parameter is URLs (already clear from 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 action ('Attach'), resource ('file to a ticket'), and method ('via URL'). It distinguishes from sibling tools like tickets_delete_attachment.
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 vs. alternatives (e.g., tickets_comment). The description implies usage for attaching files via URL but lacks prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_blueprints_applyA
Create tickets from a Blueprint -- spawns the parent ticket and any child tickets defined by the blueprint, all assigned to the given customer. Returns { ticket_id, child_ticket_ids }.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Blueprint ID (required) | |
| customer_id | Yes | Customer ID the ticket(s) will be assigned to (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description adequately explains that it creates tickets and assigns them to a customer, but lacks details on side effects like automation triggers or permission requirements. It is sufficient for basic use 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 a single sentence that front-loads the action and includes the return structure. 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 tool's simplicity (2 parameters, no output schema), the description covers the core functionality and return value. It is complete enough for an agent to use, though it could mention that it relies on a predefined blueprint template.
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 both parameters have descriptions in the schema. The description adds minimal extra meaning beyond referencing customer assignment. Per the baseline, a 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 creates tickets from a blueprint, spawning parent and child tickets, and specifies the return value. It effectively distinguishes itself from sibling tools like tickets_create and tickets_blueprints_list by highlighting its batch creation behavior.
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 creating multiple tickets from a blueprint but does not explicitly state when to use this over alternatives (e.g., tickets_create for single tickets) or provide when-not scenarios. The context is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_blueprints_listA
List Ticket Blueprints available for ticket creation (hidden ones are excluded). Returns id, name, role, and children_count for each blueprint.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| per_page | No | Items per page (default 20, max 100) |
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 hidden blueprints are excluded and lists return fields. However, it does not mention pagination behavior (though implied by parameters), default sorting, or authentication requirements. This is adequate but not fully 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: first states purpose with a key constraint, second lists return fields. No filler words, front-loaded, and 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?
For a simple list tool with optional pagination parameters and no output schema, the description covers the core purpose, filter (hidden excluded), and returned fields. It could mention that results are paginated or default sorting, but overall it is sufficiently 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?
The schema already has 100% coverage with descriptions for both parameters (page and per_page). The 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 action ('List'), the resource ('Ticket Blueprints'), and the specific scope ('available for ticket creation, hidden ones are excluded'). It also lists the returned fields, distinguishing it from siblings like 'tickets_blueprints_apply' which applies a blueprint.
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 needing to view available blueprints for ticket creation, but it does not explicitly say when not to use it or mention alternatives (e.g., for all blueprints including hidden, a different tool might be needed). No guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_charge_timerB
Charge a timer entry on a ticket (convert to billable line item)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID | |
| timer_entry_id | Yes | Timer entry ID to charge |
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 mentions conversion to a billable line item, but lacks details on side effects (e.g., whether the timer is deleted, if it's idempotent, required permissions, or error cases).
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 wasted words. It is efficient, though could include slightly more context without becoming verbose.
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 many related sibling tools (e.g., tickets_add_timer, tickets_add_line_item) and the lack of an output schema, the description does not fully explain the operation's effect or what is returned. It leaves ambiguity about the 'conversion' process.
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 ('Ticket ID', 'Timer entry ID to charge'). The description adds no further 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 tool's action: 'Charge a timer entry on a ticket (convert to billable line item)'. It uses a specific verb ('Charge') and resource ('timer entry on a ticket'), distinguishing it from siblings like tickets_add_timer or tickets_delete_timer.
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 converting a timer to a billable item but does not provide explicit when-to-use or when-not-to-use guidance, nor alternatives among sibling tools like tickets_add_line_item or tickets_update_timer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_commentA
Add a comment to a ticket. Three comment modes: (1) Email reply: hidden=false, do_not_email=false sends email to customer. (2) Public note: hidden=false, do_not_email=true is visible on portal/invoice but no email sent. (3) Private note: hidden=true, do_not_email=true is tech-only and invisible to customer. Note: subject is REQUIRED or the API returns 422.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID | |
| subject | Yes | Comment subject (REQUIRED - API returns 422 without it) | |
| body | Yes | Comment body (required) | |
| tech | No | Technician name | |
| hidden | No | If true, comment is hidden from customer (private note) | |
| sms_body | No | SMS body text | |
| do_not_email | No | If true, do not send email notification to customer |
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 the required fields and the three modes, but it does not mention side effects, authentication needs, rate limits, or what the API returns. The core behavior is covered, but gaps remain.
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 no fluff, using a single paragraph. It front-loads the purpose and then enumerates modes. Could benefit from bullet points for the three modes, but it is still effective.
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 (7 params, multiple modes), the description covers the essential aspects: what the tool does, how to use each mode, and a required field warning. Without an output schema or annotations, it is sufficiently complete 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?
The schema already has descriptions for all 7 parameters (100% coverage). The description adds significant meaning by explaining the semantic combinations of hidden and do_not_email to define the three modes, and reiterates the importance of subject.
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 adds a comment to a ticket and explains three distinct comment modes (email reply, public note, private note). It distinguishes this from sibling tools like tickets_list_comments or tickets_get_comments by focusing on creation.
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 each mode via combinations of hidden and do_not_email. It warns about the required subject field. However, it does not explicitly exclude alternatives or state when NOT to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_createA
Create a new ticket. Requires customer_id and subject at minimum. Note: line_items cannot be added inline during creation -- use tickets_add_line_item after the ticket is created.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | Customer ID (required) | |
| subject | Yes | Ticket subject (required) | |
| ticket_type_id | No | Ticket type ID | |
| number | No | Custom ticket number | |
| due_date | No | Due date (ISO 8601) | |
| start_at | No | Start date (ISO 8601) | |
| end_at | No | End date (ISO 8601) | |
| location_id | No | Location ID | |
| problem_type | No | Problem type | |
| status | No | Ticket status | |
| user_id | No | Assigned user ID | |
| properties | No | Custom field values | |
| asset_ids | No | Asset IDs to link | |
| contact_id | No | Contact ID | |
| priority | No | Priority level | |
| tag_list | No | Tags | |
| sla_id | No | SLA ID | |
| comments_attributes | No | Initial comments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description adds a behavioral note that line_items cannot be added inline, which is beyond the schema. However, it does not disclose other behaviors like return value, permissions, 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?
The description is extremely concise with only two sentences, each carrying important information. No unnecessary words, and the critical note is placed at the end.
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 lacks information about the output/return value, which would be helpful for an 18-parameter tool with no output schema. It also does not mention how to retrieve the created ticket ID, leaving some 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 coverage is 100% with all parameters described. The description does not add additional parameter-specific meaning beyond the schema, 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 'Create a new ticket' with a specific verb and resource, and distinguishes from sibling tools by noting the line_items limitation, which is a key differentiator.
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 states when to use the tool (to create a ticket) and provides a clear alternative (tickets_add_line_item) for adding line items after creation. It does not cover all edge cases but is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_deleteA
DELETE a ticket permanently. This action cannot be undone. The user MUST confirm before executing this.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID to delete | |
| confirmed | Yes | Must be true to confirm deletion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes that deletion is permanent and irreversible, which is critical behavioral information. No annotations are provided, so the description carries this burden 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?
Two sentences, informative and front-loaded. 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?
Complete for a simple delete tool with two parameters. No output schema is needed, and the description covers the essential behavior.
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 minimal value beyond the schema. The emphasis on confirmation aligns with the 'confirmed' parameter but does not provide new 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 action (DELETE) and the resource (a ticket), and distinguishes from sibling tools like tickets_create or tickets_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?
Explicitly requires confirmation before deletion, which guides usage. However, it does not explicitly state when to use this tool versus alternatives like closing or archiving.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_delete_attachmentA
Delete an attachment from a ticket. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID | |
| attachment_id | Yes | Attachment ID | |
| confirmed | Yes | Must be true to confirm deletion |
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 states the deletion action and confirmation requirement, but does not mention permanence, side effects, or required permissions. For a destructive operation, more context (e.g., 'This action cannot be undone') is 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 exceptionally concise with two sentences. The first sentence states the purpose, and the second emphasizes the critical validation. No redundant words, and it is front-loaded for quick understanding.
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 (3 required params, no output schema). The description covers the action and a key constraint (confirmation). However, it lacks information about return values or error states, which would be expected for a deletion tool with no 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?
The input schema already provides descriptions for all three parameters, achieving 100% coverage. The description adds no further detail about the parameters beyond restating the confirmation requirement. Per the rubric, with high schema coverage, a 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 ('Delete an attachment from a ticket') and the resource (attachment on a ticket). It is specific and distinct from sibling tools like 'tickets_delete' (deletes entire ticket) and 'tickets_attach_file' (attaches file).
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 requirement ('The user MUST confirm') but does not provide explicit guidance on when to use this tool versus alternatives, e.g., using 'tickets_delete' to delete the entire ticket or 'tickets_attach_file' to manage attachments. The implied usage is clear from the name, but no direct comparison or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_delete_timerA
Delete a timer entry from a ticket. The user MUST confirm.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID | |
| timer_entry_id | Yes | Timer entry ID | |
| confirmed | Yes | Must be true to confirm deletion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description mentions the required confirmation, which is a behavioral trait. However, it does not disclose other behaviors like side effects, reversibility, or authorization needs. Adequate but minimal.
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 wasted words, and front-loaded with the core action. Highly 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?
For a simple delete operation with no output schema, the description is minimally complete. It could mention the outcome of the delete or behavior when confirmation is false, but it 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% and already documents all parameters clearly. The description adds no additional meaning beyond what the schema provides, so 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 it deletes a timer entry from a ticket, using a specific verb and resource. It distinguishes itself from sibling tools like tickets_add_timer or tickets_update_timer.
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 that the user must confirm, but provides no guidance on when to use this tool versus alternatives (e.g., charging or updating a timer). It lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_getB
Get a single ticket by ID with full details
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions 'full details' but does not specify what details are included, nor does it address error handling, authentication, rate limits, or the nature of 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 appropriately concise at 7 words, front-loading the core action and resource. It is efficient but could include a bit more context without being wordy.
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 tool with one parameter and no output schema, the description is minimally adequate. However, 'full details' is vague; an agent might benefit from knowing which fields or nested objects 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% (one parameter 'id' described as 'Ticket ID'). The description adds no additional meaning beyond the schema, so it meets the baseline 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 'Get a single ticket by ID with full details' clearly identifies the tool's action (Get), resource (ticket), and scope (single by ID, full details). It distinguishes from siblings like tickets_list (list) and tickets_get_comments (get comments).
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 is provided on when to use this tool versus alternatives like tickets_list (for multiple tickets) or tickets_update (for modifying). The description does not 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.
tickets_get_commentsC
Get all comments on a ticket
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose any behavioral traits such as pagination, error handling, or what happens when ticket does not exist.
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, concise and front-loaded. However, it is very minimal and could benefit from additional context.
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?
No output schema or annotations; description is too brief to be complete for an agent. Lacks information on return format and differentiation from sibling tools.
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?
Only one parameter 'id' with description 'Ticket ID' in schema. The description adds no additional meaning beyond the schema; baseline 3 due to 100% schema 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?
Clear verb and resource: 'Get all comments on a ticket'. However, it does not distinguish from sibling 'tickets_list_comments', which may have similar functionality.
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 mentioned. Only implied that it is used to retrieve comments for a given ticket ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_listA
List tickets with optional filters. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | No | Filter by customer ID | |
| contact_id | No | Filter by contact ID | |
| number | No | Filter by ticket number | |
| status | No | Filter by status (e.g., 'New', 'In Progress', 'Resolved', 'Waiting for Parts') | |
| query | No | Search query string | |
| user_id | No | Filter by assigned user ID | |
| mine | No | Only show tickets assigned to the authenticated user | |
| resolved_after | No | ISO 8601 date - tickets resolved after this date | |
| created_after | No | ISO 8601 date - tickets created after this date | |
| since_updated_at | No | ISO 8601 date - tickets updated after this date | |
| ticket_search_id | No | Filter by saved search ID | |
| asset_name | No | Return only tickets linked (via assets) to assets whose name matches (case-insensitive partial) | |
| asset_serial | No | Return only tickets linked (via assets) to assets whose serial number matches (case-insensitive partial) | |
| page | No | Page number for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions pagination but does not disclose that this is a read-only operation (no annotations provided). Adequate for a list tool, but 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?
Single sentence, no waste, 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?
With 14 optional parameters and no output schema or annotations, the description is too brief. Lacks details on pagination mechanics, default page size, sorting, or returned fields.
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 new parameter information beyond 'optional filters'. 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 lists tickets with optional filters and returns paginated results, distinguishing it from sibling tools like tickets_get (single ticket) and tickets_list_comments.
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. It only implies usage with filters, but fails to mention that for a single ticket, tickets_get should be used, or for comments, tickets_list_comments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_list_commentsA
List ticket comments across multiple tickets as a flat paginated feed (distinct from tickets_get_comments which is scoped to one ticket). Sorted by ticket_id ASC, created_at DESC. Scope via ticket_search_id, ticket_id, customer_id, contact_id, user_id, status, mine, or date filters. comment_created_after/before filter at the comment level; the other date filters operate on the parent ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_search_id | No | Scope to tickets matching this saved Ticket View ID | |
| ticket_id | No | Scope to a single ticket | |
| customer_id | No | Scope to tickets for this customer | |
| contact_id | No | Scope to tickets for this contact | |
| user_id | No | Scope to tickets assigned to this user | |
| status | No | Scope to tickets with this status (use 'Not Closed' to exclude resolved) | |
| resolved_after | No | ISO 8601 - ticket resolved after this date | |
| created_after | No | ISO 8601 - ticket created after this date | |
| since_updated_at | No | ISO 8601 - ticket updated after this date | |
| mine | No | When true, scope to tickets assigned to the authenticated user | |
| comment_created_after | No | ISO 8601 - filter comments created after this date | |
| comment_created_before | No | ISO 8601 - filter comments created before this date | |
| comment_format | No | Body format: 'plaintext' (default), 'richtext', or 'original' | |
| page | No | Page number (default 1) | |
| per_page | No | Comments per page (default 25, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Discloses sorting order (ticket_id ASC, created_at DESC) and explains filter behavior difference (comment-level vs ticket-level date filters). Lacks response structure details due to no output 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?
Extremely concise: one well-structured sentence that front-loads purpose, distinguishes from sibling, and conveys key behavioral details without 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 15 parameters, no output schema, and many siblings, description covers purpose, differentiation, filtering nuances. Missing return field details, but overall adequate 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%, baseline 3. Description adds value by clarifying that comment_created_after/before filter at comment level while other date filters operate on parent ticket. Also explains 'mine' scope. Adds meaning beyond schema for key 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?
Describes a specific action: listing ticket comments across multiple tickets, flat paginated feed. Explicitly distinguishes from sibling tool tickets_get_comments which is scoped to one ticket.
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 alternative (tickets_get_comments) and mentions various scoping filters. Does not explicitly state when not to use, but gives context for appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_printB
Generate a printable PDF for a ticket
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose whether the operation is read-only, modifies ticket state, or requires specific permissions. The agent is left to infer behavior from the verb 'generate' without clarity on side effects or return format.
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 with no unnecessary words. Efficiently communicates the core 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?
The tool is simple with one parameter and no output schema. However, the description does not explain the output format (e.g., binary PDF, URL) or any prerequisites, leaving gaps for effective 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% with the 'id' parameter described as 'Ticket ID'. The description adds no extra meaning beyond the schema, so the 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 explicitly states 'Generate a printable PDF for a ticket', using a specific verb and resource. It clearly distinguishes from sibling tools like tickets_get (which returns data) and tickets_create (which modifies tickets).
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 tickets_get for viewing ticket details or other print tools for different entities. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_remove_line_itemA
Remove a line item from a ticket. The user MUST confirm before executing this.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID | |
| ticket_line_item_id | Yes | Line item ID to remove | |
| confirmed | Yes | Must be true to confirm removal |
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 the confirmation requirement, but lacks details on irreversibility, permissions, or side effects of removal. The confirmation note adds value beyond the 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 concise sentences: first states the action, second states the critical usage condition. No redundant or extraneous 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 operation's complexity (removal with confirmation) and no output schema, the description provides the essential confirmation requirement but omits details like return value, error conditions, or prerequisites (e.g., ticket status).
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 documents all parameters. The description reinforces the confirmed parameter's purpose but does not add new 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 'Remove a line item from a ticket,' which is a specific verb+resource. It distinguishes from sibling tools like tickets_add_line_item and tickets_update_line_item by focusing on removal.
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 states 'The user MUST confirm before executing this,' providing a clear usage condition. However, it does not explicitly compare with alternatives or specify when not to use (e.g., if only updating is needed).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_settingsA
Get ticket system settings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description briefly implies a read-only operation by using 'Get', but it does not disclose any further behavioral traits such as permissions or side effects. Adequate for a simple getter, but could be improved.
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: a single sentence with no wasted words. It is front-loaded and efficiently communicates the tool's 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 no-parameter, simple retrieval tool, the description is reasonably complete. However, it does not specify what 'settings' includes or the return format, but that may be inferred from context.
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 no parameters, and coverage is 100%. The description adds no parameter information, which is acceptable given zero parameters; baseline for 0 params is 4.
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 'Get ticket system settings' uses a specific verb ('Get') and a clear resource ('ticket system settings'), distinguishing it from sibling tools like 'tickets_get' and 'tickets_list'.
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., 'admin_get_settings'). The description does not specify any context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_updateB
Update an existing ticket. Only provided fields will be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID (required) | |
| subject | No | Ticket subject | |
| ticket_type_id | No | Ticket type ID | |
| number | No | Custom ticket number | |
| due_date | No | Due date (ISO 8601) | |
| start_at | No | Start date (ISO 8601) | |
| end_at | No | End date (ISO 8601) | |
| location_id | No | Location ID | |
| problem_type | No | Problem type | |
| status | No | Ticket status | |
| user_id | No | Assigned user ID | |
| customer_id | No | Customer ID | |
| properties | No | Custom field values | |
| asset_ids | No | Asset IDs to link | |
| contact_id | No | Contact ID | |
| priority | No | Priority level | |
| tag_list | No | Tags | |
| sla_id | No | SLA ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but does not disclose side effects, required permissions, rate limits, or return format. It only states it updates, missing important behavioral context for a mutation 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 a single sentence with 8 words, front-loaded with the core purpose. Every word earns its place, 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 complexity (18 parameters, no output schema), the description is insufficient. It lacks details on response structure, required prerequisites (e.g., authentication), and potential side effects, leaving 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 coverage is 100%, so the schema already documents each parameter. The description adds value by emphasizing partial updates, but does not elaborate on any specific parameter or provide additional constraints 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 action (update) and the resource (existing ticket), with the important nuance that only provided fields are changed. This distinguishes it from sibling tools like tickets_create, tickets_delete, or tickets_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 mentions partial update behavior but lacks guidance on when to use this tool versus other ticket-related tools (e.g., tickets_add_line_item, tickets_comment). No prerequisites, constraints, 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.
tickets_update_line_itemB
Update a line item on a ticket
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID | |
| ticket_line_item_id | Yes | Line item ID to update | |
| name | No | Line item name | |
| description | No | Line item description | |
| quantity | No | Quantity | |
| price_cost | No | Cost price | |
| price_retail | No | Retail price | |
| product_id | No | Product ID | |
| upc_code | No | UPC code | |
| taxable | No | Whether item is taxable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states 'Update' without side effects, permissions, or idempotency. Insufficient for safe agent 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?
Single sentence is efficient and front-loaded, but could include a brief example or scope without verbosity.
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 10 parameters and no output schema, description is too minimal to provide complete context for effective tool 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 description coverage is 100%; description adds no extra meaning beyond schema. Baseline 3 as per guidelines.
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?
Clear verb+resource (update line item) and scope (on a ticket). Distinguishes from siblings like estimates_update_line_item or tickets_add_line_item.
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 (add, remove, or other entity update). Missing context like prerequisite ticket existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tickets_update_timerC
Update a timer entry on a ticket
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ticket ID | |
| timer_entry_id | Yes | Timer entry ID | |
| start_at | No | Start time (ISO 8601) | |
| duration_minutes | No | Duration in minutes | |
| user_id | No | User ID | |
| notes | No | Timer notes | |
| product_id | No | Product ID for billing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully convey behavioral traits. It only states 'update' which implies mutation, but omits side effects, required permissions, reversibility, or what happens with partial updates. The description fails to compensate for missing 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 single-sentence description is brief, but it lacks details that would improve utility. Conciseness should be balanced with informativeness; here it is too minimal to be fully effective.
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 (7 parameters, no output schema, no annotations), the description is incomplete. It does not explain return values, validation rules, or how the update affects the timer entry. More context is needed.
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?
All 7 parameters have descriptions in the schema (100% coverage), so the schema itself explains each parameter. The description adds no extra meaning beyond the schema, meeting the baseline 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 'Update a timer entry on a ticket' clearly states the action and resource, naming both the timer entry and its association with a ticket. However, it does not differentiate from sibling tools like tickets_add_timer or time_update_timer, which could cause confusion.
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 tickets_add_timer, tickets_charge_timer, or time_update_timer. The description lacks context on prerequisites, scope, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time_get_last_timelogA
Get the most recent time log entry for the current user
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the load. It discloses that the tool returns the most recent entry for the current user, implying a read-only behavior. 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?
Single sentence, no filler, front-loaded with the action. Very concise 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?
For a simple retrieval with zero parameters and no output schema, the description adequately conveys what it does. Could mention return format or null case, 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?
Tool has no parameters (0 params), so baseline is 4. Schema coverage is 100%, and description adds nothing beyond stating the resource.
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 'Get the most recent time log entry for the current user', which is a specific verb and resource. It distinguishes from siblings like time_list_timelogs by specifying 'most recent'.
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 vs alternatives (e.g., time_list_timelogs). Usage 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.
time_list_timelogsC
List employee time logs (clock in/out records)
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | No | Filter by user ID | |
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose behavioral traits like pagination behavior, rate limits, or what constitutes a time log entry. The brief description provides no insights beyond the basic 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?
Single sentence is efficient and front-loaded. However, it could include more contextual details without sacrificing conciseness, especially given the lack of guidance.
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?
No output schema means the description should explain what the list returns (e.g., fields, pagination info). It does not, leaving the agent uncertain about the response format. Given moderate complexity, this is inadequate.
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 no additional meaning beyond the schema's parameter descriptions, which already explain user_id and page.
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 'List employee time logs (clock in/out records)', providing a specific verb+resource. It distinguishes from sibling tools like time_list_timers by mentioning 'time logs' versus 'timers'. The parenthetical clarifies the type of logs.
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 time_list_timers or time_get_last_timelog. Lacks context for filtering by user or pagination, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time_list_timersA
List ticket timers (active/running timers across tickets). Filter by customer or derived billing status to support automated billing workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | No | Return timers for tickets belonging to this customer | |
| billing_status | No | Filter by derived billing status: 'non-billable', 'unbilled', 'billed', or 'invoiced' | |
| page | No | Page number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it returns only active/running timers, which is a key behavioral trait. With no annotations, the description partially fills the gap but omits details like pagination behavior or potential rate limits. 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?
Single sentence with parenthetical clarification, front-loads key information. Every word adds value; no wasted space.
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?
No output schema, so description should hint at return structure (e.g., fields like timer ID, start time). Without that, completeness is only moderate. Adequate for simple list tool given sibling context.
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 provides 100% coverage with clear descriptions for all 3 parameters. The tool description adds context about 'active/running' and 'automated billing workflows', but doesn't enhance parameter meaning beyond the schema. 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 it lists ticket timers that are active/running across tickets, with specific filtering options. This distinguishes it from siblings like 'time_list_timelogs' which likely list completed timelogs.
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 filtering by customer or billing status and supports automated billing workflows, suggesting appropriate contexts. However, lacks explicit guidance on when to use this tool over similar tools like 'time_list_timelogs' or 'tickets_list'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time_update_timelogC
Update a time log entry (clock in/out, lunch, notes)
| Name | Required | Description | Default |
|---|---|---|---|
| lunch | No | Lunch break | |
| in_at | No | Clock-in time (ISO 8601) | |
| out_at | No | Clock-out time (ISO 8601) | |
| in_note | No | Clock-in note | |
| out_note | No | Clock-out note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description does not disclose side effects, permission requirements, or how partial updates affect other fields. It simply lists fields to update without 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 a single short sentence, which is concise but lacks critical information about how the tool functions, making it minimally viable.
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 five optional parameters and no required ones, the tool appears to update a timelog without specifying which one. The description does not explain this or mention what the return value is. The absence of an output schema is not compensated.
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?
Although schema coverage is 100%, the description adds no meaning beyond the schema and does not clarify the missing identifier parameter. The description essentially repeats the schema fields.
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 'Update a time log entry' and lists fields (clock in/out, lunch, notes), but fails to specify how the target timelog is identified, as the input schema has no required parameters for identification.
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 sibling tools like time_update_timer or time_list_timelogs. The description does not clarify the context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time_update_timerB
Update a ticket timer (e.g., start/stop, change notes)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Timer ID (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden. It mentions start/stop and change notes, providing some behavioral insight. However, it does not disclose side effects, permissions, or what happens to the timer 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 a single sentence with examples in parentheses, front-loading the key action and resource. Every word adds value, and there is no unnecessary verbosity.
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 update tool with only one required parameter and no output schema, the description is mostly complete. It lacks information about return values or response structure, but given the simplicity, this is a minor 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?
The only parameter 'id' is described in the schema as 'Timer ID (required)' with 100% coverage. 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 that the tool updates a ticket timer with examples of actions (start/stop, change notes). It distinguishes from siblings like time_update_timelog by specifying 'ticket timer', though it does not explicitly differentiate from tickets_update_timer.
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 tickets_add_timer or tickets_delete_timer. The description lacks context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
179 tool updates
v0.1.1- First observed
admin_add_po_line_item - First observed
admin_caller_id - First observed
admin_create_canned_response - First observed
admin_create_portal_invitation - First observed
admin_create_portal_user - First observed
admin_create_purchase_order - First observed
admin_create_user_device - First observed
admin_create_vendor - First observed
admin_create_wiki - First observed
admin_create_worksheet - First observed
admin_delete_canned_response - First observed
admin_delete_portal_user - First observed
admin_delete_wiki - First observed
admin_delete_worksheet - First observed
admin_get_canned_settings - First observed
admin_get_me - First observed
admin_get_printing - First observed
admin_get_purchase_order - First observed
admin_get_settings - First observed
admin_get_tabs - First observed
admin_get_ticket_form - First observed
admin_get_user - First observed
admin_get_user_device - First observed
admin_get_vendor - First observed
admin_get_wiki - First observed
admin_get_worksheet - First observed
admin_list_canned_responses - First observed
admin_list_items - First observed
admin_list_line_items - First observed
admin_list_portal_users - First observed
admin_list_purchase_orders - First observed
admin_list_ticket_forms - First observed
admin_list_users - First observed
admin_list_vendors - First observed
admin_list_wiki - First observed
admin_list_worksheets - First observed
admin_otp_login - First observed
admin_process_ticket_form - First observed
admin_receive_purchase_order - First observed
admin_search - First observed
admin_update_canned_response - First observed
admin_update_portal_user - First observed
admin_update_user_device - First observed
admin_update_vendor - First observed
admin_update_wiki - First observed
admin_update_worksheet - First observed
appointments_create - First observed
appointments_create_type - First observed
appointments_delete - First observed
appointments_delete_type - First observed
appointments_get - First observed
appointments_get_type - First observed
appointments_list - First observed
appointments_list_types - First observed
appointments_update - First observed
appointments_update_type - First observed
assets_chat_info - First observed
assets_create - First observed
assets_get - First observed
assets_get_installed_applications - First observed
assets_get_patches - First observed
assets_list - First observed
assets_update - First observed
contacts_create - First observed
contacts_delete - First observed
contacts_get - First observed
contacts_list - First observed
contacts_update - First observed
contracts_create - First observed
contracts_delete - First observed
contracts_get - First observed
contracts_list - First observed
contracts_update - First observed
customers_autocomplete - First observed
customers_create - First observed
customers_create_phone - First observed
customers_delete - First observed
customers_delete_phone - First observed
customers_get - First observed
customers_latest - First observed
customers_list - First observed
customers_list_phones - First observed
customers_update - First observed
customers_update_phone - First observed
estimates_add_line_item - First observed
estimates_convert_to_invoice - First observed
estimates_create - First observed
estimates_delete - First observed
estimates_delete_line_item - First observed
estimates_email - First observed
estimates_get - First observed
estimates_list - First observed
estimates_print - First observed
estimates_update - First observed
estimates_update_line_item - First observed
invoices_add_line_item - First observed
invoices_create - First observed
invoices_delete - First observed
invoices_delete_line_item - First observed
invoices_email - First observed
invoices_get - First observed
invoices_get_ticket - First observed
invoices_list - First observed
invoices_print - First observed
invoices_update - First observed
invoices_update_line_item - First observed
leads_create - First observed
leads_get - First observed
leads_list - First observed
leads_update - First observed
payments_create - First observed
payments_create_profile - First observed
payments_delete_profile - First observed
payments_get - First observed
payments_get_profile - First observed
payments_list - First observed
payments_list_methods - First observed
payments_list_profiles - First observed
payments_update_profile - First observed
policies_create_folder - First observed
policies_delete_folder - First observed
policies_get_folder - First observed
policies_list_folders - First observed
policies_update_folder - First observed
products_add_images - First observed
products_attach_serial_to_line_item - First observed
products_barcode - First observed
products_categories - First observed
products_create - First observed
products_create_serial - First observed
products_create_sku - First observed
products_delete_image - First observed
products_get - First observed
products_list - First observed
products_list_serials - First observed
products_list_skus - First observed
products_update - First observed
products_update_location_qty - First observed
products_update_serial - First observed
products_update_sku - First observed
rmm_create_alert - First observed
rmm_delete_alert - First observed
rmm_get_alert - First observed
rmm_list_alerts - First observed
rmm_mute_alert - First observed
scheduling_add_line_item - First observed
scheduling_create - First observed
scheduling_delete - First observed
scheduling_get - First observed
scheduling_list - First observed
scheduling_remove_line_item - First observed
scheduling_update - First observed
scheduling_update_line_item - First observed
tickets_add_line_item - First observed
tickets_add_timer - First observed
tickets_attach_file - First observed
tickets_blueprints_apply - First observed
tickets_blueprints_list - First observed
tickets_charge_timer - First observed
tickets_comment - First observed
tickets_create - First observed
tickets_delete - First observed
tickets_delete_attachment - First observed
tickets_delete_timer - First observed
tickets_get - First observed
tickets_get_comments - First observed
tickets_list - First observed
tickets_list_comments - First observed
tickets_print - First observed
tickets_remove_line_item - First observed
tickets_settings - First observed
tickets_update - First observed
tickets_update_line_item - First observed
tickets_update_timer - First observed
time_get_last_timelog - First observed
time_list_timelogs - First observed
time_list_timers - First observed
time_update_timelog - First observed
time_update_timer
TDQS
Scored across 179 tools
Tools are grouped by resource prefix (admin_, tickets_, invoices_, etc.), making it clear which domain each operates on. Within each group, verbs like create, get, list, update, delete are distinct. Some slight overlap exists (e.g., tickets_list_comments vs tickets_get_comments), but overall the prefixes disambiguate well.
All tool names follow a consistent snake_case resource_verb pattern (e.g., customers_create, tickets_add_timer). There are no mixed conventions or vague verbs; each name clearly indicates the action and target.
With 179 tools, the count is far beyond the typical recommended range (3-15). Even for a comprehensive MSP system, this volume is excessive and likely to overwhelm agents, causing selection difficulty and performance issues.
The tool set covers CRUD for most entities (customers, tickets, invoices, products, assets, etc.) and includes specialized operations like RMM alerts, scheduling, and time tracking. Minor gaps exist (e.g., no products delete, only disable via update), but workarounds are documented.
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
Connect any AI assistant to Syncro: manage tickets, invoices, customers, assets, and more.
Connect AI agents to 1000+ apps with managed authentication and tool-calling.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Related MCP Servers
- AlicenseCqualityCmaintenanceProvides AI assistants with direct access to Autotask PSA for MSP operations. Enables natural language interaction for ticket management, time logging, company lookups, project tracking, and billing review through 39 comprehensive tools.10017Apache 2.0
- AlicenseBqualityCmaintenanceGives AI assistants direct access to Autotask PSA for searching tickets, creating time entries, managing companies, projects, and more via natural language.100Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants and development tools to interact with ServiceNow instances through a standardized interface, supporting comprehensive API coverage for incident, change, CMDB, and more.MIT
- AlicenseBqualityCmaintenanceEnables AI assistants to directly interact with Autotask PSA for ticket triage, time logging, company lookups, project management, and more via natural language.9817Apache 2.0