Autotask MCP Server
Part of the MSP Claude Plugins ecosystem, enables management of Datto RMM environments.
Click on "Deploy 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., "@Autotask MCP Servershow me open high-priority tickets for Acme Corp"
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.
Autotask MCP Server
Give your AI assistant direct access to Autotask. Search tickets, create time entries, look up companies, manage projects โ all through natural language. No more copy-pasting between browser tabs and chat windows.
This is a Model Context Protocol (MCP) server that connects Claude (or any MCP-compatible AI) to your Autotask PSA environment. Your AI assistant gets 39 tools covering the operations MSP teams use daily: ticket triage, time logging, company lookups, project management, billing review, and more.
If you run an MSP on Autotask and you're tired of the context-switching tax, this is for you.
Part of the MSP Claude Plugins ecosystem โ a growing suite of AI integrations for the MSP stack including Datto RMM, IT Glue, HaloPSA, ConnectWise Automate, NinjaOne, Huntress, and more. Built by MSPs, for MSPs.
One-Click Deployment
Related MCP server: Autotask MCP Server
Quick Start
Claude Desktop โ download, open, done:
Download
autotask-mcp.mcpbfrom the latest releaseOpen the file (double-click or drag into Claude Desktop)
Enter your Autotask credentials when prompted (Username, Secret, Integration Code)
No terminal, no JSON editing, no Node.js install required.
Claude Code (CLI):
claude mcp add autotask-mcp \
-e AUTOTASK_USERNAME=your-user@company.com \
-e AUTOTASK_SECRET=your-secret \
-e AUTOTASK_INTEGRATION_CODE=your-code \
-- npx -y github:wyre-technology/autotask-mcpSee Installation for Docker and from-source methods.
Features
๐ MCP Protocol Compliance: Full support for MCP resources and tools
๐ ๏ธ Comprehensive API Coverage: 39 tools spanning companies, contacts, tickets, projects, billing items, time entries, notes, attachments, and more
๐ Advanced Search: Powerful search capabilities with filters across all entities
๐ CRUD Operations: Create, read, update operations for core Autotask entities
๐ ID-to-Name Mapping: Automatic resolution of company and resource IDs to human-readable names
โก Intelligent Caching: Smart caching system for improved performance and reduced API calls
๐ Secure Authentication: Enterprise-grade API security with Autotask credentials
๐ Dual Transport: Supports both stdio (local) and HTTP Streamable (remote/Docker) transports
๐ฆ MCPB Packaging: One-click installation via MCP Bundle for desktop clients
๐ณ Docker Ready: Containerized deployment with HTTP transport and health checks
๐ Structured Logging: Comprehensive logging with configurable levels and formats
๐งช Test Coverage: Comprehensive test suite with 80%+ coverage
Table of Contents
Installation
Option 1: MCPB Bundle (Claude Desktop)
The simplest method โ no terminal, no JSON editing, no Node.js install required.
Download
autotask-mcp.mcpbfrom the latest releaseOpen the file (double-click or drag into Claude Desktop)
Enter your Autotask credentials when prompted (Username, Secret, Integration Code)
For Claude Code (CLI), one command:
claude mcp add autotask-mcp \
-e AUTOTASK_USERNAME=your-user@company.com \
-e AUTOTASK_SECRET=your-secret \
-e AUTOTASK_INTEGRATION_CODE=your-code \
-- npx -y github:wyre-technology/autotask-mcpOption 2: Docker
Local (stdio โ for Claude Desktop or Claude Code):
{
"mcpServers": {
"autotask": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "MCP_TRANSPORT=stdio",
"-e", "AUTOTASK_USERNAME=your-user@company.com",
"-e", "AUTOTASK_SECRET=your-secret",
"-e", "AUTOTASK_INTEGRATION_CODE=your-code",
"--entrypoint", "node",
"ghcr.io/wyre-technology/autotask-mcp:latest",
"dist/entry.js"
]
}
}
}Remote (HTTP Streamable โ for server deployments):
docker run -d \
--name autotask-mcp \
-p 8080:8080 \
-e AUTOTASK_USERNAME="your-user@company.com" \
-e AUTOTASK_SECRET="your-secret" \
-e AUTOTASK_INTEGRATION_CODE="your-code" \
--restart unless-stopped \
ghcr.io/wyre-technology/autotask-mcp:latest
# Verify
curl http://localhost:8080/healthClients connect to http://host:8080/mcp using MCP Streamable HTTP transport.
Gateway Mode (for MCP Gateway deployments):
When deploying behind an MCP Gateway that injects credentials via HTTP headers:
docker run -d \
--name autotask-mcp \
-p 8080:8080 \
-e AUTH_MODE=gateway \
--restart unless-stopped \
ghcr.io/wyre-technology/autotask-mcp:latestThe gateway injects credentials via headers:
X-API-Key: Autotask usernameX-API-Secret: Autotask secretX-Integration-Code: Autotask integration code
See Gateway Mode for details.
Option 3: From Source (Development)
git clone https://github.com/wyre-technology/autotask-mcp.git
cd autotask-mcp
npm ci && npm run buildThen point your MCP client at dist/entry.js:
{
"mcpServers": {
"autotask": {
"command": "node",
"args": ["/path/to/autotask-mcp/dist/entry.js"],
"env": {
"AUTOTASK_USERNAME": "your-user@company.com",
"AUTOTASK_SECRET": "your-secret",
"AUTOTASK_INTEGRATION_CODE": "your-code"
}
}
}
}Prerequisites
Valid Autotask API credentials (API user email, secret, integration code)
MCP-compatible client (Claude Desktop, Claude Code, etc.)
Docker (for Option 2) or Node.js 18+ (for Option 3)
Configuration
Environment Variables
Create a .env file with your configuration:
# Required Autotask API credentials (Local Mode)
AUTOTASK_USERNAME=your-api-user@example.com
AUTOTASK_SECRET=your-secret-key
AUTOTASK_INTEGRATION_CODE=your-integration-code
# Optional configuration
# AUTOTASK_API_URL is auto-detected from AUTOTASK_USERNAME via Autotask's
# unauthenticated zoneInformation endpoint on first connect. Only set this
# explicitly to override auto-detection (e.g. for an on-prem proxy).
# AUTOTASK_API_URL=https://webservices2.autotask.net/atservicesrest/
MCP_SERVER_NAME=autotask-mcp
# Authentication mode
AUTH_MODE=env # env (local), gateway (hosted)
# Transport (stdio for local/desktop, http for remote/Docker)
MCP_TRANSPORT=stdio # stdio, http
MCP_HTTP_PORT=8080 # HTTP transport port (only used when MCP_TRANSPORT=http)
MCP_HTTP_HOST=0.0.0.0 # HTTP transport bind address
# Logging
LOG_LEVEL=info # error, warn, info, debug
LOG_FORMAT=simple # simple, json
# Environment
NODE_ENV=productionGateway Mode
When deployed behind an MCP Gateway (e.g., mcp.wyre.ai), the server operates in gateway mode where credentials are injected via HTTP headers on each request.
Enable Gateway Mode:
AUTH_MODE=gateway
MCP_TRANSPORT=httpExpected Headers:
Header | Description |
| Autotask API username (email) |
| Autotask API secret key |
| Autotask integration code |
| (Optional) Custom Autotask API URL |
Health Check Response (Gateway Mode):
{
"status": "ok",
"transport": "http",
"authMode": "gateway",
"timestamp": "2026-02-05T10:00:00.000Z"
}For detailed migration instructions, see the Migration Guide.
๐ก Pro Tip: Copy the above content to a .env file in your project root.
Autotask API Setup
Create API User: In Autotask, create a dedicated API user with appropriate permissions
Generate Secret: Generate an API secret for the user
Integration Code: Obtain your integration code from Autotask
Permissions: Ensure the API user has read/write access to required entities
For detailed setup instructions, see the Autotask API documentation.
Usage
Command Line
# Start the MCP server (stdio transport, for piping to an MCP client)
node dist/entry.js
# Start with HTTP transport
MCP_TRANSPORT=http node dist/index.jsMCP Client Configuration
See Installation for all setup methods.
API Reference
Resources
Resources provide read-only access to Autotask data:
autotask://companies- List all companiesautotask://companies/{id}- Get specific companyautotask://contacts- List all contactsautotask://contacts/{id}- Get specific contactautotask://tickets- List all ticketsautotask://tickets/{id}- Get specific ticketautotask://time-entries- List time entries
Tools
The server provides 39 tools for interacting with Autotask:
Company Operations
autotask_search_companies- Search companies with filtersautotask_create_company- Create new companyautotask_update_company- Update existing company
Contact Operations
autotask_search_contacts- Search contacts with filtersautotask_create_contact- Create new contact
Ticket Operations
autotask_search_tickets- Search tickets with filtersautotask_get_ticket_details- Get full ticket details by IDautotask_create_ticket- Create new ticket
Time Entry Operations
autotask_create_time_entry- Log time entryautotask_search_time_entries- Search time entries with filters (resource, ticket, project, date range)
Billing Items (Approve and Post Workflow)
autotask_search_billing_items- Search approved and posted billing itemsautotask_get_billing_item- Get specific billing item by IDautotask_search_billing_item_approval_levels- Search multi-level approval records for time entries
Project Operations
autotask_search_projects- Search projects with filtersautotask_create_project- Create new project
Resource Operations
autotask_search_resources- Search resources (technicians/users)
Note Operations
autotask_get_ticket_note/autotask_search_ticket_notes/autotask_create_ticket_noteautotask_get_project_note/autotask_search_project_notes/autotask_create_project_noteautotask_get_company_note/autotask_search_company_notes/autotask_create_company_note
Attachment Operations
autotask_get_ticket_attachment- Get ticket attachmentautotask_search_ticket_attachments- Search ticket attachments
Financial Operations
autotask_get_expense_report/autotask_search_expense_reports/autotask_create_expense_reportautotask_get_quote/autotask_search_quotes/autotask_create_quoteautotask_search_invoices- Search invoicesautotask_search_contracts- Search contracts
Configuration Items
autotask_search_configuration_items- Search configuration items (assets)
Task Operations
autotask_search_tasks- Search project tasksautotask_create_task- Create project task
Utility Operations
autotask_test_connection- Test API connectivity
Example Tool Usage
// Search for companies
{
"name": "autotask_search_companies",
"arguments": {
"searchTerm": "Acme Corp",
"isActive": true,
"pageSize": 10
}
}
// Create a new ticket
{
"name": "autotask_create_ticket",
"arguments": {
"companyID": 12345,
"title": "Server maintenance request",
"description": "Need to perform monthly server maintenance",
"priority": 2,
"status": 1
}
}ID-to-Name Mapping
The Autotask MCP server includes intelligent ID-to-name mapping that automatically resolves company and resource IDs to human-readable names, making API responses much more useful for AI assistants and human users.
Automatic Enhancement
All search and detail tools automatically include an _enhanced field with resolved names:
{
"id": 12345,
"title": "Sample Ticket",
"companyID": 678,
"assignedResourceID": 90,
"_enhanced": {
"companyName": "Acme Corporation",
"assignedResourceName": "John Smith"
}
}How It Works
ID-to-name mapping is applied automatically to all search and detail tool results. No additional tools are needed โ the _enhanced field is added transparently to every response that contains company or resource IDs.
Performance Features
Smart Caching: Names are cached for 30 minutes to reduce API calls
Bulk Operations: Efficient batch lookups for multiple IDs
Graceful Fallback: Returns "Unknown Company (123)" if lookup fails
Parallel Processing: Multiple mappings resolved simultaneously
Testing Mapping
Test the mapping functionality:
npm run test:mappingFor detailed mapping documentation, see docs/mapping.md.
HTTP Transport
The server supports the MCP Streamable HTTP transport for remote deployments (e.g., Docker, cloud hosting). Set MCP_TRANSPORT=http to enable it.
# Start with HTTP transport
MCP_TRANSPORT=http MCP_HTTP_PORT=8080 node dist/index.jsThe HTTP transport exposes:
POST /mcpโ MCP Streamable HTTP endpointGET /healthโ Health check (returns{"status":"ok"})
Clients must send requests to /mcp with Accept: application/json, text/event-stream headers per the MCP Streamable HTTP specification.
Docker Deployment
The Docker image uses HTTP transport by default (port 8080) with a built-in health check.
Using Pre-built Image from GitHub Container Registry
The Docker image defaults to HTTP transport on port 8080 โ suitable for remote/server deployments where clients connect over the network.
# Pull the latest image
docker pull ghcr.io/wyre-technology/autotask-mcp:latest
# Run container with HTTP transport (default)
docker run -d \
--name autotask-mcp \
-p 8080:8080 \
-e AUTOTASK_USERNAME="your-api-user@example.com" \
-e AUTOTASK_SECRET="your-secret-key" \
-e AUTOTASK_INTEGRATION_CODE="your-integration-code" \
--restart unless-stopped \
ghcr.io/wyre-technology/autotask-mcp:latest
# Verify it's running
curl http://localhost:8080/healthFor stdio usage with Claude Desktop, see Installation Option 2.
Quick Start (From Source)
# Clone repository
git clone https://github.com/wyre-technology/autotask-mcp.git
cd autotask-mcp
# Create environment file
cp .env.example .env
# Edit .env with your credentials
# Start with docker-compose
docker compose up -dProduction Deployment
# Build production image locally
docker build -t autotask-mcp:latest .
# Run container
docker run -d \
--name autotask-mcp \
--env-file .env \
--restart unless-stopped \
autotask-mcp:latestDevelopment Mode
# Start development environment with hot reload
docker compose --profile dev up autotask-mcp-devDevelopment
Setup
git clone https://github.com/wyre-technology/autotask-mcp.git
cd autotask-mcp
npm installAvailable Scripts
npm run dev # Start development server with hot reload
npm run build # Build for production
npm run test # Run test suite
npm run test:watch # Run tests in watch mode
npm run test:coverage # Run tests with coverage
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint issuesProject Structure
autotask-mcp/
โโโ src/
โ โโโ handlers/ # MCP request handlers
โ โโโ mcp/ # MCP server implementation
โ โโโ services/ # Autotask service layer
โ โโโ types/ # TypeScript type definitions
โ โโโ utils/ # Utility functions (config, logger, cache)
โ โโโ entry.ts # Entry point (stdout guard + .env loader)
โ โโโ index.ts # Server bootstrap (config, logger, server init)
โโโ tests/ # Test files
โโโ scripts/ # Build and packaging scripts
โ โโโ pack-mcpb.js # MCPB bundle creation
โโโ manifest.json # MCPB manifest for desktop distribution
โโโ Dockerfile # Container definition (HTTP transport)
โโโ docker-compose.yml # Multi-service orchestration
โโโ package.json # Project configurationTesting
Running Tests
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run in watch mode
npm run test:watch
# Run specific test file
npm test -- tests/autotask-service.test.tsTest Categories
Unit Tests: Service layer and utility functions
Integration Tests: MCP protocol compliance
API Tests: Autotask API integration (requires credentials)
Coverage Requirements
Minimum 80% coverage for all metrics
100% coverage for critical paths (authentication, data handling)
Configuration Reference
Environment Variables
Variable | Required | Default | Description |
| โ | - | Autotask API username (email) |
| โ | - | Autotask API secret key |
| โ | - | Autotask integration code |
| โ | Auto-detected | Autotask API endpoint URL |
| โ |
| MCP server name |
| โ |
| Transport type ( |
| โ |
| HTTP transport port |
| โ |
| HTTP transport bind address |
| โ |
| Logging level |
| โ |
| Log output format |
| โ |
| Node.js environment |
Logging Levels
error: Only error messageswarn: Warnings and errorsinfo: General information, warnings, and errorsdebug: Detailed debugging information
Log Formats
simple: Human-readable console outputjson: Structured JSON output (recommended for production)
Troubleshooting
Common Issues
Authentication Errors
Error: Missing required Autotask credentialsSolution: Ensure all required environment variables are set correctly.
Connection Timeouts
Error: Connection to Autotask API failedSolutions:
Check network connectivity
Verify API endpoint URL
Confirm API user has proper permissions
Permission Denied
Error: User does not have permission to access this resourceSolution: Review Autotask API user permissions and security level settings.
Debug Mode
Enable debug logging for detailed troubleshooting:
LOG_LEVEL=debug npm startHealth Checks
Test server connectivity:
# Run test suite
npm run test
# For HTTP transport, check the health endpoint
curl http://localhost:8080/health
# Returns: {"status":"ok"}
# Test API connection with debug logging
LOG_LEVEL=debug npm startAutotask API Rate Limits
Problem: 429 Too Many Requests or "thread limit exceeded" errors when Claude queries aggressively
Autotask enforces 3 concurrent threads per endpoint per API tracking identifier. When an LLM issues multiple tool calls simultaneously (e.g., searching tickets, companies, and contacts at once), requests can pile up and hit this limit.
Built-in mitigation: The underlying autotask-node SDK automatically queues excess requests rather than failing immediately. Requests wait for a slot to free up, so you generally won't see 429 errors โ but you may notice slower responses under heavy load.
Critical for team/multi-user deployments: If multiple users or the MCP Gateway share the same API credentials, they compete for the same 3-thread budget. This can cause noticeable slowdowns and, in severe cases, queued requests that time out.
Solution โ one API key per team: Create a dedicated Autotask API user per team or integration. Each user has an independent integrationCode with its own thread budget:
Admin > Resources (Users) > Resources/Users โ Add Resource
Set Security Level to API User
Note the username, secret, and integration code
Set
AUTOTASK_USERNAME,AUTOTASK_SECRET, andAUTOTASK_INTEGRATION_CODEper team
Support Team โ AUTOTASK_INTEGRATION_CODE=SUPPORT_TEAM_CODE (3 threads)
Projects Team โ AUTOTASK_INTEGRATION_CODE=PROJECTS_TEAM_CODE (3 threads, independent)Additionally, Autotask limits 10,000 total requests per hour across all integrations hitting your tenant. If you hit this limit, all integrations will start receiving 429s โ another reason to use targeted queries with appropriate filters.
MCP Client Issues
Problem: MCP server not appearing in Claude Desktop Solutions:
Check configuration file syntax (valid JSON)
Verify file path in the configuration
Ensure environment variables are set correctly
Restart Claude Desktop completely
Problem: "Invalid JSON-RPC message: [dotenv@...] injecting env" / Server disconnected
Cause: The autotask-node library calls dotenv.config() at module load time. dotenv v17+ writes status messages via console.log to stdout, which corrupts the MCP stdio JSON-RPC channel.
Solution: Ensure you're using dist/entry.js (not dist/index.js) as the entry point. The entry wrapper redirects console.log to stderr before any libraries load.
Problem: Slow responses Solutions:
Check network connectivity to Autotask API
Enable debug logging (
LOG_LEVEL=debug) to identify bottlenecksThe server caches company/resource names for 30 minutes automatically
Security Best Practices
Store credentials in environment variables, not directly in config files
Limit Autotask API user permissions to the minimum required
Rotate API credentials regularly
For Docker deployments, use secrets management rather than plain environment variables
Contributing
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Development Guidelines
Follow TypeScript best practices
Maintain test coverage above 80%
Use conventional commit messages
Update documentation for API changes
Add tests for new features
License
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Contributor License Agreement
By submitting a pull request, you agree to the terms of our Contributor License Agreement. This ensures that contributions can be properly licensed and that you have the right to submit the code.
Contributors
Avatar | Name | Contributions |
Maintainer | ||
CLI bin fix |
Support
๐ Documentation
๐ Issue Tracker
๐ฌ Discussions
Acknowledgments
Model Context Protocol by Anthropic
Autotask REST API by Kaseya
autotask-node library
Built by WYRE Technology โ part of the MSP Claude Plugins ecosystem
Available Tools
90 toolsautotask_create_companyB
Create a new company in Autotask
| Name | Required | Description | Default |
|---|---|---|---|
| companyName | Yes | Company name | |
| companyType | Yes | Company type ID | |
| phone | No | Company phone number | |
| address1 | No | Company address line 1 | |
| city | No | Company city | |
| state | No | Company state/province | |
| postalCode | No | Company postal/ZIP code | |
| ownerResourceID | No | Owner resource ID | |
| isActive | No | Whether the company is active |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description should disclose behavioral traits like mutability, permissions, or error handling. It only states 'create' without any additional context, leaving gaps 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?
Extremely concise at 6 words, but lacks structure or additional helpful details. It is not verbose, but the brevity sacrifices 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?
With 9 parameters and no output schema, the description fails to explain expected outcomes (e.g., returned company ID) or critical context like valid companyType values. 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?
Schema description coverage is 100%, so the schema already documents all parameters clearly. The description adds no extra meaning beyond what is in the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (create), resource (company), and system (Autotask), distinguishing it from sibling tools like autotask_create_contact or autotask_create_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 guidelines on when to use this tool, prerequisites (e.g., needing a valid companyType ID), or alternatives. The description is minimal without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_company_noteB
Create a new note for a company
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | The company ID to add the note to | |
| title | No | Note title | |
| description | Yes | Note content | |
| actionType | No | Action type for the note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action, with no mention of permissions, side effects, or idempotency, 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 a single, concise sentence with no unnecessary words. It front-loads the essential 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?
The tool is simple with only four parameters and no output schema. The description covers the basic purpose but lacks details about note content or related entities, making it marginally 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%, so the input schema already documents all parameters. The description adds no additional meaning beyond the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new note for a company' clearly states the action (create) and the resource (note for a company), distinguishing it from sibling tools like create_ticket_note or create_project_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 create_ticket_note or create_project_note. The description implies usage but does not specify context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_contactB
Create a new contact in Autotask
| Name | Required | Description | Default |
|---|---|---|---|
| companyID | Yes | Company ID for the contact | |
| firstName | Yes | Contact first name | |
| lastName | Yes | Contact last name | |
| emailAddress | No | Contact email address | |
| phone | No | Contact phone number | |
| title | No | Contact job title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as required permissions, side effects (e.g., duplicate handling), or response 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?
Single sentence with six words โ no wasted text. Front-loaded with action and resource, optimally 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?
Despite a clear purpose, the description omits required context like return value, error conditions, or prerequisites (e.g., valid companyID). With no output schema, the agent lacks crucial 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% with all parameters documented. The description adds no extra parameter context, so the schema carries the burden, earning a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), resource ('contact'), and system ('Autotask'), distinguishing it from sibling tools like 'autotask_create_company'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or alternatives is provided. The description only states the function, leaving the agent to infer context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_expense_itemB
Create an expense item on an existing expense report
| Name | Required | Description | Default |
|---|---|---|---|
| expenseReportId | Yes | The expense report ID to add the item to | |
| description | Yes | Line item description | |
| expenseDate | Yes | Date of expense (YYYY-MM-DD format) | |
| expenseCategory | Yes | Expense category picklist ID | |
| amount | Yes | Expense amount | |
| companyId | No | Associated company ID (0 for internal) | |
| haveReceipt | No | Whether a receipt is attached | |
| isBillableToCompany | No | Whether billable to company | |
| isReimbursable | No | Whether this expense is reimbursable | |
| paymentType | No | Payment type picklist ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It only states the action, omitting side effects, authorization needs, or error conditions, making it 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 a single concise sentence with no wasted words, but it lacks structural elements like bullet points or front-loading of key constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 10 parameters (5 required) and no output schema/annotations, the description is too minimal. It does not explain the creation process, return value, or validation rules.
Complex tools with many parameters or behaviors need more documentation. 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 additional meaning beyond the schema, such as relationships or picklist contexts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and resource (expense item on an existing expense report), distinguishing it from sibling tools like autotask_create_expense_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or alternative guidance. The description does not mention prerequisites (expense report must exist) or compare with other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_expense_reportC
Create a new expense report
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Expense report name | |
| description | No | Expense report description | |
| submitterId | Yes | The resource ID of the submitter | |
| weekEndingDate | Yes | Week ending date (YYYY-MM-DD format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. No disclosure of side effects, permission requirements, idempotency, or data validation beyond what the schema implies.
Agents need to know what a tool does to the 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 waste, but it under-specifies for a creation tool. Conciseness is good, but could add a bit more information 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?
Lacks information about return values, error handling, or post-creation steps. With 4 parameters, no output schema, and no annotations, the description is too minimal to fully guide an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all 4 parameters. The description adds no additional context about parameter usage, formatting (except what's in schema), or constraints like uniqueness or valid resource IDs.
Input schemas describe structure but not intent. Descriptions should explain 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 expense report' clearly states a specific verb and resource, distinguishing it from sibling tools like search_expense_reports and create_expense_item. It is unambiguous but lacks any additional contextual details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 checking for existing reports via search first. There are no prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_opportunityB
Create a new sales opportunity in Autotask
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Opportunity name/title | |
| companyId | Yes | Company ID for the opportunity | |
| ownerResourceId | Yes | Owner resource ID (the sales rep or account manager) | |
| status | Yes | Status: 0=Not Ready To Buy, 1=Active, 2=Lost, 3=Closed, 4=Implemented | |
| stage | Yes | Stage picklist value ID (use autotask_get_field_info to find valid values) | |
| projectedCloseDate | Yes | Projected close date (YYYY-MM-DD) | |
| startDate | Yes | Start date (YYYY-MM-DD) | |
| probability | No | Win probability percentage (0-100, default: 50) | |
| amount | No | Revenue amount (default: 0, set useQuoteTotals=true to calculate from quotes) | |
| cost | No | Cost amount (default: 0) | |
| useQuoteTotals | No | Whether to calculate totals from linked quotes (default: true) | |
| totalAmountMonths | No | Number of months to calculate totals for (e.g., 12 for annual) | |
| contactId | No | Contact ID for the opportunity | |
| description | No | Opportunity description | |
| opportunityCategoryID | No | Opportunity category picklist value ID |
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 'Create a new sales opportunity', omitting critical behavioral details such as return value, idempotence, error handling, or 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?
Single sentence is concise and front-loaded with the core action. However, it sacrifices necessary details, but this is more a completeness issue than 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's complexity (15 parameters, 7 required, no output schema, no annotations), the minimal description is inadequate. It fails to explain return behavior, necessary lookups, or constraints, 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 description coverage is 100%, and the tool description adds no additional meaning beyond the parameter descriptions. Baseline 3 is appropriate; the description does not compensate for any 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?
Description clearly states verb 'Create' and resource 'new sales opportunity', accurately reflecting the tool's function and distinguishing it from sibling tools that operate on different entities (e.g., autotask_create_ticket, autotask_create_company).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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., autotask_search_opportunities, autotask_update_opportunity) or prerequisites like ensuring the companyId and ownerResourceId exist. Lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_phaseC
Create a new phase in an Autotask project
| Name | Required | Description | Default |
|---|---|---|---|
| projectID | Yes | Project ID for the phase | |
| title | Yes | Phase title | |
| description | No | Phase description | |
| startDate | No | Phase start date (ISO format) | |
| dueDate | No | Phase due date (ISO format) | |
| estimatedHours | No | Estimated hours for the phase |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the basic creation action without disclosing behavioral traits like side effects, permission requirements, validation behavior, or what happens on 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 a single sentence, achieving conciseness but lacking structure. It front-loads the core action but omits important details that could fit without 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 absence of an output schema and the creation nature, the description should explain return values (e.g., new phase ID) or requirements (e.g., project must exist). It is incomplete for effective 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 description coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema; it merely restates the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('phase') in an Autotask project. It is specific enough to differentiate from sibling tools like autotask_list_phases, though no explicit differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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., autotask_create_task). No context about prerequisites, such as requiring an existing project, or when to use it over other phase-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_projectC
Create a new project in Autotask
| Name | Required | Description | Default |
|---|---|---|---|
| companyID | Yes | Company ID for the project | |
| projectName | Yes | Project name | |
| description | No | Project description | |
| status | Yes | Project status (1=New, 2=In Progress, 5=Complete) | |
| startDate | No | Project start date (YYYY-MM-DD) | |
| endDate | No | Project end date (YYYY-MM-DD) | |
| projectLeadResourceID | No | Project manager resource ID | |
| estimatedHours | No | Estimated hours for the project | |
| projectType | Yes | Project type (2=Proposal, 3=Template, 4=Internal, 5=Client, 8=Baseline). Required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'create' which implies a write operation, but lacks details on side effects, required permissions, error handling, or the nature of the creation (e.g., whether it returns the project ID).
Agents need to know what a tool does to the 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 5 words, extremely concise and front-loaded. 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?
Given the tool has 9 parameters, no output schema, and is a mutation, the description is insufficient. It does not explain what happens after creation (e.g., response format, created resource identifier) or provide any context that the schema and annotations don't already cover.
Complex tools with many parameters or behaviors need more documentation. 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% parameter description coverage, so the tool description does not need to add parameter details. Baseline score of 3 is appropriate as the description adds no extra 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 'Create a new project in Autotask' clearly states the action and resource, and distinguishes it from sibling tools like autotask_update_project and autotask_search_projects by the create verb. However, it could be more specific about the project scope or required fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 such as autotask_update_project or when not to use it. There are no prerequisites, context about intended use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_project_noteC
Create a new note for a project
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID to add the note to | |
| title | No | Note title | |
| description | Yes | Note content | |
| noteType | No | Note type (1=General, 2=Appointment, 3=Task, 4=Ticket, 5=Project, 6=Opportunity) | |
| publish | No | Publish visibility (1=All Autotask Users, 2=Internal Project Team, 3=Project Team). Defaults to 1. | |
| isAnnouncement | No | Whether this note is an announcement. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for disclosing behavior. It only states 'Create a new note for a project' without any details on side effects, error conditions, permissions, or what happens if the projectId is invalid. The description is insufficient for an agent to understand the tool's behavioral implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It does not use bullet points or separate sections to organize information. While it avoids verbosity, it is also under-specified, failing to earn its place with useful 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 has 6 parameters, no output schema, and no annotations, the description is woefully incomplete. It does not explain return values, error behavior, or provide any context about the note creation process. For a creation tool, more completeness is expected.
Complex tools with many parameters or behaviors need more documentation. 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 full (100%) coverage with descriptions for all 6 parameters. The description adds no additional meaning beyond what the schema already provides. Therefore, 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 clearly states the action ('Create') and the resource ('a new note for a project'). It is unambiguous, though it does not differentiate from sibling tools like create_ticket_note or create_company_note. The project-specific context provides some 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 is provided on when to use this tool versus alternatives, such as create_ticket_note or create_company_note. There is no mention of prerequisites, context, or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_quoteB
Create a new quote
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Quote name | |
| description | No | Quote description | |
| companyId | Yes | Company ID for the quote | |
| contactId | No | Contact ID for the quote | |
| opportunityId | No | Associated opportunity ID | |
| effectiveDate | No | Effective date (YYYY-MM-DD format) | |
| expirationDate | No | Expiration date (YYYY-MM-DD format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior. Only 'Create a new quote' is stated, which implicitly indicates a write mutation but does not reveal side effects, permissions, idempotence, or response details. Fails to add 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 sentence, which is concise but overly minimal. It could include key details like the required companyId or date format without becoming verbose. Not optimally structured for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7 parameters and no output schema or annotations, the description fails to explain what a quote is, how it relates to other entities (e.g., opportunity), or the significance of the required companyId. Incomplete for an AI agent to use 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?
Parameter schema coverage is 100% with individual descriptions. The tool description adds no further meaning beyond what the schema already 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 'Create a new quote' is a specific verb+resource pair. It clearly distinguishes this tool from siblings like autotask_search_quotes or autotask_get_quote, which query or retrieve quotes. There is no other create quote sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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., updating a quote via another tool). No prerequisites or context provided. The description gives zero usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_quote_itemA
Create a line item on a quote. Set exactly ONE item reference (serviceID, productID, or serviceBundleID). Required: quoteId, quantity. Defaults: unitDiscount=0, lineDiscount=0, percentageDiscount=0, isOptional=false.
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | Yes | The quote ID to add this item to | |
| name | No | Item name (auto-populated for service/product types) | |
| description | No | Item description | |
| quantity | Yes | Quantity of the item | |
| unitPrice | No | Unit price for the item | |
| unitCost | No | Unit cost for the item | |
| unitDiscount | No | Per-unit discount amount (default: 0) | |
| lineDiscount | No | Line-level discount amount (default: 0) | |
| percentageDiscount | No | Percentage discount (default: 0) | |
| isOptional | No | Whether this is an optional line item (default: false) | |
| serviceID | No | Service ID to link (mutually exclusive with productID/serviceBundleID) | |
| productID | No | Product ID to link (mutually exclusive with serviceID/serviceBundleID) | |
| serviceBundleID | No | Service Bundle ID to link (mutually exclusive with serviceID/productID) | |
| sortOrderID | No | Sort order for display | |
| quoteItemType | No | Quote item type (auto-determined if omitted): 1=Product, 2=Cost, 3=Labor, 4=Expense, 6=Shipping, 11=Service, 12=ServiceBundle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It discloses mutual exclusivity of item references, required parameters, and defaults. However, it lacks information about side effects, authentication, or error behavior. Some behavioral context is present 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 that front-load the main purpose, then pack essential constraints and defaults 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 15 parameters, no output schema, and no annotations, the description covers mutual exclusivity and defaults but omits details like auto-population, response format, or error handling. The high schema coverage compensates, but completeness is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by emphasizing the 'exactly one' constraint and listing defaults for discount and isOptional parameters, which is not obvious 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 the tool creates a line item on a quote, specifies exactly one item reference must be set among three options, and lists required fields and defaults. This distinguishes it from siblings like update/delete quote items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instructions on when to use (create a line item) and what constraints apply (exactly one item reference, required fields). While it doesn't explicitly list when not to use, the context from sibling tools (update, delete) implies this is for new items.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_service_callC
Create a new service call in Autotask. Service calls are used to schedule and plan work on tickets.
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | Description of the service call | |
| status | No | Status picklist ID (use autotask_get_field_info with entityType "ServiceCalls" to find valid values) | |
| startDateTime | Yes | Scheduled start date/time (ISO 8601 format, e.g. 2026-03-22T09:00:00Z) | |
| endDateTime | Yes | Scheduled end date/time (ISO 8601 format) | |
| companyID | No | Company ID this service call is for | |
| companyLocationID | No | Company location ID (optional) | |
| complete | No | Whether this service call is complete (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only says 'Create', which implies write operation but lacks details on permissions, idempotency, side effects, 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?
Two efficient sentences. First sentence is action, second adds context. Well front-loaded 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?
No output schema and no description of return value. Lacks example, error handling, or expected outcome. Minimal completeness for a create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds no extra parameter meaning beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Create a new service call' with specific resource and context. Does not explicitly differentiate from sibling tools like 'create service call ticket', but verb 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 on when to use this tool vs alternatives, no prerequisites or exclusions. Agent must infer usage from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_service_call_ticketB
Link a ticket to a service call. This associates the ticket with the service call for scheduling purposes.
| Name | Required | Description | Default |
|---|---|---|---|
| serviceCallID | Yes | The service call ID to link the ticket to | |
| ticketID | Yes | The ticket ID to link to the service call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states the basic link action, omitting details like idempotency, error conditions, permissions, or side effects. This is a significant gap for a state-modifying 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 sentences, no wasted words, but it lacks informative depth. It is concise in length but not in value, as it omits key 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?
Given no output schema and no annotations, the description does not cover required behavioral context (e.g., result, duplicate handling, permissions). It is incomplete for an agent to use safely.
Complex tools with many parameters or behaviors need more documentation. 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 additional meaning beyond the parameter descriptions already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'link' and the resources 'ticket' and 'service call', and the name itself indicates creation. It implicitly distinguishes from sibling tools like 'autotask_search_service_call_tickets' and 'autotask_delete_service_call_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 when/when-not or alternative guidance is provided. The description does not tell the agent when to use this tool versus other service-call-related tools, such as when not to use it if the link already exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_service_call_ticket_resourceB
Assign a resource (technician) to a service call ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| serviceCallTicketID | Yes | The service call ticket ID to assign the resource to | |
| resourceID | Yes | The resource (technician) ID to assign | |
| roleID | No | The role ID for the resource on this service call (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects (e.g., overwrites existing assignment?), idempotency, or permission needs. It only states the action, leaving behavioral traits unspecified.
Agents need to know what a tool does to the 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, focused sentence with no wasted words. It efficiently conveys 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?
The tool has no output schema and 3 parameters. The description fails to mention what the return value is, error conditions, or any post-condition. This is inadequate for a mutation 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 the parameter names and schema descriptions, so it does not improve understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Assign') and the objects ('resource (technician)' to 'a service call ticket'), distinguishing it from sibling tools like delete or search. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, prerequisites (e.g., ticker must exist), or when to avoid it. The agent receives no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_taskC
Create a new task in Autotask
| Name | Required | Description | Default |
|---|---|---|---|
| projectID | Yes | Project ID for the task | |
| title | Yes | Task title | |
| description | No | Task description | |
| status | Yes | Task status (1=New, 2=In Progress, 5=Complete) | |
| assignedResourceID | No | Assigned resource ID | |
| estimatedHours | No | Estimated hours for the task | |
| taskType | No | Task type (1=FixedWork, 2=FixedDuration). Defaults to 1. | |
| startDateTime | No | Task start date/time (ISO format) | |
| endDateTime | No | Task end date/time (ISO format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states that it creates a task, but does not disclose any behavioral traits such as idempotency, authentication requirements, side effects, or return value. Since no annotations are provided, the description should carry the burden of behavioral disclosure, which it fails to do.
Agents need to know what a tool does to the 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) but it is too brief to be informative. It could include more relevant information without being overly 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 that there is no output schema and no annotations, the description is incomplete. It does not explain what the tool returns, how errors are handled, or any important context beyond the basic action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description does not add any additional meaning beyond what the schema provides. Baseline score of 3 is appropriate given the 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 ('Create') and the resource ('task') and the system ('Autotask'). However, it does not differentiate this tool from other create tools among siblings (e.g., create_ticket, create_phase), which all have similar descriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_ticketB
Create a new ticket in Autotask
| Name | Required | Description | Default |
|---|---|---|---|
| companyID | Yes | Company ID for the ticket | |
| title | Yes | Ticket title | |
| description | Yes | Ticket description | |
| status | No | Ticket status ID | |
| priority | No | Ticket priority ID | |
| assignedResourceID | No | Assigned resource ID. If set, assignedResourceRoleID is also required by Autotask. | |
| assignedResourceRoleID | No | Role ID for the assigned resource. Required by Autotask when assignedResourceID is set. | |
| contactID | No | Contact ID for the ticket | |
| queueID | No | Queue ID to route the ticket to. Use autotask_list_queues to discover valid IDs. | |
| ticketCategory | No | Ticket category ID (picklist). Use autotask_get_field_info with entity "Tickets" and field "ticketCategory" to discover valid values. | |
| ticketType | No | Ticket type ID (picklist, e.g. Service Request, Incident, Problem, Change). | |
| issueType | No | First-level issue type ID (picklist). Required context for subIssueType. Use autotask_get_field_info (entity "Tickets", field "issueType") to discover valid values. | |
| subIssueType | No | Sub issue type ID (picklist). Must be valid for the selected issueType. Use autotask_get_field_info (entity "Tickets", field "subIssueType") to discover valid values. | |
| source | No | Ticket source ID (picklist, e.g. Phone, Email, Portal). Use autotask_get_field_info (entity "Tickets", field "source") to discover valid values. | |
| billingCodeID | No | Work type / billing code ID used for billing this ticket. | |
| serviceLevelAgreementID | No | Service Level Agreement (SLA) ID to apply to the ticket. | |
| estimatedHours | No | Estimated hours of work for the ticket. | |
| projectID | No | Project ID to associate the ticket with. Links the ticket to an existing project. | |
| ticketAdditionalContacts | No | Additional contact IDs to associate with the ticket (beyond the primary contactID). | |
| resolution | No | Ticket-level resolution text. This is the Resolution field on the ticket itself, NOT a ticket note. | |
| userDefinedFields | No | User-defined (custom) fields for the ticket, as an array of { name, value } objects matching the Autotask REST API shape. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Create a new ticket,' indicating a mutation, but no annotations are provided. It does not disclose behavioral details such as required permissions, the effect on existing data, rate limits, or response format. The burden is on the description due to missing annotations, and it fails to add useful 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, front-loaded sentence that efficiently states the purpose. It is concise, but for a tool with many parameters and important dependencies (e.g., required resource role when resource is assigned), a slightly more detailed description could be beneficial. Still, it is well-structured and free of fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (21 parameters, no output schema, no annotations), the description is minimal. It relies entirely on the schema for parameter details. While the schema covers dependencies like assignedResourceID/assignedResourceRoleID, the description does not mention typical use cases or emphasize required fields. It is minimally adequate but lacks completeness for a complex create 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 description itself adds no parameter information; however, the input schema has 100% coverage with detailed descriptions for all 21 parameters. Therefore, the description does not need to repeat this info. 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 new ticket in Autotask' uses a specific verb ('Create') and resource ('ticket'), clearly distinguishing it from siblings like autotask_update_ticket or autotask_create_ticket_note. It accurately states the action and the system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 creating a new ticket, which differentiates it from update tools like autotask_update_ticket. However, it provides no explicit guidance on when to use this tool versus alternatives, such as creating a ticket note or a task. No usage context is given beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_ticket_attachmentA
Upload a file attachment to an existing ticket. The file content must be passed as a base64-encoded string in the data field (MCP is JSON-RPC, so binary bytes must be base64-encoded). Autotask enforces a 3 MB hard limit on ticket attachments; this tool validates the decoded size before calling the API and returns a clear error if the limit is exceeded. Example: { ticketId: 12345, title: "screenshot.png", data: "iVBORw0KGgoAAAANSUhEUgAA..." }
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The ticket ID to attach the file to | |
| title | Yes | Display title for the attachment (typically the filename, e.g. "screenshot.png") | |
| data | Yes | Base64-encoded file content. Maximum decoded size: 3 MB (Autotask ticket attachment limit). Example: read a file and pass its base64 representation here. | |
| fullPath | No | Original filename including any path. Defaults to `title` if not provided. | |
| contentType | No | MIME type of the file (e.g. "image/png", "application/pdf"). Optional. | |
| publish | No | Visibility: 1 = All Autotask Users (default), 2 = Internal Users Only |
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 base64 encoding requirement, the 3 MB hard limit with validation, and clear error responses. It does not mention idempotence or permissions, but the key behavioral traits are well covered.
Agents need to know what a tool does to the 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 focused sentences followed by a concrete example. It is front-loaded with the core purpose, then adds constraints and example. There is no redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, 3 required, no output schema, and no annotations, the description is fairly complete. It covers purpose, constraints, and parameter usage. It is missing a description of the response format, which 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?
Schema coverage is 100%, giving a baseline of 3. The description adds value by explaining the base64 encoding, the size limit, and providing an example. It also clarifies the publish field's meaning. This goes beyond the 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?
The description clearly states 'Upload a file attachment to an existing ticket,' specifying the action (upload), resource (attachment), and context (existing ticket). It effectively distinguishes this tool from sibling tools like autotask_get_ticket_attachment (download) and autotask_search_ticket_attachments (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?
The description explains when to use the tool (to upload an attachment) and provides constraints: base64 encoding required and a 3 MB limit. However, it does not explicitly state when not to use it or mention alternatives, so it lacks explicit exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_ticket_chargeA
Create a charge (material, cost, or expense) on a ticket. Used to bill clients for parts, travel, or other non-labor costs.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketID | Yes | Ticket ID to add the charge to | |
| name | Yes | Charge name/title | |
| description | No | Charge description | |
| chargeType | Yes | Charge type picklist ID (use autotask_get_field_info with entityType "TicketCharges" to find valid values) | |
| unitQuantity | No | Quantity of units | |
| unitPrice | No | Price per unit | |
| unitCost | No | Cost per unit | |
| datePurchased | No | Date the charge was incurred (YYYY-MM-DD format) | |
| productID | No | Associated product ID (optional) | |
| billingCodeID | No | Billing code ID for categorization | |
| billableToAccount | No | Whether this charge is billable to the client (default: true) | |
| status | No | Charge status picklist 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 behavioral traits. It only mentions creating a charge for billing, but lacks details on authorization, rate limits, side effects (e.g., ticket total updates), or reversibility. The description does not compensate for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, each contributing value. It front-loads the core action and then provides usage context. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 12 parameters, no output schema, and a financial nature, the description is insufficient. It does not explain return values (e.g., created charge ID), how charges affect billing, or the need for external lookups (though schema covers chargeType). More context would be helpful 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?
The input schema covers all 12 parameters with descriptions (100% coverage), so the baseline is 3. The description adds no additional meaning beyond the schema; it only broadly mentions charge types. No extra value is provided for parameters beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'charge on a ticket', and specifies the types of charges (material, cost, expense). It distinguishes this tool from other create tools like autotask_create_ticket_note or autotask_create_ticket_attachment by mentioning billing for parts, travel, or non-labor costs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 this tool (to add a billable charge to a ticket) but does not explicitly provide guidance on when not to use it or distinguish it from alternatives like autotask_create_time_entry for labor. No explicit context or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_ticket_checklist_itemB
Add a new checklist item to a ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The ticket ID to add the checklist item to | |
| itemName | Yes | The checklist item text | |
| position | No | Optional ordering position for the item | |
| isCompleted | No | Whether the item starts in the completed state (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only says 'Add', but doesn't disclose whether it returns the created item, is idempotent, or requires permissions. Lacks behavioral 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?
Single sentence, no fluff. However, it is too minimal, missing return value or context. Could be improved 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?
Simple creation tool with 4 parameters, no output schema, no annotations. Description does not mention return value, error handling, or any side effects. Incomplete for an agent to use 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 covers all 4 parameters with descriptions. Description adds no extra meaning. 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?
Description clearly states the verb 'Add', resource 'checklist item', and target 'ticket'. It distinguishes from sibling tools like search, 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, no prerequisites, no exclusions. Agent has to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_ticket_noteB
Create a new note for a ticket
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The ticket ID to add the note to | |
| title | No | Note title | |
| description | Yes | Note content | |
| noteType | No | Note type (1=General, 2=Appointment, 3=Task, 4=Ticket, 5=Project, 6=Opportunity) | |
| publish | No | Publish level (1=Internal Only, 2=All Autotask Users, 3=Everyone) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the action without mentioning authentication requirements, rate limits, side effects, or what happens on success/failure. Lacks transparency beyond the operation itself.
Agents need to know what a tool does to the 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 is well-structured but minimal, missing opportunities to enrich 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?
Without an output schema, the description should explain the return value or outcome. It does not, nor does it address completion status or error handling. The tool has 5 parameters, but the description provides no context beyond the basic operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description does not add any additional meaning or context beyond what is in the schema, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new note for a ticket' uses a specific verb ('Create') and resource ('note for a ticket'), clearly distinguishing it from sibling tools like 'autotask_get_ticket_note' and 'autotask_search_ticket_notes'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when to use 'autotask_create_ticket' or 'autotask_create_project_note'. No context for prerequisites or postconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_time_entryA
Create a time entry in Autotask. Can be tied to a ticket, task, or project, OR created as "Regular Time" (no parent) for meetings, admin work, etc. For Regular Time, specify a category like "Internal Meeting", "Office Management", "Training", etc.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketID | No | Ticket ID for the time entry (omit for Regular Time) | |
| taskID | No | Task ID for the time entry (for project work, omit for Regular Time) | |
| projectID | No | Project ID for the time entry (omit for Regular Time) | |
| resourceID | No | Resource ID (user) logging the time. Can be omitted if resourceName is provided. | |
| resourceName | No | Name of the resource/user (e.g., "Will Spence"). Will be resolved to a resourceID automatically. Use this instead of resourceID for convenience. | |
| category | No | Category name for Regular Time entries (e.g., "Internal Meeting", "Office Management", "Training", "Research", "HR/Recruiting", "Travel Time", "Holiday", "PTO"). Required for Regular Time entries (when no ticket/task/project is specified). | |
| dateWorked | Yes | Date worked (YYYY-MM-DD format) | |
| startDateTime | No | Start date/time (ISO format) | |
| endDateTime | No | End date/time (ISO format) | |
| hoursWorked | Yes | Number of hours worked | |
| summaryNotes | Yes | Summary notes for the time entry | |
| internalNotes | No | Internal notes for the time entry |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the transparency burden. It accurately implies a write operation (creating a time entry) but does not disclose potential side effects (e.g., whether creation triggers notifications, requires specific permissions, or has rate limits). The description is honest but incomplete in behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, immediately states the tool's purpose, and logically structures the two primary use cases. No unnecessary words; every sentence provides 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 12 parameters, the description adequately covers the primary decision (Regular Time vs linked) and key parameter choices (category, resourceName vs resourceID). It omits guidance on start/endDateTime and internalNotes, but schema descriptions handle those. For a creation tool with no output schema, the description 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%, providing baseline 3. The description adds value by explaining the Regular Time concept and category usage, and clarifies the relationship between resourceID and resourceName. This exceeds schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and resource (time entry) and distinguishes two usage modes: linked to a ticket/task/project or Regular Time. This differentiates it from sibling tools which focus on other entities like tickets, companies, or service calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 Regular Time vs linking to ticket/task/project, and lists example categories for Regular Time. It does not explicitly state when not to use the tool, but no sibling tool creates time entries, so exclusion is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_delete_quote_itemB
Delete a quote item (line item) from a quote
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | Yes | The parent quote ID | |
| quoteItemId | Yes | The quote item ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond the deletion action, such as whether it is reversible, cascading effects, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is direct and without any redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple, the description lacks complete context such as return values, error conditions, or effects on the parent quote, which are not covered by 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?
Input schema has 100% coverage with descriptions for both parameters, so the description adds no extra 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 specifies the action (delete) and the resource (quote item from a quote), distinguishing it from sibling tools like create, update, or 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 versus alternatives, such as updating the item rather than deleting, or any prerequisites like quote status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_delete_service_callB
Delete a service call by ID
| Name | Required | Description | Default |
|---|---|---|---|
| serviceCallId | Yes | The service call ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states 'delete' without disclosing behavioral traits such as permanence, cascading effects, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single, front-loaded sentence with no wasted words. However, it is overly minimal and lacks helpful 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?
Given no output schema and no annotations, the description is insufficient for a delete operation. It does not explain return values or post-deletion state.
Complex tools with many parameters or behaviors need more documentation. 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 description adds no extra meaning beyond the schema's description of serviceCallId.
Input schemas describe structure but not intent. Descriptions should explain 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 action (delete), the resource (service call), and the identifier (by ID). It distinguishes from sibling delete tools like autotask_delete_service_call_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. Does not mention prerequisites, effects, or conditions for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_delete_service_call_ticketB
Remove a ticket association from a service call by the service call ticket record ID
| Name | Required | Description | Default |
|---|---|---|---|
| serviceCallTicketId | Yes | The service call ticket record ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does not disclose behavioral traits such as irreversibility, permission requirements, or error handling. Only states the action without 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?
One sentence, 16 words, no redundancy. 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?
Adequate for a simple delete operation with one parameter, but lacks details about effects (e.g., soft vs hard delete) or 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% and the parameter description is clear. The tool description adds minimal extra value beyond the schema, matching 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 uses 'Remove a ticket association from a service call' which is a specific verb and resource, clearly distinguishing it from sibling tools like autotask_delete_service_call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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., autotask_delete_service_call_ticket_resource) 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.
autotask_delete_service_call_ticket_resourceB
Remove a resource assignment from a service call ticket by the resource record ID
| Name | Required | Description | Default |
|---|---|---|---|
| serviceCallTicketResourceId | Yes | The service call ticket resource record ID to delete |
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 simply says 'Remove', implying deletion, but does not disclose whether the action is irreversible, what happens to related data, or any required permissions. The agent cannot infer safety or side effects from this minimal description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently communicates the tool's purpose without extraneous words. It is front-loaded with the key verb 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 delete tool with one parameter and no output schema, the description is moderately complete. It explains what is deleted and how to identify it. However, it lacks context about what the resource assignment represents and does not reference related tools (e.g., search_service_call_ticket_resources to find IDs).
Complex tools with many parameters or behaviors need more documentation. 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. The description does not add any semantic value beyond the schema's own description ('The service call ticket resource record ID to delete'). Therefore, 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 clearly states the action: 'Remove a resource assignment from a service call ticket' and specifies the method 'by the resource record ID'. This distinguishes it from sibling delete tools that target other entities (e.g., delete_service_call_ticket, delete_quote_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 versus alternatives like delete_service_call_ticket or search_service_call_ticket_resources. It does not mention prerequisites (e.g., the resource must be assigned), nor does it explain context such as when a resource assignment should be removed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_delete_ticket_chargeA
Delete a ticket charge by ID. Requires both the parent ticket ID and charge ID.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The parent ticket ID | |
| chargeId | Yes | The charge ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden. It indicates a destructive action but does not disclose potential side effects, authorization requirements, or irreversibility. The lack of annotations makes this a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence without any unnecessary words, efficiently conveying the 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?
For a simple deletion tool with no output schema, the description covers the required parameters and basic action. However, it could mention the success response or confirmation behavior 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?
Schema already describes both parameters with 100% coverage. The description adds that both are required and for the parent charge, but offers little extra 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), the resource (ticket charge), and the requirement for both ticket ID and charge ID, distinguishing it from other ticket-related operations like create or 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?
It specifies the need for both IDs, giving a prerequisite, but does not provide guidance on when to use delete instead of update or other alternatives, nor does it mention how to obtain the IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_delete_ticket_checklist_itemB
Delete a checklist item from a ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The parent ticket ID | |
| itemId | Yes | The checklist item ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It only states it's a delete operation but lacks details on side effects, permissions, reverting, or any impacts beyond deletion. 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?
Single sentence, no wasted words, front-loaded with action. Appropriate length for a simple 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 straightforward delete with no output schema, the description is minimally adequate. However, it lacks context about error handling, confirmation, or related operations, which could be useful given the many 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 covers both parameters (ticketId, itemId) with clear descriptions. Baseline score is 3 due to 100% schema coverage; the tool description adds no extra 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?
Description clearly states the action: 'Delete a checklist item from a ticket.' It uses a specific verb (delete) and resource (checklist item from a ticket), and is distinct from sibling tools that handle other entities or 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 vs alternatives (e.g., update_ticket_checklist_item). No prerequisites, context, or exclusions mentioned. The description is too brief to help an agent decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_execute_toolB
Execute any Autotask tool by name. Use after discovering tools via autotask_list_category_tools.
| Name | Required | Description | Default |
|---|---|---|---|
| toolName | Yes | The tool name to execute (e.g., "autotask_search_tickets") | |
| arguments | No | Arguments to pass to the tool |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 'execute', which implies an action but does not disclose side effects, permissions, or error behavior. For a generic executor, more 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?
Two concise sentences that front-load the core purpose and usage hint. No redundant content; 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 description is minimal but functional for a generic executor. However, given the large number of sibling tools and no output schema, it could benefit from details on return format or 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%, so baseline is 3. Description does not add extra meaning beyond 'toolName' and 'arguments' as stated in schema; it mentions 'by name' but no further detail.
Input schemas describe structure but not intent. Descriptions should explain 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 'Execute any Autotool tool by name', providing a specific verb and resource. It distinguishes itself from sibling tools which are specific operations, implying this is a generic executor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mentions 'Use after discovering tools via autotask_list_category_tools', giving a usage sequence. However, no guidance on when not to use it or alternatives (e.g., using direct tool calls).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_billing_itemB
Get detailed information for a specific billing item by ID
| Name | Required | Description | Default |
|---|---|---|---|
| billingItemId | Yes | The billing item ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only says 'detailed information' but does not disclose what fields are returned, if it modifies state, or any authentication/rate limit details. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Front-loaded with verb and resource. 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?
Tool is simple with one parameter and no output schema. Description conveys basic purpose but lacks details on returned data or error handling. Adequate for a straightforward retrieval, but incomplete for an agent to fully understand 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 descriptions cover 100% of parameters. The description adds 'detailed information' which is vague and does not significantly enhance the schema's definition of billingItemId. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get', resource 'billing item', and method 'by ID'. It distinguishes from autotask_search_billing_items (which searches/list) by implying a single specific item retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs alternatives like autotask_search_billing_items. The description does not mention 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.
autotask_get_company_noteB
Get a specific company note by company ID and note ID
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | The company ID | |
| noteId | Yes | The note ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states a read operation ('get') which implies no side effects, but lacks details on permissions, error conditions, or return value structure. Adequate for a simple retrieval 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 superfluous words. Clearly conveys the core purpose. Could be more structured but effective for 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 simplicity (2 required numeric params, no output schema), the description is minimally adequate. It explains what the tool does and what inputs are needed, but does not describe the output or any limitations. Sufficient but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes both parameters as numbers with descriptions. Description adds no additional meaning beyond what schema provides. 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?
Description clearly states action 'get' and resource 'company note', specifying required identifiers. However, it does not explicitly differentiate from sibling 'autotask_search_company_notes' which retrieves multiple notes, though the wording 'a specific' implies uniqueness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like search tools. Missing when-not-to-use instructions or context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_company_site_configurationA
Get the site configuration record(s) for a company in Autotask. Site configurations contain tenant-defined fields used to track per-company configuration data. Call this first to discover which fields are available before calling autotask_update_company_site_configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | The company ID whose site configuration records should be returned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It does not mention idempotency, authorization requirements, pagination, or response size. The description only states the purpose and usage sequence, leaving significant behavioral unknowns 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 two sentences, front-loading the action and resource, then providing context. Every sentence adds value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description explains the concept of site configurations and the recommended workflow. However, it does not describe the return format or any edge cases, which would be helpful for an agent. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a description for the single parameter 'companyId'. The tool description adds no additional meaning beyond the schema, which is already clear. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the site configuration record(s) for a company in Autotask.' It uses a specific verb ('Get') and resource ('site configuration for a company'). It also implicitly distinguishes from its sibling 'autotask_update_company_site_configuration' by recommending this tool for discovery before 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?
The description explicitly advises: 'Call this first to discover which fields are available before calling autotask_update_company_site_configuration.' This provides clear context and a recommended usage sequence. It does not enumerate when not to use, but the guidance is sufficient for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_expense_reportA
Get a specific expense report by ID
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | The expense report ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It indicates a read operation ('Get'), but lacks disclosure of side effects, permissions, or rate limits. For a simple retrieval, it 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?
Description is a single sentence with no extra words. 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?
No output schema exists, and the description does not specify what fields are returned (e.g., full report details including items and totals). Completeness is acceptable for a simple get but could be improved.
Complex tools with many parameters or behaviors need more documentation. 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 the parameter reportId described as 'The expense report ID to retrieve'. 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?
Description clearly states the action (Get), the resource (expense report), and the identifier (by ID). It distinguishes from sibling tools like autotask_search_expense_reports (which searches) and autotask_create_expense_report (which creates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 ID is known, but does not explicitly state when to use this tool versus alternatives like autotask_search_expense_reports. No guidance on when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_field_infoA
Get field definitions for an Autotask entity type, including picklist values. Useful for discovering valid values for any picklist field.
| Name | Required | Description | Default |
|---|---|---|---|
| entityType | Yes | The Autotask entity type (e.g., "Tickets", "Companies", "Contacts", "Projects", "ProjectTasks", "TicketNotes"). Note: project tasks use "ProjectTasks" (or "Tasks" which auto-maps). See Autotask REST API entity names. | |
| fieldName | No | Optional: filter to a specific field name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the core behavior: retrieving field definitions and picklist values. While it doesn't mention error handling or response size, for a read-only metadata tool it is transparent enough.
Agents need to know what a tool does to the 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 conveys the action, second explains utility. No extraneous words, front-loaded with the main purpose. 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?
The tool has only 2 parameters, no output schema, and low complexity. The description explains the main task and its value. It could describe the return format or error conditions, but overall it is complete enough for an experienced user.
Complex tools with many parameters or behaviors need more documentation. 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 what the schema already provides for 'entityType' and 'fieldName'. The schema descriptions are clear.
Input schemas describe structure but not intent. Descriptions should explain 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 'Get field definitions for an Autotool entity type, including picklist values.' The verb 'Get' and resource 'field definitions' are specific. None of the sibling tools provide field metadata, so it distinguishes well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 says 'Useful for discovering valid values for any picklist field,' which gives clear context for when to use it. Since no sibling tools serve the same purpose, no explicit alternatives are needed, but an exclusion statement is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_invoice_detailsA
Get a single Autotask invoice with its nested line items (billing items posted to the invoice). Use for finance workflows that need to see exactly what an invoice contains.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | The invoice ID to fetch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior fully. It states the tool returns an invoice with line items, indicating a read operation, but lacks details on error handling (e.g., missing invoice ID), permissions required, or limitations on data volume.
Agents need to know what a tool does to the 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 redundant information, front-loaded with the core action and key detail (nested line items). 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?
With no output schema, the description could provide more detail about the returned structure (e.g., fields of an invoice). However, the tool name and description together give a reasonable idea. Minimal but adequate for 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 description coverage is 100%, so the schema already documents the single parameter (invoiceId). The description does not add additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets a single invoice with nested line items, distinguishing from sibling tools that handle tickets, companies, etc. The verb+resource is specific and the description includes the purpose (finance workflows).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 use case ('finance workflows that need to see exactly what an invoice contains'), providing context for when to use. However, does not explicitly exclude scenarios or mention alternatives like search_invoices for listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_opportunityA
Get a specific opportunity by ID
| Name | Required | Description | Default |
|---|---|---|---|
| opportunityId | Yes | The opportunity ID to retrieve |
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 only states 'Get' which implies read-only, but does not disclose any other behavioral traits (e.g., authentication, rate limits, side effects).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the action and resource, no unnecessary words. Appropriate for a simple retrieval 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?
The tool is simple with one parameter and no output schema; the description is minimally adequate but could be improved by mentioning what is returned (e.g., the opportunity 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?
Schema description coverage is 100% with a clear description of the parameter. The tool description adds no additional meaning beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (Get), the resource (opportunity), and the method (by ID). It distinguishes from sibling autotask_search_opportunities which searches multiple results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 an ID is known, but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like using the search tool if the ID is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_productA
Get a specific product by ID
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | The product ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral aspects such as idempotency, side effects, or authentication needs. For a simple retrieval, the behavior is straightforward but lacks nuance 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 concise sentence with no unnecessary words, effectively communicating 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?
Given the simplicity of the tool (one parameter, no output schema), the description is complete enough for an agent to understand its use. It could mention the return format, but it's not critical.
Complex tools with many parameters or behaviors need more documentation. 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 description. The overall description does not add additional meaning beyond what the input schema already provides, 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 'Get a specific product by ID' clearly states the verb (Get) and resource (product) and the method (by ID). It distinguishes from the sibling 'autotask_search_products' which implies search by criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'autotask_search_products'. The description does not provide when-not or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_project_noteA
Get a specific project note by project ID and note ID
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID | |
| noteId | Yes | The note ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden. It only states 'Get' but does not disclose idempotency, error behavior, or whether it's read-only. The name hints at read-only, but no explicit behavioral traits are described.
Agents need to know what a tool does to the 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 12 words, front-loading the purpose with no wasted words. Every word is necessary and earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 explain what is returned, but it does not mention the return value or error handling. However, for a simple retrieval tool, the core purpose is stated. Adequate but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters have descriptions). The description does not add extra meaning beyond the schema. Baseline 3 is appropriate as the schema already documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a specific project note by project ID and note ID', specifying the verb (Get), resource (project note), and identifying parameters. This distinguishes it from siblings like search or create project notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. While the parameters imply you need exact IDs, no alternatives or exclusions are mentioned, leaving the usage context implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_quoteB
Get a specific quote by ID
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | Yes | The quote ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosure but only offers a minimal statement. It does not mention that this is a read operation, what data is returned, or any potential restrictions (e.g., permissions, field availability).
Agents need to know what a tool does to the 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, front-loaded sentence with no unnecessary words. It is appropriately sized for a simple retrieval 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 has one parameter and no output schema, the description covers the essentials but lacks completeness regarding return values or any additional behavioral context. It is minimally 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 description coverage is 100% for the single required parameter (quoteId), so the schema fully documents it. The description adds no extra meaning beyond the schema, thus 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 'Get a specific quote by ID' clearly specifies the action (get) and resource (quote by ID), distinguishing it from sibling tools like autotask_search_quotes (which lists quotes) and autotask_create_quote (which creates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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., search_quotes for finding quotes). The description does not mention prerequisites or context, 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.
autotask_get_quote_itemA
Get a specific quote item by ID
| Name | Required | Description | Default |
|---|---|---|---|
| quoteItemId | Yes | The quote item ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether this is a read-only operation, required permissions, error behavior (e.g., if ID not found), or any other 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?
The description is a single, concise sentence that conveys the essential information without any unnecessary words or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool, the description is adequate but could be improved by mentioning the expected structure of the returned data or error handling, especially given the absence of 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% and the parameter description is already clear. The tool description adds minimal value beyond confirming that the quote item is retrieved by ID, 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 clearly states the action (get) and the resource (specific quote item by ID), distinguishing it from sibling tools like search_quote_items (search) and create_quote_item (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 implies usage when you have a quoteItemId, but does not explicitly mention when to use this tool versus alternatives like search_quote_items, nor does it state prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_serviceA
Get a specific service by ID
| Name | Required | Description | Default |
|---|---|---|---|
| serviceId | Yes | The service ID to retrieve |
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 says what the tool does, not behavioral traits like error handling (e.g., what happens if ID is invalid), authentication requirements, or that it is a read-only operation. The description lacks 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 sentence that immediately conveys the tool's purpose. No extraneous words, front-loaded, and fits the simple nature of the 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 get-by-ID tool with one parameter and no output schema, the description is adequate but minimal. It does not describe the return value structure or behavior on errors, which could be helpful for an agent without prior knowledge of the API.
Complex tools with many parameters or behaviors need more documentation. 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% (serviceId described in schema). The description does not add any additional meaning beyond the schema; it essentially repeats the schema's description. 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 'Get', the resource 'a specific service', and the identifier 'by ID'. It distinguishes from sibling tools like autotask_search_services (list/filter) and autotask_get_service_bundle (bundle retrieval).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a service ID is known and the full service details are needed, but does not explicitly state when to use this tool versus alternatives (e.g., when to search vs. get). 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.
autotask_get_service_bundleB
Get a specific service bundle by ID
| Name | Required | Description | Default |
|---|---|---|---|
| serviceBundleId | Yes | The service bundle ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Get' which implies a read operation. It does not disclose any behavioral traits such as required permissions, data freshness, or whether the operation is idempotent. Minimal disclosure for a tool that could have 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 directly states the purpose. It is front-loaded and contains no unnecessary words. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID operation with one parameter, the description is adequate. However, it lacks usage context and does not mention the return format, which could be helpful. Without output schema, some guidance on response 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?
Schema coverage is 100% and the parameter 'serviceBundleId' is described in the schema. The tool description does not add any extra information beyond what the schema provides, so it meets the baseline for high coverage 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 'Get a specific service bundle by ID', using a specific verb and resource. It distinguishes from the sibling 'autotask_search_service_bundles' which is for searching multiple bundles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'autotask_search_service_bundles'. There is no context about prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_service_callB
Get a specific service call by ID
| Name | Required | Description | Default |
|---|---|---|---|
| serviceCallId | Yes | The service call ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a read operation with no side effects, which is typical for 'get'. However, it doesn't explicitly state that it is read-only or disclose any potential errors 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 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, the description is minimally adequate but lacks return type or error context. No output schema is present, so the description could mention that the full service call object 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?
Schema coverage is 100% with a clear parameter description. 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 'Get a specific service call by ID' clearly identifies the action (get) and resource (service call). It distinguishes from search, create, update, and delete siblings, though it doesn't elaborate on what a service call is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 such as autotask_search_service_calls. The agent is not told that this tool requires a known ID, while search is for discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_ticket_attachmentA
Get a specific ticket attachment by ticket ID and attachment ID
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The ticket ID | |
| attachmentId | Yes | The attachment ID to retrieve | |
| includeData | No | Whether to include base64 encoded file data (default: false) |
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 does not disclose what the tool returns (e.g., metadata only, base64 data only if includeData is true), any authentication requirements, or side effects. For a read operation, it lacks essential context about the output structure and behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence of 11 words, immediately conveying the core action. Every word earns its place, and there is no superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and full schema coverage, the description is minimally adequate. However, it does not explain the nature of the returned data (e.g., attachment metadata, optional file data), which could lead to agent confusion. The lack of an output schema increases the need for such context, which is absent.
Complex tools with many parameters or behaviors need more documentation. 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 does not add any additional meaning to the parameters beyond what is already in the schema. It simply restates the purpose of the IDs, but does not clarify the purpose of 'includeData' or how the parameters influence the result.
Input schemas describe structure but not intent. Descriptions should explain 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 'specific ticket attachment' with its identifiers (ticket ID and attachment ID). It distinctly separates from sibling tools like 'autotask_search_ticket_attachments' (which would retrieve multiple attachments) and 'autotask_create_ticket_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?
The description implies the tool is used when you need a specific attachment by ID, but it does not provide explicit guidance on when to use it versus alternatives like 'autotask_search_ticket_attachments'. There are no prerequisites, exclusions, or context about 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.
autotask_get_ticket_chargeB
Get a specific ticket charge by ID
| Name | Required | Description | Default |
|---|---|---|---|
| chargeId | Yes | The ticket charge ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states 'Get', implying read-only, but no details on permissions, side effects, or output format. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with no extraneous content. Front-loaded with essential 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 one simple parameter and no output schema, description is adequate but does not explain what a ticket charge is or what the return value looks like. 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?
Schema coverage is 100% (chargeId described). Description adds no extra meaning beyond 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?
Description is specific: 'Get a specific ticket charge by ID' clearly states verb (Get), resource (ticket charge), and scope (by ID), distinguishing it from search/list/sibling 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 on when to use this vs sibling tools like 'search_ticket_charges' or 'create/update/delete'. Agent must infer usage from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_ticket_detailsA
Get detailed information for a specific ticket by ID. Use this for full ticket data when needed.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketID | Yes | Ticket ID to retrieve | |
| fullDetails | No | Whether to return full ticket details (default: false for optimized data) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only says 'Get detailed information', hinting at a read operation, but does not explicitly state idempotency, side effects, or safety. For a mutation-ambiguous context, 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 two short sentences, front-loading the key action. Every word serves a purpose, and the structure is efficient for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool and no output schema, the description covers the core purpose and usage hint. However, it omits specifics about the return format, what 'full details' entails, and error handling, leaving gaps for an agent needing complete 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% coverage, so baseline is 3. The description adds no additional meaning to the parameters beyond what the schema already provides. It does not clarify the 'fullDetails' parameter's effect 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 action 'Get detailed information for a specific ticket by ID', specifying the resource and the unique identifier. The phrase 'Use this for full ticket data when needed' hints at differentiation from sibling tools like autotask_search_tickets, making the purpose distinct and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a mild usage hint ('Use this for full ticket data when needed') but does not explicitly state when to avoid this tool or mention alternatives. It implies usage context but lacks clear guidance compared to a high-scoring entry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_ticket_noteA
Get a specific ticket note by ticket ID and note ID
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The ticket ID | |
| noteId | Yes | The note ID to retrieve |
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. The verb 'Get' implies a read-only operation with no side effects, which is acceptable for a retrieval tool. However, it does not explicitly state that it is non-destructive or require special permissions, leaving some implicit assumptions.
Agents need to know what a tool does to the 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 front-loaded with the action and resource. It contains no extraneous information and is 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?
The tool has no output schema, so the description should provide some indication of the return value. It does not describe the response shape or handling of errors (e.g., if the note does not exist). For a simple get operation, this is minimally adequate but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters with clear descriptions: 'The note ID to retrieve' and 'The ticket ID'. The description adds no additional meaning beyond what the schema provides, which is sufficient. Schema coverage is 100%, 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 'Get a specific ticket note by ticket ID and note ID' clearly specifies the action (get), the resource (specific ticket note), and the identifiers (ticket ID and note ID). It differentiates from siblings like autotask_search_ticket_notes which retrieves multiple notes, and autotask_create_ticket_note which creates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific note ID and ticket ID. It does not explicitly state when not to use it or mention alternatives, but the context is clear: use this to retrieve a single note, not to search or create. The sibling tools for searching and creating provide clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_list_categoriesA
List available tool categories. Use this to discover what types of Autotask operations are available before loading specific tools.
| 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 is the sole source of behavioral information. It indicates a read-only listing operation without side effects, but does not elaborate on the output format or any other behavioral traits. This is adequate for a simple 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 two sentences, front-loaded with the action, and waste-free. It efficiently conveys both the action and the use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 covers the essential purpose and usage context. It provides enough information for an agent to understand when to call it, though it does not describe the output 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 tool has 0 parameters and 100% schema coverage, so the description has no need to explain parameters. The baseline for zero parameters is 4. It could have explicitly stated 'No parameters required', but it's not necessary.
Input schemas describe structure but not intent. Descriptions should explain 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 'List' and resource 'tool categories', clearly stating its purpose. It also differentiates itself from sibling tools by suggesting use for discovery before loading specific 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 explicitly states when to use this tool ('Use this to discover what types of Autotask operations are available before loading specific tools'), providing clear context. While it doesn't specify when not to use it, the purpose is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_list_category_toolsA
List tools in a specific category with full schemas. Use after autotask_list_categories to see available tools and their parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category name from autotask_list_categories (e.g., "tickets", "financial", "companies") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It states the tool lists tools with full schemas, which is a behavioral trait. No mention of side effects or constraints, but none expected for a read-only list 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 sentences, 20 words, front-loaded with action and output, second sentence gives usage order. 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 list tool with one parameter and no output schema, the description is complete: it explains what it does, when to use it, and what input to provide. References sibling tool for 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 one parameter with a clear description in the schema. The tool description adds example values ('tickets', 'financial', 'companies'), enhancing understanding 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 verb 'List', the resource 'tools in a specific category', and distinguishes from the sibling tool 'autotask_list_categories' which lists categories, not 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?
Explicitly states 'Use after autotask_list_categories to see available tools and their parameters', providing clear when-to-use context and workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_list_phasesB
List phases for a project in Autotask
| Name | Required | Description | Default |
|---|---|---|---|
| projectID | Yes | Project ID to list phases for | |
| pageSize | No | Results per page (default: 25, max: 100) |
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 behavioral traits. It only states 'list,' implying a read operation, but fails to mention pagination behavior, result limits, or any side effects. This is insufficient for an unannotated 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 with no unnecessary words. However, it lacks any structure (e.g., bullet points) that could improve readability for agents. Still, it is 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?
Given the tool's simplicity (2 params, no output schema), the description should at least mention that it returns a list of phases. Without this or any behavioral context, the description is incomplete. The missing output schema amplifies the need for description 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 clear descriptions for both parameters (projectID, pageSize). The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists phases for a project in Autotask. The verb 'list' and resource 'phases' with qualifier 'for a project' unambiguously defines the tool's purpose. No sibling tool duplicates this 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 is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., needing a projectID from another tool) or when not to use it. The description solely states the operation without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_list_queuesA
List all available ticket queues in Autotask. Use this to find queue IDs for filtering tickets by queue.
| 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 carries the full burden of behavioral disclosure. It states that the tool lists all queues, but does not mention any side effects, performance implications, authentication requirements, or whether the list is paginated. This is minimal transparency for a simple 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 two sentences long, front-loading the purpose and usage. Every word earns its place; there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no parameters, no output schema), so the description is largely adequate. However, it does not specify the output fields (e.g., id, name) or any prerequisites, which would be helpful for an agent using the result for filtering. Minor gaps 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?
The input schema is empty with 0 parameters, and schema coverage is 100% (trivially). The description does not add parameter semantics beyond what the schema already conveys, which is nothing. 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 lists all available ticket queues and specifies the purpose of finding queue IDs for filtering tickets. It uses a specific verb ('list') and resource ('available ticket queues'), distinguishing it from sibling tools like autotask_list_ticket_statuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'Use this to find queue IDs for filtering tickets by queue.' It implicitly tells the agent when to use this tool (when queue IDs are needed) but does not explicitly mention when not to use it or compare with alternatives, though no direct alternatives exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_list_ticket_prioritiesA
List all available ticket priorities in Autotask. Use this to find priority values for filtering or creating tickets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only, non-destructive operation. No annotations exist, but the description carries the burden adequately for a simple list tool. It does not disclose any potential side effects or authentication needs, but those are expected to be 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. The first sentence states the action, the second provides a usage rationale. It is appropriately front-loaded and 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 list tool with no parameters and no output schema, the description is fully adequate. It explains what the tool does and why it is useful, without leaving any obvious 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?
There are zero parameters, and the schema coverage is 100%. Baseline for 0 parameters is 4. The description does not need to add parameter information, and it correctly states the tool's purpose without any parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all available ticket priorities' with a specific verb and resource. It distinguishes itself from sibling tools that handle tickets, notes, projects, etc., by focusing solely on priorities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when to use the tool: 'Use this to find priority values for filtering or creating tickets.' This provides clear context, though it does not mention alternatives or when not to use it, which is acceptable for a simple lookup tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_list_ticket_statusesA
List all available ticket statuses in Autotask. Use this to find status values for filtering or creating tickets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read-only list operation, but lacks details on return format or any behavioral nuances. Adequate for a simple 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 clear sentences with no redundant information. 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?
For a parameterless list tool, the description fully explains what the tool does and when to use it. No additional context 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?
No parameters (0 params, 100% schema coverage). Baseline score of 4 applies 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?
The description clearly states the verb 'List' and the resource 'all available ticket statuses'. It explains the purpose for filtering or creating tickets, distinguishing it from sibling tools like 'list_queues' or 'list_ticket_priorities'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 ('to find status values for filtering or creating tickets'). Does not mention when-not to use, but given the simplicity, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_routerA
Intelligent tool router - describe what you want to do and get the right tool suggestion with pre-filled parameters. Use this when unsure which tool to call.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | Natural language description of what you want to do (e.g., "find tickets for Acme Corp", "log 2 hours on ticket 12345", "create a quote for client") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description does not mention any behavioral traits such as side effects, auth requirements, rate limits, or whether it is read-only. For a router tool, this information is important to set 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?
The description is two concise sentences with no redundant information. Every sentence adds value, and the purpose 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 that the tool is a router to many sibling tools, the description adequately conveys its purpose and usage. However, it does not describe the output format (e.g., what the suggestion looks like), leaving some ambiguity. The presence of no output schema increases the need for explanation.
Complex tools with many parameters or behaviors need more documentation. 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 'intent' has a description with concrete examples (e.g., 'find tickets for Acme Corp'), adding value beyond the schema's type definition. Schema coverage is 100%, so the description enriches 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 clearly states the tool's function as a router: 'Intelligent tool router - describe what you want to do and get the right tool suggestion with pre-filled parameters.' This distinguishes it from the many specific sibling tools that perform direct 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?
The description explicitly advises when to use this tool: 'Use this when unsure which tool to call.' This provides clear context, though it does not mention when not to use it (e.g., when you already know the correct tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_billing_item_approval_levelsB
Search for billing item approval levels. These describe multi-level approval records for Autotask time entries, enabling visibility into tiered approval workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| timeEntryId | No | Filter by time entry ID | |
| approvalResourceId | No | Filter by approver resource ID | |
| approvalLevel | No | Filter by approval level (1, 2, 3, etc.) | |
| approvedAfter | No | Filter approvals on or after this date (ISO format) | |
| approvedBefore | No | Filter approvals on or before this date (ISO format) | |
| page | No | Page number for pagination (default: 1) | |
| pageSize | No | Results per page (default: 25, max: 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or pagination behavior. For a search tool, basic transparency about idempotency or side effects is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and front-loaded with the core purpose. It avoids fluff but could optionally add a brief note about filtering or pagination to improve utility without significant 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 7 optional parameters, no output schema, and no annotations, the description is minimally adequate. It explains what the tool does but lacks information about return format, default behaviors, or integration with time entries. Schema covers parameters but not overall 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?
All 7 parameters have full descriptions in the input schema (100% coverage), so the description adds no additional meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches for billing item approval levels and explains they are multi-level approval records for time entries, differentiating it from sibling search tools like search_billing_items or search_time_entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 searching approval records but does not explicitly state when to use this tool versus alternatives like search_billing_items or search_time_entries. No usage 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.
autotask_search_billing_itemsA
Search for billing items in Autotask. Billing items represent approved and posted billable items from the "Approve and Post" workflow. Returns 25 results per page by default.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Filter by company ID | |
| ticketId | No | Filter by ticket ID | |
| projectId | No | Filter by project ID | |
| contractId | No | Filter by contract ID | |
| invoiceId | No | Filter by invoice ID | |
| isInvoiced | No | If true, only return billing items that have been attached to an invoice (invoiceID is set). If false, only return items that have not yet been invoiced. Answers "what has and hasn't been invoiced yet". | |
| dateFrom | No | Filter billing items with itemDate on or after this date (ISO format, e.g. 2026-01-01) | |
| dateTo | No | Filter billing items with itemDate on or before this date (ISO format) | |
| postedAfter | No | Filter items posted on or after this date (ISO format, e.g. 2026-01-01) | |
| postedBefore | No | Filter items posted on or before this date (ISO format) | |
| page | No | Page number for pagination (default: 1) | |
| pageSize | No | Results per page (default: 25, max: 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. Mentions pagination default (25 per page) and implies read-only via 'search', but does not explicitly disclose read-only nature, authentication needs, or rate limits. 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 sentences, front-loaded with purpose, and includes key detail on billing items and default pagination. 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?
No output schema, but description covers purpose, default pagination, and entity definition. Could be improved by mentioning that all filters are optional or how pagination works with page parameter, but sufficient for a basic 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 description coverage is 100%, so baseline is 3. Description does not add extra meaning beyond schema; it only rephrases the purpose. No compensation for parameter semantics 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?
Clear verb+resource: 'Search for billing items'. Defines billing items as approved/posted from 'Approve and Post' workflow. Distinguishes from sibling tools like autotask_get_billing_item (single item) and autotask_search_billing_item_approval_levels (different entity).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context on billing items but lacks explicit when-to-use vs. get tool or alternative search tools. Implies usage for finding multiple billing items, but no direct guidance or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_companiesB
Search for companies in Autotask. Returns 25 results per page by default. Use page parameter for more results.
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search term for company name | |
| isActive | No | Filter by active status | |
| page | No | Page number for pagination (default: 1) | |
| pageSize | No | Results per page (default: 25, max: 200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions pagination behavior but does not disclose whether the operation is read-only, any authentication requirements, or the scope of results. Minimal behavioral info beyond the obvious search functionality.
Agents need to know what a tool does to the 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 unnecessary words. Efficiently communicates key points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 describe the structure of returned results. For a search tool, knowing what fields are returned is important. 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?
Input schema has 100% description coverage. The description adds context about default page size and pagination, but this is already implied by schema defaults. Marginal value added 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 it searches for companies in Autotask, which is a specific verb and resource. It distinguishes itself from other search tools by targeting companies, but does not explicitly differentiate from sibling search tools like autotask_search_contacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 pagination (default 25 results per page, use page parameter). However, it does not offer any guidance on when to use this tool versus other search tools, nor does it 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.
autotask_search_company_notesC
Search for notes on a specific company
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | The company ID to search notes for | |
| pageSize | No | Number of results to return (default: 25, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'search', without indicating that results are paginated (though pageSize parameter exists), what fields are returned, or any side effects. The agent is left uninformed about key behaviors like ordering or filtering capabilities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at 8 words, but it lacks structure and could be expanded to include key details without being verbose. It is not wasteful, but perhaps too terse for optimal 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 tool has no annotations, no output schema, and only two parameters, the description should provide more context about the nature of notes (e.g., are they internal, customer-facing?), the response format (list of note objects), and search behavior. The current description leaves significant gaps for an agent to understand how to use the tool 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?
Input schema coverage is 100%, with both parameters having clear descriptions. The description adds no additional meaning beyond the schema. Since the schema already documents the parameters adequately, 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 'Search for notes on a specific company' clearly identifies the verb (search) and the resource (notes on a company). It distinguishes from sibling tools like autotask_get_company_note (which likely retrieves a single note) and autotask_search_companies (which searches companies, not notes). However, it does not specify what constitutes a 'note' in this context, 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 is provided on when to use this tool versus alternatives. For example, it does not explain when to use search_company_notes vs get_company_note, nor does it mention any prerequisites or context. The description is solely functional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_configuration_itemsC
Search for configuration items in Autotask with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search term for configuration item name | |
| companyID | No | Filter by company ID | |
| isActive | No | Filter by active status | |
| productID | No | Filter by product ID | |
| pageSize | No | Number of results to return (default: 25, max: 500) |
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 'search' with optional filters, omitting details like pagination behavior, read-only nature, or result limits (though pageSize parameter exists in schema). This is insufficient for an AI agent to understand side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is appropriately concise, though it could potentially add more value 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 5 optional parameters and no output schema, the description lacks completeness. It does not explain the search behavior (e.g., partial matching, case sensitivity), result ordering, or how to interpret results. This leaves significant gaps for an agent to use 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?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond 'optional filters', repeating what the schema already provides. It does not explain how filters combine (e.g., AND logic) or provide examples.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Search') and the resource ('configuration items in Autotask'), with mention of optional filters. However, it does not differentiate this from numerous sibling search tools, relying solely on the name for 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?
The description provides no guidance on when to use this tool versus alternatives like autotask_search_companies or autotask_search_products. There is no mention of when not to use or 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.
autotask_search_contactsA
Search for contacts in Autotask. Returns 25 results per page by default. Use page parameter for more results.
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search term for contact name or email | |
| companyID | No | Filter by company ID | |
| isActive | No | Filter by active status (1=active, 0=inactive) | |
| page | No | Page number for pagination (default: 1) | |
| pageSize | No | Results per page (default: 25, max: 200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only mentions pagination behavior but does not state that this is a read-only operation, does not address rate limits, authentication requirements, 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 two sentences front-loaded with the purpose. Each sentence adds value, and there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool lacks an output schema, so the description should explain what is returned (e.g., contact fields). It does not. Pagination details are minimal. Given the tool's simplicity and the richness of the schema, it is moderately complete but missing key 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% coverage with descriptions for all five parameters. The description adds minimal value beyond the schema, only noting the default page size and the page parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for contacts in Autotask. It distinguishes itself from sibling search tools targeting different entities (e.g., companies, tickets) by specifying the resource as 'contacts'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 default pagination (25 results) and the page parameter, implying usage for paginated searches. However, it does not provide explicit guidance on when to use this tool over other search tools, nor does it state prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_contractsC
Search for contracts in Autotask with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search term for contract name | |
| companyID | No | Filter by company ID | |
| status | No | Filter by contract status (1=In Effect, 3=Terminated) | |
| pageSize | No | Number of results to return (default: 25, max: 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like being read-only or any side effects. It only states 'search with optional filters' without explaining pagination behavior, performance, or that it is a safe 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 a single clear sentence with no wasted words. It is appropriately concise, though could benefit from slightly more detail about 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?
The tool has 4 optional parameters and no output schema. The description is too brief, missing default behavior (e.g., returns all if no filters), and especially lacks any description of the return value 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?
Schema description coverage is 100%, so baseline is 3. The description adds 'with optional filters' but does not provide additional meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for contracts with optional filters. It distinguishes from sibling tools like autotask_create_contract and autotask_update_contract by focusing on search, but does not explicitly differentiate from other search 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, such as other search tools or direct lookups. There is no mention of 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.
autotask_search_expense_reportsC
Search for expense reports with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| submitterId | No | Filter by submitter resource ID | |
| status | No | Filter by status (1=New, 2=Submitted, 3=Approved, 4=Paid, 5=Rejected, 6=InReview) | |
| pageSize | No | Number of results to return (default: 25, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral traits. It only states 'search with optional filters' and does not disclose what the response contains, how pagination works (beyond pageSize), default behavior when no filters are given, or any side effects. This is insufficient for a tool with 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?
The description is very short (6 words) and front-loaded, but it lacks any structural elements like bullet points or separation of concerns. While concise, it omits important details that could be included without adding length, such as result format or usage hints. It is minimally adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 3 parameters, no annotations, and no output schema, the description is incomplete. It does not explain return value structure, default filter behavior, or how to handle pagination beyond the pageSize parameter. For a search tool, this is a significant gap that could lead to incorrect agent execution.
Complex tools with many parameters or behaviors need more documentation. 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 (status, pageSize, submitterId). The description adds 'optional filters' but no extra meaning beyond the schema. Baseline score of 3 is appropriate because the schema already handles parameter documentation 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 'Search for expense reports with optional filters' clearly states the verb ('search') and resource ('expense reports'), and the tool is distinguished from siblings like autotask_get_expense_report and autotask_create_expense_report. However, the description is brief and could more explicitly contrast with these 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?
No explicit guidance on when to use this tool versus alternatives like autotask_get_expense_report for retrieving a single report. The description only mentions optional filters without explaining scenarios where filtering is beneficial or when pagination is needed. The lack of usage context reduces its utility for an AI agent deciding between sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_invoicesC
Search for invoices in Autotask with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| companyID | No | Filter by company ID | |
| invoiceNumber | No | Filter by invoice number | |
| isVoided | No | Filter by voided status | |
| pageSize | No | Number of results to return (default: 25, max: 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavior. It does not mention that the search is read-only, pagination defaults, rate limits, or result format. The schema details pageSize but the description omits this 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, concise but overly brief. It lacks structure and omits important usage details, making it less effective than a more comprehensive description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no output schema, the description should explain return format, pagination handling, or other context. It provides none, leaving agents unaware of key 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 coverage is 100% with parameter descriptions. The description adds no extra meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for invoices with optional filters. It is specific to invoices, distinguishing it from other Autotask search tools like autotask_search_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 (e.g., autotask_get_invoice_details for a single invoice). No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_opportunitiesC
Search for opportunities with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Filter by company ID | |
| searchTerm | No | Search term for opportunity title | |
| status | No | Filter by status | |
| pageSize | No | Number of results to return (default: 25, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It only states a basic search action, not mentioning read-only nature, pagination behavior (implied by pageSize but not stated), or any side effects. The description adds little 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 a single sentence, making it concise. However, it is too brief to be fully effective, lacking important details that would justify its brevity. It is front-loaded but 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 4 optional parameters and no output schema, the description is insufficient. It does not explain return type (e.g., list of opportunities), pagination limits, or how it differs from sibling tools. The agent is left guessing about the tool's 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?
All 4 parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description does not add extra meaning or relationships between 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 it searches for opportunities with optional filters, using a specific verb-resource pairing. However, it does not distinguish this tool from sibling search tools like autotask_search_tickets, which have similar descriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description provides no context about usage scenarios, typical workflows, or exclusions, making it hard for an agent to decide when to invoke this search versus other search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_productsB
Search for products with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search term for product name | |
| isActive | No | Filter by active status | |
| pageSize | No | Number of results to return (default: 25, max: 100) |
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 'search with optional filters', but does not mention read-only nature, default ordering, pagination, or behavior when no filters are applied. The expected output format is also absent. This is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and to the point, consisting of a single phrase. While concise, it could include slightly more context without becoming verbose. The purpose is clear, earning a high score for 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's low complexity (3 optional parameters, no output schema), the description is minimally adequate. It conveys the core purpose but lacks usage guidance and behavioral details that would fully contextualize the tool for an agent. A score of 3 reflects this balance.
Complex tools with many parameters or behaviors need more documentation. 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 three parameters have descriptions in the input schema (100% coverage). The tool description adds no extra semantic information beyond what the schema already provides; it merely restates the concept of optional filters. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resource 'products', and specifies that filters are optional. It effectively distinguishes from sibling 'search_*' tools that target different entities and from 'get_product' for single product retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'autotask_get_product' or other search tools. It does not specify search behavior (e.g., partial matching) or prerequisites, leaving the agent without 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.
autotask_search_project_notesC
Search for notes on a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID to search notes for | |
| pageSize | No | Number of results to return (default: 25, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should compensate. It does not disclose that this is a read-only operation, nor does it explain pagination behavior or potential side effects. The 'pageSize' parameter hints at pagination, but there's no indication of how to navigate results.
Agents need to know what a tool does to the 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. It is concise, though it could benefit from a slightly more structured explanation (e.g., specifying that it returns a list of notes).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 essential context for a search tool: no mention of return format, error handling, or how to use the results. Since there is no output schema, the description should provide more detail about what the agent can expect.
Complex tools with many parameters or behaviors need more documentation. 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 covers both parameters fully (100%), so additional description is not needed. The description adds no extra meaning; the schema already explains 'projectId' and 'pageSize' 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?
Description clearly states the action ('search') and resource ('notes on a specific project'), distinguishing it from siblings like 'autotask_get_project_note' and 'autotask_create_project_note'. However, it lacks specifics about the search scope or return format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives (e.g., 'autotask_get_project_note' for a single note, or other search tools). The description does not mention intended use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_projectsB
Search for projects in Autotask. Returns 25 results per page by default. Use page parameter for more results.
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search term for project name | |
| companyID | No | Filter by company ID | |
| status | No | Filter by project status | |
| projectLeadResourceID | No | Filter by project lead resource ID | |
| page | No | Page number for pagination (default: 1) | |
| pageSize | No | Results per page (default: 25, 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 pagination behavior (25 per page, page parameter) but omits other behavioral traits such as whether the operation is read-only, error handling, or output format. The pagination detail is useful but insufficient for full 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?
Two sentences, each earning its place: first states purpose, second provides pagination guidance. No wasted words, front-loaded, and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema descriptions and no output schema, the description is fairly complete for a search tool. It explains pagination and search scope. However, it could mention return fields or sorting, but overall adequate for the 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?
Input schema has 100% coverage with descriptions for all 6 parameters. The description adds no additional meaning beyond the schema; it mentions pagination defaults already captured in schema descriptions. Thus, it meets the baseline without 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 tool searches for projects in Autotask, with a specific verb and resource. However, it does not differentiate from sibling search tools (e.g., autotask_search_companies), so agents might not know when to choose this over others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 pagination defaults and how to use the page parameter, but provides no guidance on when to use this tool versus other sibling tools (e.g., get_project, list_projects). No exclusions or alternatives are mentioned, 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.
autotask_search_quote_itemsA
Search for quote items, typically filtered by quote ID
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | No | Filter by quote ID (recommended) | |
| searchTerm | No | Search term for quote item name | |
| pageSize | No | Number of results to return (default: 50, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only search operation but does not disclose additional behavioral traits such as permissions, rate limits, or response size, relying solely on the schema for pagination hints.
Agents need to know what a tool does to the 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, efficiently conveying the tool's purpose and typical use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lacks detail on return values, search behavior (e.g., exact vs fuzzy matching), and does not explain the relationship to quotes or quote items, leaving gaps for agent 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 the description adds minimal value beyond restating the primary filter (quote ID). No new semantic information 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 'Search for quote items' using a specific verb and resource, and distinguishes from sibling tools like autotask_search_quotes and autotask_get_quote_item by focusing on items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by recommending filtering by quote ID but does not explicitly state when to use this tool over alternatives like autotask_search_quotes or autotask_get_quote_item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_quotesC
Search for quotes with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Filter by company ID | |
| contactId | No | Filter by contact ID | |
| opportunityId | No | Filter by opportunity ID | |
| searchTerm | No | Search term for quote name or description | |
| pageSize | No | Number of results to return (default: 25, 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 only states 'Search for quotes with optional filters', which implies a read operation but does not disclose any behavioral traits like pagination, sorting, or what happens with no filters. Very minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is concise and front-loaded, but slightly under-specified for a search tool with multiple filters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 5 optional parameters, the description is incomplete. It does not mention that the tool returns a list of quotes, or address pagination via pageSize. The agent would lack key context about what to expect.
Complex tools with many parameters or behaviors need more documentation. 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 adds no extra meaning beyond the schema (e.g., it does not explain how filters combine or default behavior). Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resource 'quotes', indicating a read operation to find quotes. It is specific enough to distinguish from quote-related siblings like autotask_get_quote, but does not elaborate on what the search returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 autotask_get_quote (for a single quote) or autotask_create_quote (for creating). No when-not-to-use or usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_resourcesC
Search for resources (users) in Autotask. Returns 25 results per page by default. Use page parameter for more results.
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search term for resource name or email | |
| isActive | No | Filter by active status | |
| resourceType | No | Filter by resource type (1=Employee, 2=Contractor, 3=Temporary) | |
| page | No | Page number for pagination (default: 1) | |
| pageSize | No | Results per page (default: 25, max: 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It mentions pagination (default 25 results per page) but fails to disclose other important behaviors like authentication needs, rate limits, or what happens with no results. The description is minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, directly stating the purpose and a key detail about pagination. It is front-loaded and contains no unnecessary words, earning a high score for 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, the description should explain what the tool returns (e.g., a list of resource objects, fields included). It only covers pagination, leaving the user uninformed about the structure of results, error cases, 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?
Schema coverage is 100%, so baseline is 3. The description adds minimal value beyond the schema by restating the default page size, which is already defined. It does not elaborate on searchTerm, isActive, or resourceType parameters beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for resources (users) in Autotask, with a specific verb and resource. However, it does not explicitly differentiate from other search sibling tools such as search_contacts or search_companies, leaving room for 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 provides no guidance on when to use this tool versus alternatives, such as other search tools for different entities. It does not mention prerequisites, filters, or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_service_bundlesC
Search for service bundles with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search term for service bundle name | |
| isActive | No | Filter by active status | |
| pageSize | No | Number of results to return (default: 25, 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 does not disclose behavioral traits such as read-only nature (implied by 'search'), pagination details (pageSize param suggests but doesn't state), rate limits, or permissions. The description is too sparse to be transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It does not prioritize key information or include examples. It is functional but not optimally structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (3 optional params, no output schema), the description is minimal but insufficient. It does not mention the return format, default page size, or how results are ordered. Compared to similar search tools in the sibling list, it provides only the bare minimum.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so each parameter is documented in the schema. The description adds only that filters are optional (matching the schema). It does not add meaning beyond the schema, earning 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 clearly states the action ('Search') and the resource ('service bundles'), and mentions optional filters. It distinguishes from sibling tools like 'autotask_get_service_bundle' (which retrieves a specific bundle) and 'autotask_search_services' (different resource), but does not elaborate on what a service bundle is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'autotask_get_service_bundle' for a known service bundle ID or 'autotask_search_services' for searching services. There is no mention of prerequisites, limitations, 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.
autotask_search_service_callsB
Search for service calls in Autotask. Filter by company, status, or date range.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | Filter by company ID | |
| status | No | Filter by status picklist ID (use autotask_get_field_info with entityType "ServiceCalls" to find valid values) | |
| startAfter | No | Filter service calls starting on or after this date/time (ISO 8601 format) | |
| startBefore | No | Filter service calls starting on or before this date/time (ISO 8601 format) | |
| pageSize | No | Number of results to return (default: 25, 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 does not disclose behavioral traits like pagination, read-only nature, or return format. The agent needs more context to understand side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no unnecessary information. The main action is front-loaded, and every word serves a purpose. The structure is efficient 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?
Given zero annotations, no output schema, and 5 parameters, the description is too minimal. It omits pagination details, date format, and how to interpret results. A more complete description would include expected output or usage examples.
Complex tools with many parameters or behaviors need more documentation. 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 well-documented. The description adds general context about filtering by company, status, or date range, but this adds minimal value beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for service calls in Autotask', identifying the verb and resource. However, it does not distinguish from sibling tools like autotask_search_service_call_tickets, which could cause 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 lists filtering options (company, status, date range) which imply when to use the tool, but lacks explicit guidance on when not to use it or alternatives. 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.
autotask_search_service_call_ticket_resourcesB
Search for resource (technician) assignments on service call tickets.
| Name | Required | Description | Default |
|---|---|---|---|
| serviceCallTicketId | No | Filter by service call ticket ID | |
| resourceId | No | Filter by resource (technician) ID | |
| pageSize | No | Number of results to return (default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose that this is a read-only search operation, but it only says 'search'. It does not mention side effects, authorization needs, pagination behavior, or what happens with no results.
Agents need to know what a tool does to the 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 could include more context without becoming verbose, but it is not padded with 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 annotations or output schema, the description should explain the return format, pagination (pageSize), and how filters combine. It lacks these details, leaving the agent uncertain about the result 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?
Schema coverage is 100% with parameter descriptions, so the description adds little beyond repeating 'resource (technician)' which is already in the schema. It does clarify that the tool returns 'assignments', but for a search tool, the return type is obvious.
Input schemas describe structure but not intent. Descriptions should explain 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 searches for resource (technician) assignments on service call tickets, distinguishing it from sibling tools like search_service_calls or search_service_call_tickets. However, it could explicitly contrast with tools that retrieve resource details or 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?
The description implies usage for finding technician assignments but does not provide explicit guidance on when to use this tool versus alternatives, such as using get_service_call for a single service call's resources or search_resources for technician details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_service_call_ticketsA
Search for ticket associations on service calls. Use this to find which tickets are linked to a service call, or which service calls contain a specific ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| serviceCallId | No | Filter by service call ID | |
| ticketId | No | Filter by ticket ID | |
| pageSize | No | Number of results to return (default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It correctly implies a read-only search operation, but lacks detail on response format, pagination behavior, or potential limitations. While the basic behavior is clear, more transparency would be beneficial for a search 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, consisting of two sentences that front-load the core purpose. Every sentence is functional and adds necessary context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 optional parameters and no output schema. While the description explains the search intent, it does not clarify what the response contains (e.g., a list of associations, full objects, or just IDs). For a search tool, providing an overview of the return format 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?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the relationship between the two filters: 'ticketId' retrieves service calls containing that ticket, and 'serviceCallId' retrieves tickets linked to that call. This contextual meaning is not present in the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching for ticket associations on service calls. It explicitly mentions two distinct use cases: finding tickets linked to a service call or service calls containing a specific ticket. This separates it clearly from sibling tools like 'autotask_get_service_call' or 'autotask_create_service_call_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?
The description provides explicit usage guidance: 'Use this to find which tickets are linked to a service call, or which service calls contain a specific ticket.' It does not explicitly mention when not to use it or list alternatives, but the guidance is clear and actionable given the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_servicesC
Search for services with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search term for service name | |
| isActive | No | Filter by active status | |
| pageSize | No | Number of results to return (default: 25, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden. It only says 'Search for services with optional filters,' which implies a read operation but does not explicitly state it. No details about side effects, rate limits, or response characteristics are given.
Agents need to know what a tool does to the 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 that is concise and to the point. It contains no fluff, but it could be slightly expanded to include essential details 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?
There is no output schema, and the description does not hint at the return format (e.g., list of service objects). It also lacks information on default pagination, maximum results, or how to interpret results. The description is incomplete for an agent to fully understand the tool's 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 description coverage is 100%, so the input schema already documents all three parameters. The description adds no extra meaning beyond what is in the schema, e.g., it does not explain search behavior (fuzzy vs exact) or that isActive filters active services.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for services with optional filters. The verb 'Search' and resource 'services' are unambiguous. However, it does not differentiate from numerous sibling search tools like autotask_search_companies, autotask_search_tickets, etc., which all follow the same pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when not to use it. The agent must infer 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.
autotask_search_tasksB
Search for tasks in Autotask. Returns 25 results per page by default. Use page parameter for more results.
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search term for task title | |
| projectID | No | Filter by project ID | |
| status | No | Filter by task status (1=New, 2=In Progress, 5=Complete) | |
| assignedResourceID | No | Filter by assigned resource ID | |
| page | No | Page number for pagination (default: 1) | |
| pageSize | No | Results per page (default: 25, max: 100) |
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 disclosing behavioral traits. It explains pagination behavior (default 25 results, use page parameter) but does not explicitly state that this is a read-only operation or disclose any potential side effects or constraints. The transparency is minimal but adequate for a simple search 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, consisting of two efficient sentences. The most important information (purpose) is front-loaded, and there is no redundant or extraneous content. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of a search tool with 6 well-documented parameters and no output schema, the description is mostly complete. It covers the core purpose and pagination. However, it could briefly mention that filters are available (though the schema covers them) or hint at the typical use case of searching by title, status, or assignment. Overall, it is sufficiently complete for its role.
Complex tools with many parameters or behaviors need more documentation. 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 score is 3. The description does not add any meaning beyond what the schema already provides; it only reiterates pagination behavior already documented in the schema parameters. No additional semantic enrichment is present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for tasks in Autotask. It specifies both the verb and resource, making the purpose unambiguous. However, it does not explicitly differentiate from sibling search tools like autotask_search_tickets, relying solely on the tool name for 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?
The description provides no guidance on when to use this tool versus alternatives (e.g., other search tools). The only usage instruction relates to pagination, but there is no indication of appropriate contexts, prerequisites, or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_ticket_attachmentsB
Search for attachments on a specific ticket
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The ticket ID to search attachments for | |
| pageSize | No | Number of results to return (default: 10, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Search for attachments'. It lacks details on whether it returns metadata or content, authentication requirements, rate limits, 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 short sentence, which is concise and front-loaded. However, it might be overly minimal, but no extraneous information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not explain the return format, pagination details beyond pageSize, or how to navigate results. For a search tool, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with clear descriptions for both parameters (ticketId and pageSize). 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 clearly states the verb ('Search') and resource ('attachments on a specific ticket'), which distinguishes it from sibling tools like autotask_get_ticket_attachment (single) and other search 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 like autotask_get_ticket_attachment or other search tools. The usage is implied but not clarified with exclusions or specific context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_ticket_chargesA
Search for charges on a specific ticket. Charges represent materials, costs, or expenses billed against a ticket. Providing ticketId is strongly recommended โ unfiltered queries are expensive and capped at 10 results.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | No | Filter by ticket ID (recommended) | |
| pageSize | No | Number of results to return (default: 25, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavioral context about the cost and cap of unfiltered queries, beyond what the input schema provides. However, it does not disclose other traits such as read-only nature, rate limits, or authentication requirements. With no annotations, the description partially carries the transparency burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first identifies purpose, the second provides guidance. Every word serves a purpose, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with no output schema and basic parameters, the description covers the key points: what charges are, recommended filter, and performance caveats. It is slightly lacking in describing the return format or structure, but overall sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the recommendation for ticketId and explains the cap on unfiltered queries, which adds marginal value but does not significantly deepen parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for charges on a specific ticket and defines charges as materials, costs, or expenses. This distinguishes it from sibling search tools (e.g., search_tickets, search_time_entries) and related tools like get_ticket_charge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 recommends using ticketId and warns that unfiltered queries are expensive and capped at 10 results. This tells the agent when and how to use the tool effectively, though it does not explicitly name alternative tools for other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_ticket_checklist_itemsA
List all checklist items on a ticket, including their completion status. Checklist items are a sub-resource of a ticket and cannot be queried without a ticket ID.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The ticket ID whose checklist items should be listed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions return of 'completion status' but does not specify read-only nature, pagination, ordering, or limits. Adequate but incomplete 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?
Two sentences, front-loaded with purpose. No wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool without output schema, description covers purpose, required parameter, and return content. Lacks mention of result format (list of objects) but implied by 'list all.' Mostly 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 100%. Description adds context by stating the ticketId is required and that checklist items are a sub-resource. Baseline 3, plus extra value from relationship constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists all checklist items on a ticket with completion status. Identifies the action (list) and resource (checklist items). Distinguishes from sibling create/update/delete 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?
Explicitly states the requirement of a ticket ID. Context is clear for reading vs. modifying. Lacks explicit when-not-to-use or alternatives, but sibling names imply this is for listing only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_ticket_notesB
Search for notes on a specific ticket
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The ticket ID to search notes for | |
| pageSize | No | Number of results to return (default: 25, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose pagination behavior, result format, or any side effects. Only states 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?
Single sentence, no wasted words. Could be slightly expanded with more key details but remains efficiently short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lacks details about return values, pagination behavior, or result structure, which are important 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 clear descriptions for both ticketId and pageSize. Description adds no extra meaning beyond confirming the param roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and the resource 'notes' on a specific ticket, distinguishing it from siblings like autotask_get_ticket_note which retrieves a single note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 autotask_get_ticket_note or other search tools, nor any context on 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.
autotask_search_ticketsA
Search for tickets in Autotask. Returns 25 results per page by default. Use page parameter for more results. Use get_ticket_details for full data on a specific ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | No | Search by ticket number prefix | |
| companyID | No | Filter by company ID | |
| status | No | Filter by ticket status ID (omit for all open tickets) | |
| assignedResourceID | No | Filter by assigned resource ID | |
| unassigned | No | Set to true to find unassigned tickets | |
| createdAfter | No | Filter tickets created on or after this date (ISO format, e.g. 2026-01-01) | |
| createdBefore | No | Filter tickets created on or before this date (ISO format) | |
| lastActivityAfter | No | Filter tickets with activity on or after this date (ISO format) | |
| page | No | Page number for pagination (default: 1) | |
| pageSize | No | Results per page (default: 25, max: 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description bears the full burden. It mentions pagination behavior (default 25 per page, use page parameter) but does not disclose whether the operation is read-only, any rate limits, or if there are implicit filters (e.g., default shows all open tickets? Status parameter says 'omit for all open tickets' but is not described here). The transparency is adequate but not exhaustive.
Agents need to know what a tool does to the 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 concise sentences, no wasted words. Each sentence adds distinct value: purpose, pagination detail, and pointer to an alternative. It is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters (all optional) and no output schema, the description covers the essential behavioral aspects (pagination defaults) and points to get_ticket_details for deeper detail. It does not explain the output structure, but without an output schema, that's acceptable. It provides enough context for 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 description coverage is 100%, so baseline is 3. The description adds minimal parameter semantics beyond the schema (e.g., 'use page parameter for more results' re-emphasizes pagination). It does not explain the relationship between parameters or typical use cases, but schema already provides clear descriptions for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Search for tickets in Autotask', clearly indicating the verb and resource. However, it does not explicitly distinguish this tool from sibling search tools like autotask_search_time_entries or autotask_search_ticket_notes, though the resource 'tickets' is distinct enough given the server's many search 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 clear guidance: 'Returns 25 results per page by default. Use page parameter for more results.' It also directs users to 'Use get_ticket_details for full data on a specific ticket', indicating when to use an alternative tool. It lacks explicit when-not-to-use guidance for other search tools but still offers valuable direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_time_entriesA
Search for time entries in Autotask. Returns 25 results per page by default. Time entries can be filtered by resource, ticket, project, task, date range, or approval status. Use approvalStatus="unapproved" to find entries not yet posted.
| Name | Required | Description | Default |
|---|---|---|---|
| resourceId | No | Filter by resource (user) ID | |
| ticketId | No | Filter by ticket ID | |
| projectId | No | Filter by project ID | |
| taskId | No | Filter by task ID | |
| approvalStatus | No | Filter by approval status: "unapproved" = not yet posted (billingApprovalDateTime is null), "approved" = already posted, "all" = no filter (default) | |
| billable | No | Filter by billable status (true = billable only, false = non-billable only) | |
| dateWorkedAfter | No | Filter entries worked on or after this date (ISO format, e.g. 2026-01-01) | |
| dateWorkedBefore | No | Filter entries worked on or before this date (ISO format) | |
| page | No | Page number for pagination (default: 1) | |
| pageSize | No | Results per page (default: 25, max: 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry all behavioral disclosure. It explains pagination defaults (25 per page, max 500) and approvalStatus values. However, it does not explicitly state that the tool is read-only, mention required permissions, or describe any side effects. The description implies a safe operation but lacks full 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?
Two tightly written sentences. The first sentence states the core purpose and default page size. The second sentence lists filter options with a usage tip. No redundant or extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters (all documented in schema) and no output schema, the description covers the main filters and pagination. It does not describe the return format (e.g., list of time entry objects), but for a search tool the purpose is self-evident. The lack of output schema is an ecosystem gap, not a description 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?
The input schema has 100% description coverage, but the tool description adds value by stating the default page size and giving a concrete example for approvalStatus. This goes beyond the schema's enum descriptions and helps an agent understand typical 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 'Search for time entries in Autotask' (verb+resource). It lists multiple filter dimensions (resource, ticket, project, task, date range, approval status) that distinguish this from other sibling search tools like autotask_search_tickets or autotask_search_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete usage example ('Use approvalStatus="unapproved" to find entries not yet posted'), which is helpful. However, it does not explicitly mention when not to use this tool or suggest alternative tools (e.g., autotask_get_ticket_details for detailed time entry info).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_test_connectionB
Test the connection to Autotask API
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'test the connection' without disclosing what the test entails (e.g., credential validation, reachability check, side effects), and no annotations are provided 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?
The description is a single, concise sentence that is front-loaded, but it is somewhat underspecified; still, 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?
Given the tool's purpose, the description lacks important context such as what the test does, what success/failure looks like, and when to use it. With no output schema, more context is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema coverage is effectively 100%. The baseline for zero parameters is 4, and the description adds no nuisance but also 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 'Test' and the resource 'connection to Autotask API', which is specific and distinguishes this tool from the many CRUD and search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, such as using it as a prerequisite check before other API calls, or any context about prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_update_companyC
Update an existing company in Autotask
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Company ID to update | |
| companyName | No | Company name | |
| phone | No | Company phone number | |
| address1 | No | Company address line 1 | |
| city | No | Company city | |
| state | No | Company state/province | |
| postalCode | No | Company postal/ZIP code | |
| isActive | No | Whether the company is active |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It says 'update' implying mutation but does not disclose idempotency, partial update behavior (only specified fields are updated), auth requirements, or what happens if id is invalid. 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 clear sentence that conveys the essential purpose. It is concise and front-loaded, but could be slightly expanded to include key behavioral details 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 annotations and output schema, the description is too brief. It does not explain return values (e.g., whether it returns the updated company or just success), error handling, or which fields are required beyond id. The tool has 8 parameters with 100% schema coverage, but completeness is low due to missing behavioral and usage 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 the description adds no extra parameter info. Baseline 3 is appropriate. The tool updates company fields, but the description does not clarify how overlapping fields behave (e.g., if companyName is omitted, does it remain unchanged?).
Input schemas describe structure but not intent. Descriptions should explain 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 an existing company in Autotask', which identifies the verb (update), resource (company), and system (Autotask). It distinguishes from sibling tools like autotask_create_company, but could be more specific about which fields are updatable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 like autotask_update_company_site_configuration or create_company. There is no mention of prerequisites (e.g., company must exist) 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.
autotask_update_company_site_configurationA
Update fields on a company site configuration record. The set of available fields is tenant-defined, so callers should first call autotask_get_company_site_configuration to discover the available field names and current values for the company. Pass the site configuration record id (not the company id) along with an updates object containing the fields to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The company site configuration record ID to update (obtained from autotask_get_company_site_configuration). | |
| updates | Yes | Object containing the site configuration fields to update. Field names are tenant-specific. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool updates fields but does not disclose whether the update is destructive (overwrites or merges), success/failure responses, or authorization requirements. The note that fields are tenant-defined adds some context but leaves significant behavioral 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 three sentences, each with a distinct purpose: announcing the action, providing prerequisite guidance, and parameter details. It is front-loaded 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?
The tool has no output schema and no annotations. The description adequately covers prerequisites and parameter usage but lacks information about return values, error handling, or side effects. For a simple update tool, it is functional but not 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?
Schema coverage is 100% and the description adds a useful clarification about the id parameter (record id not company id). However, the updates parameter description largely mirrors the schema. The added value is marginal, meeting 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 the tool updates a company site configuration record, with a specific verb ('update') and resource. It distinguishes from sibling tools like autotask_get_company_site_configuration and autotask_update_company by focusing on site configuration records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 callers to first retrieve the current configuration using autotask_get_company_site_configuration to discover field names, and warns to use the site configuration record id, not the company id. It does not explicitly list alternatives but the prerequisite is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_update_projectA
Update an existing project in Autotask. Only the fields you provide will be updated. Common use case: set status=5 to mark a project Complete.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The ID of the project to update | |
| projectName | No | Project name | |
| description | No | Project description | |
| status | No | Project status (1=New, 2=In Progress, 5=Complete). Set to 5 to mark the project complete. | |
| departmentID | No | Department ID owning the project | |
| assignedResourceID | No | Primary assigned resource (project manager) ID. Note: Autotask may also require assignedResourceRoleID to be set alongside this field. | |
| assignedResourceRoleID | No | Role ID for the assigned resource. Required by Autotask when assignedResourceID is provided. | |
| projectLeadResourceID | No | Project lead resource ID | |
| startDateTime | No | Project start date/time (ISO 8601) | |
| endDateTime | No | Project end date/time (ISO 8601) | |
| estimatedTime | No | Estimated time for the project, in hours | |
| userDefinedFields | No | User-defined field values to set on the project (Autotask REST-native shape) |
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 partial update and a common use case. Missing details like permissions required, error conditions, idempotency, or side effects. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second adds common use case. No fluff, 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?
Given the complexity (12 parameters, no output schema, no annotations), the description is adequate but has gaps: missing return value, error handling, prerequisites, and side effects. Not complete enough for a complex update 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 each parameter is already described. The description adds no new semantic information beyond the schema, except repeating the status use case already present in 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 action (update) and resource (an existing project in Autotask), and provides a specific common use case (setting status=5 to mark complete). It effectively distinguishes from siblings like autotask_create_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly indicates partial update behavior ('Only the fields you provide will be updated') and gives a common use case. However, it does not mention when not to use or provide alternatives, but the context of an update tool is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_update_quote_itemA
Update an existing quote item (quantity, price, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| quoteItemId | Yes | The quote item ID to update | |
| quantity | No | Updated quantity | |
| unitPrice | No | Updated unit price | |
| unitDiscount | No | Updated per-unit discount | |
| lineDiscount | No | Updated line discount | |
| percentageDiscount | No | Updated percentage discount | |
| isOptional | No | Updated optional status | |
| sortOrderID | No | Updated sort order |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states it updates, which is obvious. No disclosure of side effects, permissions, or restrictions.
Agents need to know what a tool does to the 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 wasted words, front-loaded with key 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 an update tool with 8 well-documented parameters and no output schema, the description is brief but adequate. Could mention optionality or update behavior but not required in this 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 each parameter has a description. The tool's description adds minimal value like '(quantity, price, etc.)', meeting the baseline but not exceeding.
Input schemas describe structure but not intent. Descriptions should explain 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 (quote item) with examples of fields, distinguishing it from create, delete, and search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or when not to use vs alternatives like create or delete. Implicitly for modifying existing items but lacks depth.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_update_service_callA
Update an existing service call. Use this to change status, times, or description. To complete/close a service call, set complete: true or update the status.
| Name | Required | Description | Default |
|---|---|---|---|
| serviceCallId | Yes | The service call ID to update | |
| description | No | Updated description | |
| status | No | Updated status picklist ID | |
| startDateTime | No | Updated start date/time (ISO 8601 format) | |
| endDateTime | No | Updated end date/time (ISO 8601 format) | |
| complete | No | Set to true to mark the service call as complete/closed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It correctly identifies this as a mutation (update) operation but does not mention potential side effects, required permissions, idempotency, or whether updates are immediately persisted. The description is adequate but lacks depth 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 two sentences long, front-loaded with the primary purpose, and includes a practical usage hint. Every sentence adds value with no unnecessary words. It is well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and six parameters fully described in the schema, the description covers the core use case of updating a service call. It does not explain return values, error handling, or prerequisites, but for an update operation with good schema coverage, this is sufficient. It could be slightly more complete by mentioning that only provided fields are updated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage, so the baseline is 3. The description adds value by explaining how to use the 'complete' and 'status' parameters together to close a service call, which goes beyond the schema's individual descriptions. This helps the agent understand the intended workflow.
Input schemas describe structure but not intent. Descriptions should explain 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 an existing service call' and specifies the fields that can be changed (status, times, description). It distinguishes itself from sibling tools like 'autotask_create_service_call' and 'autotask_delete_service_call' by focusing on updating an existing record, and it provides a specific directive for closing/completing service calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit usage: 'Use this to change status, times, or description.' It also provides guidance on completing/closing a service call by setting 'complete: true' or updating the status. However, it does not explicitly state when not to use this tool or compare it to alternatives like 'autotask_delete_service_call' or other update tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_update_ticketB
Update an existing ticket in Autotask. Only fields provided will be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The ID of the ticket to update | |
| title | No | Ticket title | |
| description | No | Ticket description | |
| status | No | Ticket status ID (use autotask_list_ticket_statuses to find valid IDs) | |
| priority | No | Ticket priority ID (use autotask_list_ticket_priorities to find valid IDs) | |
| assignedResourceID | No | Assigned resource ID. If set, assignedResourceRoleID is also required by Autotask. | |
| assignedResourceRoleID | No | Role ID for the assigned resource. Required by Autotask when assignedResourceID is set. | |
| dueDateTime | No | Due date and time in ISO 8601 format (e.g. 2026-03-15T17:00:00Z) | |
| contactID | No | Contact ID for the ticket |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explains the partial update behavior but fails to disclose important traits such as required permissions, what happens if the ticket does not exist, or error handling. The description adds minimal behavioral context beyond the obvious mutation.
Agents need to know what a tool does to the 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 front-loaded with the action and resource, and includes a key behavioral note. 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?
Despite good schema descriptions, the definition lacks completeness. No output schema, no explanation of return values or error scenarios. For a mutation tool with interdependent parameters (e.g., assignedResourceID and assignedResourceRoleID), the description should provide more 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 the schema already documents all parameters well. The description adds no extra meaning beyond 'Only fields provided will be changed,' which is already implied. 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 (update), the resource (existing ticket), and the behavior (partial update). It distinguishes from sibling tools like autotask_create_ticket and autotask_search_tickets by specifying 'Update an existing ticket' and the partial 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?
The description implies the tool is used for updating tickets and that only provided fields will change, but it does not explicitly state when to use this tool versus alternatives (e.g., when to use autotask_create_ticket_note instead). No guidance 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.
autotask_update_ticket_chargeA
Update an existing ticket charge. Only fields provided will be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| chargeId | Yes | The charge ID to update | |
| name | No | Updated charge name | |
| description | No | Updated description | |
| unitQuantity | No | Updated quantity | |
| unitPrice | No | Updated unit price | |
| unitCost | No | Updated unit cost | |
| billableToAccount | No | Updated billable status | |
| status | No | Updated status |
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 'only fields provided will be changed' indicating partial update, but lacks disclosure on idempotency, error handling, 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 extremely concise with two sentences and no unnecessary words, effectively communicating the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and rich schema descriptions, the description is adequate but missing some behavioral context and usage guidelines, preventing it from being 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?
Schema coverage is 100% with all parameters documented. The description adds no additional parameter meaning beyond what the schema already provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates an existing ticket charge, using a specific verb and resource. It distinguishes itself from sibling tools like autotask_create_ticket_charge and autotask_delete_ticket_charge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by stating what the tool does, but does not give explicit guidance on when to use it versus alternatives (e.g., create or delete), nor any prerequisites or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_update_ticket_checklist_itemB
Update a checklist item on a ticket โ edit text, mark complete/incomplete, or change position.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The parent ticket ID | |
| itemId | Yes | The checklist item ID to update | |
| itemName | No | New text for the checklist item | |
| isCompleted | No | Mark the item complete (true) or incomplete (false) | |
| position | No | New ordering position for the item |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It only lists what can be updated but fails to mention side effects, idempotency, authentication requirements, or whether partial updates are supported. This is insufficient for safe agent decision-making.
Agents need to know what a tool does to the 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 that efficiently conveys the tool's purpose and main capabilities without any 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?
The tool is a simple update operation with five parameters, but the description omits any mention of the return value or behavior after update. Given no output schema, this leaves the agent uninformed about what to expect (e.g., confirmation, updated object, or empty response).
Complex tools with many parameters or behaviors need more documentation. 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 documents all parameters clearly. The description adds no additional meaning beyond restating the field purposes (e.g., 'edit text' for itemName), providing marginal 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 uses a specific verb ('Update') and identifies the resource ('checklist item on a ticket'), and lists three concrete actions (edit text, mark complete/incomplete, change position). It clearly distinguishes from sibling tools like create, search, 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?
The description does not provide any guidance on when to use this tool versus alternatives (e.g., create or delete checklist items). No context about prerequisites or when not to use it is given.
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.
90 tool updates
v2.18.0- First observed
autotask_create_company - First observed
autotask_create_company_note - First observed
autotask_create_contact - First observed
autotask_create_expense_item - First observed
autotask_create_expense_report - First observed
autotask_create_opportunity - First observed
autotask_create_phase - First observed
autotask_create_project - First observed
autotask_create_project_note - First observed
autotask_create_quote - First observed
autotask_create_quote_item - First observed
autotask_create_service_call - First observed
autotask_create_service_call_ticket - First observed
autotask_create_service_call_ticket_resource - First observed
autotask_create_task - First observed
autotask_create_ticket - First observed
autotask_create_ticket_attachment - First observed
autotask_create_ticket_charge - First observed
autotask_create_ticket_checklist_item - First observed
autotask_create_ticket_note - First observed
autotask_create_time_entry - First observed
autotask_delete_quote_item - First observed
autotask_delete_service_call - First observed
autotask_delete_service_call_ticket - First observed
autotask_delete_service_call_ticket_resource - First observed
autotask_delete_ticket_charge - First observed
autotask_delete_ticket_checklist_item - First observed
autotask_execute_tool - First observed
autotask_get_billing_item - First observed
autotask_get_company_note - First observed
autotask_get_company_site_configuration - First observed
autotask_get_expense_report - First observed
autotask_get_field_info - First observed
autotask_get_invoice_details - First observed
autotask_get_opportunity - First observed
autotask_get_product - First observed
autotask_get_project_note - First observed
autotask_get_quote - First observed
autotask_get_quote_item - First observed
autotask_get_service - First observed
autotask_get_service_bundle - First observed
autotask_get_service_call - First observed
autotask_get_ticket_attachment - First observed
autotask_get_ticket_charge - First observed
autotask_get_ticket_details - First observed
autotask_get_ticket_note - First observed
autotask_list_categories - First observed
autotask_list_category_tools - First observed
autotask_list_phases - First observed
autotask_list_queues - First observed
autotask_list_ticket_priorities - First observed
autotask_list_ticket_statuses - First observed
autotask_router - First observed
autotask_search_billing_item_approval_levels - First observed
autotask_search_billing_items - First observed
autotask_search_companies - First observed
autotask_search_company_notes - First observed
autotask_search_configuration_items - First observed
autotask_search_contacts - First observed
autotask_search_contracts - First observed
autotask_search_expense_reports - First observed
autotask_search_invoices - First observed
autotask_search_opportunities - First observed
autotask_search_products - First observed
autotask_search_project_notes - First observed
autotask_search_projects - First observed
autotask_search_quote_items - First observed
autotask_search_quotes - First observed
autotask_search_resources - First observed
autotask_search_service_bundles - First observed
autotask_search_service_call_ticket_resources - First observed
autotask_search_service_call_tickets - First observed
autotask_search_service_calls - First observed
autotask_search_services - First observed
autotask_search_tasks - First observed
autotask_search_ticket_attachments - First observed
autotask_search_ticket_charges - First observed
autotask_search_ticket_checklist_items - First observed
autotask_search_ticket_notes - First observed
autotask_search_tickets - First observed
autotask_search_time_entries - First observed
autotask_test_connection - First observed
autotask_update_company - First observed
autotask_update_company_site_configuration - First observed
autotask_update_project - First observed
autotask_update_quote_item - First observed
autotask_update_service_call - First observed
autotask_update_ticket - First observed
autotask_update_ticket_charge - First observed
autotask_update_ticket_checklist_item
TDQS
Scored across 90 tools
Most tools have distinct purposes (create vs. search vs. get vs. update), but there is some overlap between 'get' and 'search' tools (e.g., get_quote vs. search_quotes) and among delete tools for different entities. The descriptions clarify usage, though the sheer number could cause confusion.
All tools follow a consistent 'autotask_verb_noun' pattern (e.g., autotask_create_ticket, autotask_search_companies, autotask_get_quote). Verbs are standard CRUD terms plus search/list/get/execute/router. No mixing of conventions.
90 tools is very high for a single server. While Autotask is a large domain covering many entities, this count feels excessive and likely includes many variants (e.g., three service call delete tools). It would benefit from consolidation or categorization.
The tool surface covers most major Autotask entities (companies, contacts, tickets, projects, quotes, expenses, service calls) with create, read, update, delete and search. Minor gaps: no delete for companies, contacts, or projects; no update for contacts. Overall well-rounded for the domain.
Related MCP Connectors
Connect any AI assistant to Syncro: manage tickets, invoices, customers, assets, and more.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Connect AI assistants to ITM Platform projects, tasks, budgets, risks, and team workload.
Streamline your Attio workflows using natural language to search, create, update, and organize comโฆ
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.10019 npmApache 2.0
- AlicenseBqualityCmaintenanceEnables AI assistants to directly interact with Autotask PSA for ticket triage, time logging, company lookups, project management, and more via natural language.9819 npmApache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Autotask REST API for ticket management and querying through natural language.-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to work directly with ConnectWise Manage, allowing natural-language operations on tickets, time entries, companies, contacts, projects, invoices, opportunities, and more.Apache 2.0