Autotask MCP Server
The Autotask MCP Server provides AI assistants with structured access to Kaseya Autotask PSA data and operations through 35+ tools for comprehensive business management.
Core Capabilities:
Company Management: Search, create, and update companies with detailed contact information, filtering, and active status control
Contact Management: Search and create contacts with company association, personal details, and job titles
Ticket Operations: Search with advanced filters (status, assignment, company, unassigned), retrieve detailed information, create tickets, and manage notes and attachments
Time Tracking: Create time entries for tickets or tasks with hours worked, dates, and detailed notes
Project Management: Search and create projects with status tracking, timelines, estimates, and manager assignments; manage project tasks and notes
Resource Management: Search users/technicians by name, email, type, or active status
Financial Operations: Manage expense reports, quotes, invoices, and contracts with comprehensive search and creation capabilities
Asset Management: Search configuration items (IT assets) by company, product, or active status
Note Management: Create, search, and retrieve notes for tickets, projects, and companies with configurable publish levels
Attachment Handling: Search and retrieve ticket attachments with optional base64 encoded file data
Connectivity Testing: Test API connection to verify credentials
Key Features:
Automatic ID-to-name mapping for enhanced readability
Smart caching with 30-minute TTL for improved performance
Pagination support with complete data retrieval
Dual transport support (stdio for local/desktop, HTTP for remote/server deployments)
Enterprise-grade security with Autotask API credentials
Multiple deployment options including one-click MCPB bundle for Claude Desktop, CLI, Docker, and from-source development
Offers containerized deployment options for the Autotask MCP server with production and development configurations
Provides a Node.js implementation for accessing Autotask PSA data, with support for companies, contacts, tickets, and time entries management
Enables structured access to Kaseya Autotask PSA data and operations, including companies, contacts, tickets, time entries with comprehensive CRUD operations and advanced search capabilities
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Autotask MCP Servershow me open tickets for Acme Corp from this week"
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 101 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
Note โ no GitHub Packages token required. Unlike most WYRE MCP servers,
autotask-mcpdoes not depend on a private@wyre-ai/*package on GitHub Packages. Its only WYRE dependency is theautotask-nodeSDK, declared as a git dependency on the publicWYRE-AI/autotask-noderepo, whichnpm installresolves anonymously. The DigitalOcean one-click deploy therefore works without anyNODE_AUTH_TOKEN/GITHUB_TOKENbuild variable.
Related MCP server: ConnectWise API Gateway 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-AI/autotask-mcpSee Installation for Docker and from-source methods.
Features
๐ MCP Protocol Compliance: Full support for MCP resources and tools
๐ด Interactive Ticket Card (MCP Apps):
autotask_get_ticket_detailsrenders as an interactive card in MCP Apps hosts (Claude Desktop/web) with an in-card "Add note" round-trip; neutral theme by default, brandable viaMCP_BRAND_*env vars; plain-JSON behavior is unchanged in other hosts๐ ๏ธ Comprehensive API Coverage: 101 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-AI/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-ai/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-ai/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-ai/autotask-mcp:latestThe gateway injects credentials via headers:
X-API-Key: Autotask usernameX-API-Secret: Autotask secretX-Integration-Code: Autotask integration codeX-Impersonation-Resource-Id: (optional) Autotask resource ID to act on behalf of
See Gateway Mode for details.
Option 3: From Source (Development)
git clone https://github.com/WYRE-AI/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
# Search-result name enrichment
# Max concurrent Autotask API calls used to resolve company/resource names on
# search results. Kept low to stay under Autotask's per-integration
# concurrent-thread limit (raising it risks HTTP 429 "thread threshold").
AUTOTASK_ENHANCE_CONCURRENCY=3
# 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 |
| (Optional) Autotask resource ID to act on behalf of. Forwarded to Autotask as its |
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 101 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 invoices
Contract Operations
autotask_search_contracts- Search contracts (name, company, status, type, end-date range)autotask_get_contract- Get a single contract by IDautotask_list_expiring_contracts- Expiring/expired contracts report (next N days, per company or org-wide)autotask_create_contract/autotask_create_contracts_bulk- Create contract shells, one or manyautotask_update_contract- Update a contract (e.g. extend/renew end date)autotask_create_contract_service/autotask_update_contract_service- Manage contract service lines
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-ai/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-ai/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-AI/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-AI/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 |
| โ |
| Max concurrent Autotask API calls used to resolve company/resource names on search results. Kept low to stay under Autotask's concurrent-thread limit. |
| โ |
| 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)
Rate Limits
Autotask enforces per-integration-code API thresholds on a rolling 1-hour window:
~10,000 req/hr (soft) โ warning email, sporadic
HTTP 429responses~20,000 req/hr (hard) โ sustained
HTTP 429until the window rolls
LLM-driven workflows fan out easily โ "status report on all open projects with notes" can issue hundreds of requests across a few minutes. The server tries to make this safer:
429 responses are surfaced as structured errors. Tool results carry
error_type: "rate_limited"and aretry_after_secondsfield parsed from Autotask'sRetry-Afterheader. The error message explicitly tells the LLM not to retry and to ask the user to scope the query โ this prevents repeated retries from extending the cooldown.Fan-out tool descriptions include rate-limit tips. Tools that are commonly looped over (
autotask_search_ticket_notes,autotask_search_project_notes,autotask_search_company_notes,autotask_search_time_entries,autotask_search_ticket_attachments) include a hint reminding the LLM to scope the parent record list before iterating.
Raising the limit
Per-integration thresholds can be increased in Autotask:
Autotask Admin โ Resources/Users (HR) โ Resources
Edit the dedicated API user โ Workflow Rules โ API Tracking Identifier
Adjust the threshold for the integration code your MCP server uses
This is the right answer when a single integration code is shared between Claude/Copilot/etc. and other tooling. For LLM-heavy workloads, dedicate a separate API user (and integration code) so a fan-out from one client doesn't starve others.
Patterns that help
Always scope by date range when searching notes, time entries, attachments. Even a 30-day window can drop call count by an order of magnitude.
Cache parent lookups. If you're iterating over 100 tickets, fetch the ticket list once and reuse it across follow-up queries; don't re-search per child.
Use
autotask_get_field_infoto discover picklist values once per session rather than refetching them per call.
If you're seeing threshold warnings from Autotask but the server seems fine, the LLM driver is probably issuing fan-out patterns. Tighten the prompt to scope before iterating.
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
98 toolsautotask_create_companyC
Create new company record
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| phone | No | ||
| state | No | ||
| address1 | No | ||
| isActive | No | ||
| postalCode | No | ||
| companyName | Yes | ||
| companyType | Yes | ||
| ownerResourceID | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only states 'create' but does not disclose behavioral traits like idempotency, permissions, side effects, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, but it is under-specified rather than concise. It lacks essential details for a complex create 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?
With 9 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain return values, required fields beyond the two, or any 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 description coverage is 0%, and the description adds no meaning beyond parameter names. For example, 'companyType' is a number but no enums or format hints are given. Critical for 9 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 'Create new company record' clearly states the verb and resource, but does not distinguish it from other create tools like autotask_create_contact or autotask_create_ticket among the many siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as autotask_update_company or other create tools. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_company_noteB
Create a new note for a company
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Note title | |
| companyId | Yes | The company ID to add the note to | |
| actionType | No | Action type for the note | |
| description | Yes | Note content |
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_contactC
Create new contact record
| Name | Required | Description | Default |
|---|---|---|---|
| phone | No | ||
| title | No | ||
| lastName | Yes | ||
| companyID | Yes | Company ID for the contact | |
| firstName | Yes | ||
| emailAddress | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure, but it only states 'Create new contact record'. It omits behavioral traits such as side effects, required permissions, idempotency, or what happens on duplicate. This is a critical gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than efficiency. It lacks essential detail, making it insufficiently informative for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters (3 required) and no output schema, the description should explain return behavior, validation, or error conditions. It provides none, leaving the agent poorly informed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is very low (17%), yet the description adds no parameter-level information. Parameter names like 'firstName' are self-explanatory, but others like 'companyID' require context not provided. The description fails to compensate for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create new contact record', which is a specific verb and resource. It distinguishes from sibling tools like autotask_update_contact and autotask_search_contacts by implying creation as opposed to update/search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. An agent would benefit from knowing prerequisites or that it is intended for new contacts only, not for updates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_contractB
Create a new Contract in Autotask. Field names match the Autotask REST API exactly. status: 1=In Effect, 0=Inactive. Dates are ISO format (YYYY-MM-DD).
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Contract status (1=In Effect, 0=Inactive) | |
| endDate | Yes | Contract end date (ISO YYYY-MM-DD) | |
| setupFee | No | Setup fee amount | |
| companyID | Yes | Company ID the contract is associated with | |
| contactID | No | Primary contact ID for the contract | |
| startDate | Yes | Contract start date (ISO YYYY-MM-DD) | |
| description | No | Contract description / notes | |
| contractName | Yes | Contract name | |
| contractType | Yes | Contract type picklist ID | |
| estimatedCost | No | Estimated cost | |
| opportunityID | No | Originating opportunity ID | |
| contractNumber | No | External-facing contract number | |
| estimatedHours | No | Estimated hours | |
| billToCompanyID | No | Bill-to company ID | |
| contractCategory | Yes | Contract category picklist ID | |
| estimatedRevenue | No | Estimated revenue | |
| billingPreference | No | Billing preference picklist ID | |
| isDefaultContract | No | Whether this is the default contract for the company | |
| renewedContractID | No | ID of the contract this renewed | |
| contractPeriodType | No | Period type picklist ID | |
| overageBillingRate | No | Overage billing rate | |
| exclusionContractID | No | Exclusion contract ID | |
| purchaseOrderNumber | No | Customer purchase order number | |
| setupFeeBillingCodeID | No | Billing code ID for the setup fee | |
| billToCompanyContactID | No | Bill-to contact ID | |
| contractExclusionSetID | No | Contract exclusion set ID | |
| serviceLevelAgreementID | No | SLA ID | |
| internalCurrencySetupFee | No | Setup fee in internal currency | |
| organizationalLevelAssociationID | No | Org level association ID | |
| internalCurrencyOverageBillingRate | No | Overage rate in internal currency | |
| timeReportingRequiresStartAndStopTimes | No | Whether time entries require start/stop times |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only notes field mappings and date formats, omitting side effects, authorization needs, error handling, and return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, front-loaded sentences with no extraneous information, achieving high conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 31 parameters and no output schema or annotations, the description is too sparse to be complete. It lacks explanation of return values, error scenarios, and complex parameter relationships.
Complex tools with many parameters or behaviors need more documentation. 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 by reiterating date formats and status mappings already in the schema, providing no further semantic enrichment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 resource (Contract in Autotask), distinguishing it from sibling tools like autotask_search_contracts and autotask_update_contract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 using this tool to create a contract but provides no explicit guidance on when to use it vs. alternatives, no prerequisites, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_create_contract_serviceA
Add a ContractService (service line item) to an existing Contract.
| Name | Required | Description | Default |
|---|---|---|---|
| unitCost | No | Unit cost for the service line | |
| serviceID | Yes | Service catalog ID being attached to the contract | |
| unitPrice | Yes | Unit price for the service line | |
| contractID | Yes | Parent Contract ID | |
| quoteItemID | No | Originating quote item ID, if any | |
| adjustedPrice | No | Adjusted price | |
| invoiceDescription | No | Override invoice description for this line | |
| internalCurrencyUnitPrice | No | Unit price in internal currency |
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 core creation action but omits side effects, permissions, or return values.
Agents need to know what a tool does to the 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 front-loads the purpose, 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?
Despite 8 parameters and no output schema, the description is too briefโit doesn't explain prerequisites, return value, or operational context, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3; description does not add parameter-level 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 verb 'Add' and resource 'ContractService (service line item)' to an existing Contract, distinguishing it from sibling tools that create contracts or update service 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 (when adding a service line item) but lacks explicit guidance on when not to use or mention of alternatives like autotask_update_contract_service.
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 |
|---|---|---|---|
| amount | Yes | Expense amount | |
| companyId | No | Associated company ID (0 for internal) | |
| description | Yes | Line item description | |
| expenseDate | Yes | Date of expense (YYYY-MM-DD format) | |
| haveReceipt | No | Whether a receipt is attached | |
| paymentType | No | Payment type picklist ID | |
| isReimbursable | No | Whether this expense is reimbursable | |
| expenseCategory | Yes | Expense category picklist ID | |
| expenseReportId | Yes | The expense report ID to add the item to | |
| isBillableToCompany | No | Whether billable to company |
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 |
|---|---|---|---|
| cost | No | Cost amount (default: 0) | |
| stage | Yes | Stage picklist value ID (use autotask_get_field_info to find valid values) | |
| title | Yes | Opportunity name/title | |
| amount | No | Revenue amount (default: 0, set useQuoteTotals=true to calculate from quotes) | |
| status | Yes | Status: 0=Not Ready To Buy, 1=Active, 2=Lost, 3=Closed, 4=Implemented | |
| companyId | Yes | Company ID for the opportunity | |
| contactId | No | Contact ID for the opportunity | |
| startDate | Yes | Start date (YYYY-MM-DD) | |
| description | No | Opportunity description | |
| probability | No | Win probability percentage (0-100, default: 50) | |
| useQuoteTotals | No | Whether to calculate totals from linked quotes (default: true) | |
| ownerResourceId | Yes | Owner resource ID (the sales rep or account manager) | |
| totalAmountMonths | No | Number of months to calculate totals for (e.g., 12 for annual) | |
| projectedCloseDate | Yes | Projected close date (YYYY-MM-DD) | |
| 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 |
|---|---|---|---|
| title | Yes | Phase title | |
| dueDate | No | Phase due date (ISO format) | |
| projectID | Yes | Project ID for the phase | |
| startDate | No | Phase start date (ISO format) | |
| description | No | Phase description | |
| 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 |
|---|---|---|---|
| status | Yes | Project status (1=New, 2=In Progress, 5=Complete) | |
| endDate | No | Project end date (YYYY-MM-DD) | |
| companyID | Yes | Company ID for the project | |
| startDate | No | Project start date (YYYY-MM-DD) | |
| description | No | Project description | |
| projectName | Yes | Project name | |
| projectType | Yes | Project type (2=Proposal, 3=Template, 4=Internal, 5=Client, 8=Baseline). Required. | |
| estimatedHours | No | Estimated hours for the project | |
| projectLeadResourceID | No | Project manager resource ID |
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 |
|---|---|---|---|
| title | No | Note title | |
| publish | No | Publish visibility (1=All Autotask Users, 2=Internal Project Team, 3=Project Team). Defaults to 1. | |
| noteType | No | Note type (1=General, 2=Appointment, 3=Task, 4=Ticket, 5=Project, 6=Opportunity) | |
| projectId | Yes | The project ID to add the note to | |
| description | Yes | Note content | |
| 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 | |
| companyId | Yes | Company ID for the quote | |
| contactId | No | Contact ID for the quote | |
| description | No | Quote description | |
| effectiveDate | No | Effective date (YYYY-MM-DD format) | |
| opportunityId | No | Associated opportunity ID | |
| 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 |
|---|---|---|---|
| name | No | Item name (auto-populated for service/product types) | |
| quoteId | Yes | The quote ID to add this item to | |
| quantity | Yes | Quantity of the item | |
| unitCost | No | Unit cost for the item | |
| productID | No | Product ID to link (mutually exclusive with serviceID/serviceBundleID) | |
| serviceID | No | Service ID to link (mutually exclusive with productID/serviceBundleID) | |
| unitPrice | No | Unit price for the item | |
| isOptional | No | Whether this is an optional line item (default: false) | |
| description | No | Item description | |
| sortOrderID | No | Sort order for display | |
| lineDiscount | No | Line-level discount amount (default: 0) | |
| unitDiscount | No | Per-unit discount amount (default: 0) | |
| quoteItemType | No | Quote item type (auto-determined if omitted): 1=Product, 2=Cost, 3=Labor, 4=Expense, 6=Shipping, 11=Service, 12=ServiceBundle | |
| serviceBundleID | No | Service Bundle ID to link (mutually exclusive with serviceID/productID) | |
| percentageDiscount | No | Percentage discount (default: 0) |
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_callB
Create a new service call in Autotask. Service calls are used to schedule and plan work on tickets.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Status picklist ID (use autotask_get_field_info with entityType "ServiceCalls" to find valid values) | |
| complete | No | Whether this service call is complete (default: false) | |
| companyID | No | Company ID this service call is for | |
| description | Yes | Description of the service call | |
| endDateTime | Yes | Scheduled end date/time (ISO 8601 format) | |
| startDateTime | Yes | Scheduled start date/time (ISO 8601 format, e.g. 2026-03-22T09:00:00Z) | |
| companyLocationID | No | Company location ID (optional) |
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 it creates a service call but does not mention side effects, authorization needs, or whether it overwrites existing data. This is insufficient for understanding the tool's full 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 two sentences, both essential. The first states the action, the second clarifies the resource's purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without annotations or output schema, the description should cover return values, error conditions, and required permissions. It does not mention any of these, leaving gaps for a tool with 7 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and parameter descriptions exist but are minimal (e.g., 'Description of the service call'). The description adds no new semantic information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a new service call in Autotask' and explains that service calls are used to schedule and plan work on tickets. This clearly distinguishes it from tools like autotask_create_ticket 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 no guidance on when to use this tool over alternatives (e.g., when to create a service call versus a ticket). It lacks explicit context for appropriate use cases or prerequisites.
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 |
|---|---|---|---|
| ticketID | Yes | The ticket ID to link to the service call | |
| serviceCallID | Yes | The service call ID to link the ticket to |
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 |
|---|---|---|---|
| roleID | No | The role ID for the resource on this service call (optional) | |
| resourceID | Yes | The resource (technician) ID to assign | |
| serviceCallTicketID | Yes | The service call ticket ID to assign the resource to |
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 |
|---|---|---|---|
| title | Yes | Task title | |
| status | Yes | Task status (1=New, 2=In Progress, 5=Complete) | |
| taskType | No | Task type (1=FixedWork, 2=FixedDuration). Defaults to 1. | |
| projectID | Yes | Project ID for the task | |
| description | No | Task description | |
| endDateTime | No | Task end date/time (ISO format) | |
| startDateTime | No | Task start date/time (ISO format) | |
| estimatedHours | No | Estimated hours for the task | |
| assignedResourceID | No | Assigned resource ID |
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_ticketC
Create new ticket record
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| source | No | Ticket source ID (picklist, e.g. Phone, Email, Portal). Use autotask_get_field_info (entity "Tickets", field "source") to discover valid values. | |
| status | No | ||
| queueID | No | Queue ID to route the ticket to. Use autotask_list_queues to discover valid IDs. | |
| priority | No | ||
| companyID | Yes | Company ID for the ticket | |
| contactID | No | Contact ID for the ticket | |
| 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. | |
| projectID | No | Project ID to associate the ticket with. Links the ticket to an existing project. | |
| resolution | No | Ticket-level resolution text. This is the Resolution field on the ticket itself, NOT a ticket note. | |
| ticketType | No | Ticket type ID (picklist, e.g. Service Request, Incident, Problem, Change). | |
| description | Yes | ||
| 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. | |
| billingCodeID | No | Work type / billing code ID used for billing this ticket. | |
| estimatedHours | No | Estimated hours of work for the ticket. | |
| ticketCategory | No | Ticket category ID (picklist). Use autotask_get_field_info with entity "Tickets" and field "ticketCategory" to discover valid values. | |
| userDefinedFields | No | User-defined (custom) fields for the ticket, as an array of { name, value } objects matching the Autotask REST API shape. | |
| 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. | |
| serviceLevelAgreementID | No | Service Level Agreement (SLA) ID to apply to the ticket. | |
| ticketAdditionalContacts | No | Additional contact IDs to associate with the ticket (beyond the primary contactID). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full responsibility for behavioral disclosure. It only states 'Create new ticket record' with no details on side effects (e.g., permanent creation), authorization requirements, rate limits, or whether it overwrites existing data. 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 very short (one phrase), but lacks structure and essential information. While concise in word count, it sacrifices clarity and completeness. For a tool with 21 parameters, a more structured description (e.g., listing required fields or behavioral notes) would be warranted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (21 parameters, 3 required, no output schema), the description is severely incomplete. It does not mention required fields, return values, error behavior, or prerequisites. For an agent to correctly invoke this tool, far more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (81%), so the schema already documents most parameters. The description does not add any parameter meaning beyond what the schema provides. Baseline of 3 is appropriate since the description does not contradict or redundantly explain 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 'Create new ticket record' states the action and resource clearly, but is too generic. It does not differentiate from sibling tools like autotask_update_ticket or autotask_search_tickets, though the name alone does hint at creation. The description adds minimal value beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are many sibling tools for tickets (search, update, delete, etc.), but the description offers no context for selection. The schema references other tools (e.g., autotask_get_field_info) but the description itself lacks any usage guidelines.
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 |
|---|---|---|---|
| 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. | |
| title | Yes | Display title for the attachment (typically the filename, e.g. "screenshot.png") | |
| publish | No | Visibility: 1 = All Autotask Users (default), 2 = Internal Users Only | |
| fullPath | No | Original filename including any path. Defaults to `title` if not provided. | |
| ticketId | Yes | The ticket ID to attach the file to | |
| contentType | No | MIME type of the file (e.g. "image/png", "application/pdf"). Optional. |
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 charge on ticket for materials, costs, or expenses.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Charge name/title | |
| status | No | Charge status picklist ID | |
| ticketID | Yes | Ticket ID to add the charge to | |
| unitCost | No | Cost per unit | |
| productID | No | Associated product ID (optional) | |
| unitPrice | No | Price per unit | |
| chargeType | Yes | Charge type picklist ID (use autotask_get_field_info with entityType "TicketCharges" to find valid values) | |
| description | No | Charge description | |
| unitQuantity | No | Quantity of units | |
| billingCodeID | No | Billing code ID for categorization | |
| datePurchased | No | Date the charge was incurred (YYYY-MM-DD format) | |
| billableToAccount | No | Whether this charge is billable to the client (default: true) |
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 states the tool creates a charge but does not mention mutation risks, authorization requirements, idempotency, error behavior, or what the response contains. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose. However, it could be slightly expanded to include key usage tips 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?
The tool has 12 parameters and no output schema, yet the description does not hint at return values, pagination, or error handling. It lacks sufficient context for an agent to fully understand the tool's behavior 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 input schema adequately documents each parameter. The description does not add new semantic meaning beyond the schema, meeting the baseline expectation but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('charge on ticket'), and specifies the typical use cases ('materials, costs, or expenses'). It effectively distinguishes from sibling tools like autotask_get_ticket_charge and autotask_search_ticket_charges by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to add a charge to a ticket, but does not explicitly state when not to use it or mention alternatives. However, the sibling tool names (e.g., autotask_update_ticket_charge, autotask_delete_ticket_charge) indirectly provide context for differentiation.
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 |
|---|---|---|---|
| itemName | Yes | The checklist item text | |
| position | No | Optional ordering position for the item | |
| ticketId | Yes | The ticket ID to add the checklist item to | |
| 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_noteA
Create a new note for a ticket
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Note title | |
| publish | Yes | Publish/visibility picklist ID. Tenant-specific and security-sensitive (controls whether the note is visible to clients). Call autotask_get_field_info with entity "TicketNotes" and field "publish" to discover the exact label-to-ID mapping before calling this tool. Never guess โ the wrong value can expose internal notes to clients. | |
| noteType | Yes | Note type picklist ID. Tenant-specific โ call autotask_get_field_info with entity "TicketNotes" and field "noteType" to discover the exact label-to-ID mapping before calling this tool. Do not assume values from other Autotask instances apply here. | |
| ticketId | Yes | The ticket ID to add the note to | |
| description | Yes | Note content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool creates a note (implying mutation) and the publish parameter description warns about security sensitivity. However, it does not mention potential side effects, error handling, or response 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, front-loaded sentence with no redundancy. While concise, it could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 params, 4 required, no output schema, no annotations), the description is too minimal. It does not explain return values, prerequisites beyond schema hints, or what happens after creation. The schema provides good param descriptions, but the overall tool context 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 detailed parameter descriptions (e.g., guidance for publish and noteType). The tool description itself adds no additional parameter meaning beyond what the schema already provides, meeting baseline expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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' clearly states the action (create) and resource (note for a ticket), distinguishing it from other note creation tools like create_company_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?
The description lacks explicit when-to-use or when-not-to-use guidance. However, the parameter descriptions for publish and noteType hint at prerequisites (calling autotask_get_field_info), implying usage context. No alternative tools are mentioned.
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 |
|---|---|---|---|
| taskID | No | Task ID for the time entry (for project work, omit for Regular Time) | |
| 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). | |
| ticketID | No | Ticket ID for the time entry (omit for Regular Time) | |
| projectID | No | Project ID for the time entry (omit for Regular Time) | |
| dateWorked | Yes | Date worked (YYYY-MM-DD format) | |
| resourceID | No | Resource ID (user) logging the time. Can be omitted if resourceName is provided. | |
| endDateTime | No | End date/time (ISO format) | |
| hoursWorked | Yes | Number of hours worked | |
| 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. | |
| summaryNotes | Yes | Summary notes for the time entry | |
| internalNotes | No | Internal notes for the time entry | |
| startDateTime | No | Start date/time (ISO format) |
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_itemADestructive
โ DESTRUCTIVE โ IRREVERSIBLE. Permanently deletes a quote item (line item) from a quote. This action cannot be undone. Confirm with the user before invoking.
| 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 adds significant behavioral context beyond annotations by stating 'IRREVERSIBLE' and 'This action cannot be undone,' and by requiring user confirmation. This complements the destructiveHint annotation effectively.
Agents need to know what a tool does to the 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 front-loaded with warning symbols and critical information, and each sentence is meaningful and concise. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a delete operation with no output schema, the description adequately covers the core action and warnings. It could briefly mention the expected result (e.g., success or void), but overall is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both required parameters. The description does not add any additional meaning or guidance for the parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and description clearly state it deletes a quote item from a quote. The description specifies 'Permanently deletes a quote item (line item) from a quote,' which distinguishes it from sibling tools like create, update, get, and search for 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 includes a strong warning about destructive and irreversible nature, and explicitly says 'Confirm with the user before invoking,' providing clear usage context. However, it does not mention alternatives or 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_delete_service_callADestructive
โ DESTRUCTIVE โ IRREVERSIBLE. Permanently deletes a service call and all associated data. This action cannot be undone. Confirm with the user before invoking.
| 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?
Adds context beyond annotations: emphasizes irreversibility and the need for user confirmation. Annotations already mark destructiveHint=true, so description complements rather than repeats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with a clear warning emoji. No unnecessary words; key points are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and no output schema, the description fully satisfies the need: warns of destructiveness, mentions associated data, and instructs to confirm. No 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% and parameter 'serviceCallId' is adequately described in the schema. Description adds no further parameter details, but baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Permanently deletes a service call and all associated data', using specific verb and resource. Distinguishes from sibling delete tools (e.g., autotask_delete_service_call_ticket) via the entity type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear instruction to 'Confirm with the user before invoking', which is appropriate for a destructive tool. However, it does not mention alternatives such as update or search, so slightly penalized for missing exclusion guidance.
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_ticketADestructive
โ DESTRUCTIVE โ IRREVERSIBLE. Permanently removes a ticket association from a service call. This action cannot be undone. Confirm with the user before invoking.
| 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?
The description adds value beyond annotations by explicitly stating 'IRREVERSIBLE' and 'Cannot be undone', and by instructing user confirmation. The annotations already indicate destructiveHint: true, but the description reinforces the irreversible nature and adds safety guidance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences. It front-loads the warning and states the purpose and precaution without any unnecessary words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete tool with no output schema and annotations providing destructive info, the description covers the essential aspects: what it does, irreversible nature, and user confirmation. It is complete enough for an agent to understand the tool's behavior and necessary precautions.
Complex tools with many parameters or behaviors need more documentation. 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 100% of parameters with a description for serviceCallTicketId. The tool description does not add any additional parameter information beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'permanently removes a ticket association from a service call', specifying the verb 'removes' and the resource 'ticket association from a service call'. It distinguishes from sibling tools like autotask_create_service_call_ticket (create) and autotask_delete_service_call (delete entire 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?
The description includes 'Confirm with the user before invoking', providing a usage caution. However, it does not explicitly state when to use this tool versus alternatives (e.g., updating instead of deleting) nor when not to use it. The guidance is minimal and lacks comparison to other tools.
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_resourceADestructive
โ DESTRUCTIVE โ IRREVERSIBLE. Permanently removes a resource assignment from a service call ticket. This action cannot be undone. Confirm with the user before invoking.
| 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?
The annotations already set destructiveHint=true, but the description adds explicit warnings: 'โ DESTRUCTIVE โ IRREVERSIBLE. This action cannot be undone.' This goes beyond the annotation by emphasizing irreversibility and the need for user confirmation, providing clear behavioral context for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with a warning, and contains no superfluous information. 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?
Given the simplicity of the tool (one required parameter, no output schema), the description is complete. It covers the action, destructive behavior, irreversibility, and provides a usage instruction.
Complex tools with many parameters or behaviors need more documentation. 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 clear description for the single parameter. The tool description does not add additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Permanently removes a resource assignment from a service call ticket.' It uses a specific verb and resource, and distinguishes from sibling tools like autotask_delete_service_call_ticket by specifying it's about resource assignments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a usage guideline: 'Confirm with the user before invoking.' However, it does not provide explicit context on when to use this tool versus alternatives, nor does it specify when not to use it. The guidance is implied by the destructive nature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_delete_ticket_chargeADestructive
โ DESTRUCTIVE โ IRREVERSIBLE. Permanently deletes a ticket charge record and all associated billing data. This action cannot be undone. Confirm with the user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chargeId | Yes | The charge ID to delete | |
| ticketId | Yes | The parent ticket ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, but description adds concrete behavioral details: irreversible deletion and removal of associated billing data. This enhances transparency without contradicting structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences plus a prominent warning emoji. Front-loaded with the most critical information (destructiveness). 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 deletion tool with no output schema, coverage is good: it describes action, side effects, and user confirmation requirement. Lacks mention of error handling or what happens if charge doesn't exist, but these are not critical given the clear warning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are adequately described in the schema. The description adds no extra meaning about parameters, 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?
Description clearly states the action (permanently deletes) and the resource (ticket charge record and all associated billing data). The warning emphasizes irreversibility, distinguishing it from non-destructive operations on ticket charges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instructs to confirm with user before invoking, which is a valuable guideline. However, it lacks context on when to prefer this tool over alternatives (e.g., updating or searching charges) and does not specify 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_ticket_checklist_itemADestructive
โ DESTRUCTIVE โ IRREVERSIBLE. Permanently deletes a checklist item from a ticket. This action cannot be undone. Confirm with the user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | The checklist item ID to delete | |
| ticketId | Yes | The parent ticket ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true and readOnlyHint=false. The description adds emphasis on irreversibility and the need for user confirmation, providing context beyond annotations. It does not, however, mention authentication requirements or rate limits, but for a simple destructive action this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no wasted words. The critical warning is front-loaded with a symbol, and every sentence adds value (warning, action, and usage instruction).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 required parameters, no output schema), the description is complete. It covers purpose, behavior, and usage guideline. The warning compensates for the lack of output schema. A minor gap is no mention of what happens on success/failure, but the tool is simple enough.
Complex tools with many parameters or behaviors need more documentation. 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 fully described in the schema). The description adds no additional meaning beyond what the schema already provides for parameters, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Permanently deletes a checklist item from a ticket.' It uses a specific verb ('deletes') and resource ('checklist item'), and distinguishes from sibling tools like search, create, or update checklist 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 a clear usage guideline: 'Confirm with the user before invoking.' This tells the agent when to use the tool (only after user confirmation). However, it does not explicitly exclude alternatives, but the destructive nature makes the context clear.
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_itemA
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 are provided, so the description carries the burden. It states 'get detailed information', implying a read operation with no side effects, but does not disclose behavior on missing IDs 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?
Single sentence, front-loaded with the action, no redundant words. Conciseness is optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter retrieval with no output schema, the description is sufficient but could mention that it returns the full billing item object or error handling. However, it covers the essential purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, billingItemId, is fully described in the schema. The description adds no additional meaning beyond the schema, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get), resource (billing item), and identifier method (by ID). It differentiates from sibling tools like autotask_search_billing_items which list multiple 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?
No guidance is provided on when to use this tool over alternatives (e.g., search_billing_items), nor any prerequisites or context for the retrieval.
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 |
|---|---|---|---|
| noteId | Yes | The note ID to retrieve | |
| companyId | Yes | The company ID |
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 company site configuration records. Call first to discover available fields.
| 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 carry the full burden. It states the operation is a read ('Get'), but does not mention potential side effects, authorization requirements, or response characteristics. The description is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundant words. It is front-loaded with the purpose and uses efficient language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema, no nested objects), the description is mostly adequate. It could mention what the tool returns (site configuration records) but the purpose is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, companyId, is fully described in the schema (100% coverage). The description adds the context 'to discover available fields' but does not enhance parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Get'), the resource ('company site configuration records'), and the additional purpose ('discover available fields'). This distinguishes it from sibling tools like autotask_get_company_note or autotask_get_ticket_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?
The instruction 'Call first to discover available fields' provides explicit guidance on when to use this toolโbefore update operations. However, it does not explicitly list alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
|---|---|---|---|
| fieldName | No | Optional: filter to a specific field name | |
| 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. |
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 |
|---|---|---|---|
| noteId | Yes | The note ID to retrieve | |
| projectId | Yes | The project ID |
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 ticket attachment. With includeData=false (default) returns metadata only โ fast, suitable for browsing. With includeData=true returns the base64 binary content via the top-level /TicketAttachments/{id} endpoint (the child endpoint never populates data). The attachment is verified to belong to the given ticketId. Oversized binaries are stripped from the response with a dataOmittedReason field โ Autotask attachments can be up to 3 MB, which is ~4 MB as base64 and may exceed the MCP client tool-result limit (~1 MB).
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | The ticket ID the attachment belongs to | |
| includeData | No | Set true to fetch the base64-encoded file bytes. Default false returns metadata only. | |
| attachmentId | Yes | The attachment ID to retrieve | |
| maxInlineBase64Bytes | No | Cap on base64 string length before data is stripped (default 750_000, ~560 KB raw). Only relevant when includeData=true. Raise carefully โ your MCP client may reject oversized tool results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosures include endpoint behavior, base64 encoding, stripping oversized binaries with dataOmittedReason, attachment verification, and size limits. No annotations provided, so description fully covers 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?
Concise with clear structure: function, mode behaviors, verification, and size handling. 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?
Thoroughly explains return format, parameter effects, and edge cases (oversized files, verification). No output schema, but description covers needed 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% (baseline 3). Description adds value by explaining return behavior for includeData and default cap for maxInlineBase64Bytes with client-limit warning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 retrieves a ticket attachment, distinguishes between metadata-only and full-data retrieval via includeData flag, and verifies attachment belongs to ticketId. It differentiates from sibling search tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using includeData=false for browsing and includeData=true for content, warns about size limits and cautious use of maxInlineBase64Bytes. Missing explicit when-not-to-use compared to siblings.
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_detailsB
Get full ticket details including notes, time entries, and custom fields.
| 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 provided. Description only says it retrieves full details but does not disclose behavior like authentication needs, rate limits, error handling for invalid ticket IDs, or performance implications of the fullDetails flag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description does not specify the structure of the returned ticket details, leaving an AI agent uncertain about the response format. For a retrieval endpoint, more detail on output would be 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%, so the schema already explains both parameters. The description adds no additional semantic value beyond the 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?
Description clearly states the action ('Get'), the resource ('full ticket details'), and explicitly lists included sub-items (notes, time entries, custom fields). This distinguishes it from sibling tools like autotask_get_ticket_note or 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 such as search_tickets (for summaries) or get_ticket_note (for specific notes). Also no mention of the trade-off for the fullDetails parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_get_ticket_historyA
Get a single ticket history entry by ID. Each entry records one audited change to a ticket field (who, when, before/after).
| Name | Required | Description | Default |
|---|---|---|---|
| historyId | Yes | The ticket history entry ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. Description accurately describes a read operation and the nature of the data, but could mention potential 404 if ID not found or other 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, front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple single-parameter tool with no output schema, description sufficiently covers purpose and data content.
Complex tools with many parameters or behaviors need more documentation. 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 fully describes the historyId parameter (100% coverage). Description adds context about what the entry contains but not additional 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 it gets a single ticket history entry by ID and explains what a history entry records (who, when, before/after). This distinguishes it from sibling search_ticket_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 implies use when you have a specific history ID, but does not explicitly state when to use or exclude alternatives like search_ticket_history.
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 |
|---|---|---|---|
| noteId | Yes | The note ID to retrieve | |
| ticketId | Yes | The ticket ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 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 |
|---|---|---|---|
| pageSize | No | Results per page (default: 25, max: 100) | |
| projectID | Yes | Project ID to list phases for |
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_raw_requestA
Escape hatch for Autotask REST endpoints not yet wrapped by a typed tool. Use sparingly โ typed tools are preferred for safety. The existing Content-Type, Accept, ApiIntegrationcode, UserName, Secret headers are added automatically. The path is resolved against the zone-resolved base URL (https://webservices.autotask.net/ATServicesRest/v1.0). Pass queryParams as a flat object of string/number/boolean values; they will be URL-encoded and appended to the path.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Optional JSON body for POST/PATCH requests | |
| path | Yes | Path under the Autotask REST v1.0 base (e.g. "/Companies/175" or "/Companies/query") | |
| method | Yes | HTTP method | |
| queryParams | No | Optional flat key-value query parameters (e.g. { includeFields: "id,name" }) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses automatic header injection, path resolution, and query parameter encoding. However, it omits details about response format, error handling, and potential destructiveness of certain methods, though the method enum covers DELETE.
Agents need to know what a tool does to the 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 5 sentences, each earning its place. It front-loads the purpose and usage guidance. Minor improvement: could be more structured, but it's concise 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?
Critical missing information: the response output is not described. Since there is no output schema, the agent cannot infer what the tool returns (raw JSON, error codes, etc.). This is a significant gap for a raw request tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining how path is resolved, that queryParams are URL-encoded, and that body is optional. This enriches understanding beyond the raw 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 identifies the tool as an 'escape hatch' for untyped Autotask endpoints, distinguishing it from the many sibling tools that wrap specific resources. It uses precise verbs ('raw request') and specifies the resource (Autotask REST API).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when to use ('endpoints not yet wrapped') and when not to ('use sparingly, typed tools preferred for safety'), providing clear guidance on alternatives without ambiguity.
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 |
|---|---|---|---|
| page | No | ||
| pageSize | No | Max 500 | |
| timeEntryId | No | Filter by time entry 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) | |
| approvalResourceId | No | Filter by approver resource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It adds minimal behavioral context beyond the purpose; lacks details on pagination, rate limits, or what the response contains. The description is too brief for a search 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?
Two concise sentences: first states the action, second explains the concept. No unnecessary words, front-loaded 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?
Without output schema or annotations, the description lacks completeness. It does not cover return format, default behavior, or limitations, which are important for a 7-parameter 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 86%, with most parameters described in the schema. The description adds no additional meaning beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states its purpose: searching for billing item approval levels, and explains what these are (multi-level approval records for time entries). This distinguishes it clearly from sibling tools like autotask_search_billing_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?
No explicit guidance on when to use this tool vs alternatives. The context implies it's for approval level searches, but there is no mention of when not to use it or comparison with 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_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 |
|---|---|---|---|
| page | No | ||
| dateTo | No | Filter billing items with itemDate on or before this date (ISO format) | |
| dateFrom | No | Filter billing items with itemDate on or after this date (ISO format, e.g. 2026-01-01) | |
| pageSize | No | Max 500 | |
| ticketId | No | Filter by ticket ID | |
| companyId | No | Filter by company ID | |
| invoiceId | No | Filter by invoice ID | |
| projectId | No | Filter by project ID | |
| contractId | No | Filter by contract 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". | |
| 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) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It discloses the default page size (25) and the 'Approve and Post' workflow context, but does not detail authorization needs, rate limits, or behavior when no filters are applied (returns all?). Transparency is basic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant information. First sentence states purpose, second provides essential context. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, no required ones, no output schema, and no annotations, the description adequately covers the tool's purpose and default behavior. Could mention pagination details, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (92%), so baseline is 3. Description adds value by clarifying that billing items are 'approved and posted', which provides context for filters like isInvoiced and postedAfter/Before. It also mentions default page size (25) which is not in 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 verb 'Search' and resource 'billing items', and explains what billing items are (approved and posted from the 'Approve and Post' workflow). This distinguishes it from sibling search tools like autotask_search_billing_item_approval_levels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides context about billing items but does not explicitly state when to use this tool versus other search tools or filters. It lacks 'when not to use' guidance or alternative recommendations, though the entity name alone provides some differentiation.
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 companies by name or status. Max 200/page.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| isActive | No | ||
| pageSize | No | Max 200 | |
| searchTerm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral burden. Only mentions max 200/page; missing details on case sensitivity, match behavior, default sort, or permissions. Insufficient 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?
Single sentence is concise but omits important details like default pagination or return format. Strikes a balance but lacks 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?
No output schema, so description should explain return values. Does not mention format or pagination behavior beyond max. Incomplete given 4 parameters and zero annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds meaning for searchTerm and isActive (name/status), but schema coverage is only 25%. Adds some value beyond schema for two parameters, but not for page or other aspects.
Input schemas describe structure but not intent. Descriptions should explain 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 searches companies by name or status, which distinguishes it from siblings like autotask_search_tickets or 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?
No explicit guidance on when to use this vs. alternatives. Implied by the entity type, but no when-not or context differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_company_notesA
Search for notes on a specific company. Iterating across many companies trips Autotask's API threshold โ scope the parent list first.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Number of results to return (default: 25, max: 100) | |
| companyId | Yes | The company ID to search notes for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It warns about API rate limiting when iterating across companies, which is valuable. However, it omits details like return format, pagination behavior, or authentication requirements, making it only moderately 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 extremely concise: two sentences that each serve a distinct purpose (stating functionality and providing usage guidance). No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, no output schema), the description covers the essential points: what it does and a critical usage constraint. It could briefly mention the return format, but the absence is not severely detrimental.
Complex tools with many parameters or behaviors need more documentation. 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 (companyId and pageSize). The tool description adds no additional semantic value beyond the schema, so the score is at 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 clearly states the action ('Search for notes') and the target ('on a specific company'). It effectively distinguishes this tool from sibling tools like autotask_create_company_note (create) and autotask_get_company_note (get by ID).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit usage warning: iterating across many companies triggers Autotask's API threshold, advising to scope the parent list first. This guides the agent on when to use this tool (single company) and when to avoid (multiple companies without prior scoping).
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 |
|---|---|---|---|
| isActive | No | ||
| pageSize | No | Number of results to return (default: 25, max: 500) | |
| companyID | No | Filter by company ID | |
| productID | No | Filter by product ID | |
| searchTerm | No | Search term for configuration item name | |
| configurationItemType | No | Filter by configuration item type (numeric picklist value) | |
| configurationItemCategoryID | No | Filter by configuration item category ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits. It does not mention pagination, results limit, ordering, or any side effects. The pageSize parameter is documented in the schema but not in the description, missing an opportunity to add context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks substance. It does not waste words but also fails to provide useful information beyond the tool's primary function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 optional parameters and no output schema, the description does not explain the return format, pagination behavior, or how filters combine. For a search tool of moderate complexity, more context is needed to ensure correct 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 high (86%), so the baseline is 3. The description does not add any parameter-specific meaning beyond 'optional filters', but the schema already describes each parameter (e.g., pageSize default/max, searchTerm). The description provides no extra value for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for configuration items in Autotask with optional filters. The verb 'Search' and resource 'configuration items' are specific, and it distinguishes itself from sibling search tools for other entities (e.g., tickets, companies).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like search_tickets or search_companies. The description does not mention any prerequisites, exclusions, or use cases.
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 contacts by name, email, or company. Max 200/page.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| isActive | No | Filter by active status (1=active, 0=inactive) | |
| pageSize | No | Max 200 | |
| companyID | No | Filter by company ID | |
| searchTerm | No | Search term for contact name or email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only mentions 'Max 200/page,' indicating a pagination limit, but lacks other behavioral details such as read-only status, authentication requirements, or rate limits. For a search tool, minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no superfluous words. It efficiently conveys the core purpose and a key constraint (max 200 per page).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 5 parameters and no output schema, the description covers the basic purpose and search criteria but lacks details on return format, pagination behavior (e.g., how to get next page), or error handling. It is minimally complete given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so baseline is 3. The description adds value by naming searchable fields (name, email, company), which correspond to 'searchTerm' and 'companyID', but does not explain 'page', 'pageSize', or 'isActive' beyond what the schema already provides. Limited additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search contacts by name, email, or company,' specifying the verb (search), resource (contacts), and key search criteria. It distinguishes this tool from sibling tools like autotask_search_companies or autotask_search_tickets by explicitly targeting 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 implies usage for searching contacts, but it does not provide explicit guidance on when to use this tool versus alternatives (e.g., autotask_create_contact for creation) or when not to use it. No exclusions or preconditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_contractsC
Search for contracts in Autotask with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by contract status (1=In Effect, 3=Terminated) | |
| pageSize | No | Number of results to return (default: 25, max: 500) | |
| companyID | No | Filter by company ID | |
| searchTerm | No | Search term for contract name |
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 |
|---|---|---|---|
| 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) | |
| submitterId | No | Filter by submitter resource ID |
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 |
|---|---|---|---|
| isVoided | No | Filter by voided status | |
| pageSize | No | Number of results to return (default: 25, max: 500) | |
| companyID | No | Filter by company ID | |
| invoiceNumber | No | Filter by invoice number |
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 |
|---|---|---|---|
| status | No | Filter by status | |
| pageSize | No | Number of results to return (default: 25, max: 100) | |
| companyId | No | Filter by company ID | |
| searchTerm | No | Search term for opportunity title |
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_productsC
Search for products with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| isActive | No | ||
| pageSize | No | Number of results to return (default: 25, max: 100) | |
| searchTerm | No | Search term for product name |
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 like pagination behavior, authentication requirements, rate limits, or whether the search is exact or fuzzy. The tool could be destructive, but nothing indicates safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (6 words), which is concise but risks underspecification. It is front-loaded with the key action and resource, but could include more context without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema, and no annotations, the description should provide more context about return values, pagination behavior, and filter interaction. It is incomplete for an AI agent to use effectively without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. 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 two of three parameters (searchTerm and pageSize), covering 67%. The description adds no additional meaning beyond 'optional filters', which is already implied by the schema's required field being empty. The isActive parameter lacks description, and the description does not clarify its semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and the resource 'products', making the tool's purpose straightforward. While the sibling tools include many other search functions, this one is differentiated by focusing on products. However, it does not elaborate on scope beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, such as when to use autotask_get_product for a single product. No when-not or exclusions 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_project_notesA
Search for notes on a specific project. Fan-out across many projects trips Autotask's API threshold (see issue #69) โ scope the parent list (status, company, date range) first.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Number of results to return (default: 25, max: 100) | |
| projectId | Yes | The project ID to search notes for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden of disclosure. It reveals a key behavioral trait: fan-out across many projects causes API threshold issues, and references issue #69. It does not detail pagination, rate limits, or response structure, but the disclosed risk is critical for correct usage.
Agents need to know what a tool does to the 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 followed by a critical caveat. Every sentence earns its place with no redundancy. 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?
Despite having no output schema, the description covers the primary purpose and a key behavioral constraint. It lacks information about the return format, but for a search tool with low complexity, this is a minor gap. The scoping advice adds practical 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%, so the schema already documents both parameters. The description adds context about scoping but does not enhance parameter semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and resource 'notes on a specific project'. It distinguishes from siblings like autotask_get_project_note (single note retrieval) and autotask_create_project_note (creation) by specifying search over a project. The scope limitation further clarifies purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly warns about fan-out across many projects tripping Autotask's API threshold and advises to scope the parent list first. This provides clear guidance on when to use (specific project) and when to avoid (many projects without filtering), with an implicit alternative of scoping before searching.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_projectsC
Search for projects in Autotask. Returns 25 results per page by default. Use page parameter for more results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| status | No | Filter by project status | |
| pageSize | No | Results per page (default: 25, max: 100) | |
| companyID | No | Filter by company ID | |
| searchTerm | No | Search term for project name | |
| projectLeadResourceID | No | Filter by project lead resource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It only discloses pagination behavior and default page size. Missing are read-only nature, rate limits, ordering, or what happens when no parameters are provided. A search tool should clarify if it supports partial matching or requires exact names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core purpose, no fluff. Every sentence conveys essential information 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?
No output schema, so description should explain return values. It does not describe the result format (e.g., list of project IDs, names). For a search tool with 6 parameters and pagination, crucial context like search behavior (e.g., partial match) is missing.
Complex tools with many parameters or behaviors need more documentation. 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 83%, and the description adds value by stating default pageSize (25) and suggesting the page parameter for more results. However, it does not elaborate on other parameters (status, companyID, searchTerm) beyond what the schema already describes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 projects in Autotask, which distinguishes it from sibling search tools targeting different entities (e.g., tickets, opportunities). However, it does not explicitly differentiate from other project-related tools 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 provides pagination info (25 per page, page parameter) but gives no guidance on when to use this tool vs alternatives like autotask_search_opportunities or how to filter effectively. 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_quote_itemsA
Search for quote items, typically filtered by quote ID
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | No | Filter by quote ID (recommended) | |
| pageSize | No | Number of results to return (default: 50, max: 100) | |
| searchTerm | No | Search term for quote item name |
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 |
|---|---|---|---|
| pageSize | No | Number of results to return (default: 25, max: 100) | |
| companyId | No | Filter by company ID | |
| contactId | No | Filter by contact ID | |
| searchTerm | No | Search term for quote name or description | |
| opportunityId | No | Filter by opportunity ID |
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_resourcesA
Search for resources (users) in Autotask. Returns 25 results per page by default. Use page parameter for more results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| isActive | No | ||
| pageSize | No | Max 500 | |
| searchTerm | No | Search term for resource name or email | |
| resourceType | No | Filter by resource type (1=Employee, 2=Contractor, 3=Temporary) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers pagination behavior but lacks details on read-only nature, authentication needs, or side effects. It is adequate for a typical search but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, every sentence adds value. 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 5 optional parameters and no output schema, the description is incomplete. It does not explain behavior with no parameters, return structure, or how filters like isActive or resourceType affect results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description adds meaning to the page parameter and default page size. However, it does not compensate for missing descriptions on isActive or fully detail the use of searchTerm and resourceType beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it searches for resources (users) in Autotask, using a specific verb and resource. It distinguishes from sibling search tools for other entities like companies, contacts, 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?
Provides basic guidance on pagination (25 default, use page parameter) but does not explicitly state when to use this search versus other search tools, nor when to avoid 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_bundlesC
Search for service bundles with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| isActive | No | ||
| pageSize | No | Number of results to return (default: 25, max: 100) | |
| searchTerm | No | Search term for service bundle name |
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 'optional filters' but does not describe pagination behavior (though pageSize is in schema), return format, side effects, or data freshness. Critical 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 extremely concise (one sentence), but this sacrifices necessary detail. It is not front-loaded with key information; the entire description is just a single phrase. Conciseness at the cost of completeness is not optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the return value, pagination limits, or how the filters interact. For a search tool, users need to know result structure and query behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 67% of parameters with descriptions. The description adds no additional meaning beyond the schema. The 'isActive' parameter lacks schema description and is unmentioned in the description. The description does not clarify how filters combine or default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search') and the resource ('service bundles'), but does not differentiate from sibling tools like 'autotask_get_service_bundle' or other search tools. It lacks specificity about the scope or context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. There is no mention of prerequisites, typical use cases, or exclusions. The sibling list includes a similar tool 'autotask_get_service_bundle' for single retrieval, but no differentiation is offered.
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 |
|---|---|---|---|
| status | No | Filter by status picklist ID (use autotask_get_field_info with entityType "ServiceCalls" to find valid values) | |
| pageSize | No | Number of results to return (default: 25, max: 100) | |
| companyId | No | Filter by company ID | |
| 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) |
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 |
|---|---|---|---|
| pageSize | No | Number of results to return (default: 25) | |
| resourceId | No | Filter by resource (technician) ID | |
| serviceCallTicketId | No | Filter by service call ticket ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states 'search' which implies read-only, but does not disclose any additional behavioral traits such as authentication requirements, rate limits, or whether the operation is safe beyond what the name suggests.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, direct, and front-loaded with the core action. However, it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with three documented parameters and no output schema or nested objects, the description is minimally adequate. It does not clarify return value structure or pagination behavior beyond pageSize, leaving some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all three parameters have descriptions). The tool description adds no extra meaning beyond the schema, which already explains that resourceId filters by technician ID, serviceCallTicketId by ticket ID, and pageSize controls result count. 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 'Search for resource (technician) assignments on service call tickets.' It uses a specific verb ('search') and identifies the resource ('resource assignments') and context ('service call tickets'), differentiating it from sibling tools like autotask_search_service_call_tickets which search for tickets themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 use case (finding technician assignments) but does not explicitly state when to use this tool versus alternatives like autotask_create_service_call_ticket_resource. No when-not-to-use guidance is provided.
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 |
|---|---|---|---|
| pageSize | No | Number of results to return (default: 25) | |
| ticketId | No | Filter by ticket ID | |
| serviceCallId | No | Filter by service call ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. The description only states the search action but omits important traits: it does not confirm read-only behavior (though implied), does not mention pagination behavior despite the pageSize parameter, and does not describe what the response contains (e.g., list of association objects with key fields). This lack of detail leaves the agent guessing about side effects and output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences with no extraneous words. The first sentence states the action and resource, the second provides usage guidance. It is front-loaded and every sentence serves a purpose. This is a model of efficient tool descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is insufficiently complete. It lacks details about the return format (expected fields or structure), the effect of not providing any filter (potential full list?), and any prerequisites (e.g., valid ticket or service call IDs). A complete description would at least mention the output is a list of ticket-service call association objects.
Complex tools with many parameters or behaviors need more documentation. 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 three parameters (pageSize, ticketId, serviceCallId) with descriptions. The tool's description text does not add any additional meaning beyond restating the filter capabilities. Per guidelines, baseline is 3 when schema coverage is high and description offers no extra value. The description could hint at combining filters or default page size, but it doesn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 uses a specific verb ('Search') and resource ('ticket associations on service calls'). It also explicitly differentiates two use cases (finding tickets linked to a service call, and finding service calls containing a ticket), which helps distinguish it from sibling tools like autotask_search_tickets or autotask_get_ticket_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?
The description provides explicit use cases ('find which tickets are linked to a service call, or which service calls contain a specific ticket'), giving clear context for when to use the tool. However, it does not mention when not to use it or suggest alternative tools, though the sibling list contains many search tools that could overlap (e.g., autotask_search_service_calls). A brief note on exclusion would improve it.
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 |
|---|---|---|---|
| isActive | No | ||
| pageSize | No | Number of results to return (default: 25, max: 100) | |
| searchTerm | No | Search term for service name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details. It does not state that the tool is read-only, how it handles missing filters, or what the response format looks like. Since no annotations are present, the description should disclose these 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 very concise with a single sentence, but it is too vague to be truly useful. It earns its place by being short, but it could be more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters and no output schema, the description should explain more about search behavior, default filters, and return structure. The minimal description leaves significant gaps for an AI agent to understand the tool's full functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information beyond what the schema provides. The 'isActive' parameter has no description in the schema, and the description does not clarify its behavior. The baseline for moderate schema coverage (67%) is somewhat lower, but the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 services with optional filters' clearly states the tool's action (search) and resource (services). It distinguishes itself from sibling search tools by focusing on services, but does not explicitly differentiate from similar service-related tools like autotask_search_service_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?
No guidance is provided on when to use this tool versus alternatives. With many sibling search and get tools, the agent would benefit from knowing, for example, to use this tool for broad searches and autotask_get_service for a specific service. The description offers no such context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_tasksA
Search for tasks in Autotask. Returns 25 results per page by default. Use page parameter for more results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| status | No | Filter by task status (1=New, 2=In Progress, 5=Complete) | |
| pageSize | No | Results per page (default: 25, max: 100) | |
| projectID | No | Filter by project ID | |
| searchTerm | No | Search term for task title | |
| assignedResourceID | No | Filter by assigned resource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses pagination behavior (default page size, page parameter) but does not mention other traits such as read-only nature, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that front-load the core purpose and key pagination detail. Every word adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 6 parameters and no output schema, the description covers basic functionality and pagination but misses details like search syntax, result format, and advanced filtering 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 83% (most parameters have descriptions). The description adds no extra parameter details beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for tasks in Autotask,' specifying the action and resource. However, it does not explicitly differentiate from sibling tools like autotask_search_tickets or autotask_create_task, but the resource 'tasks' is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 basic pagination guidance ('Returns 25 results per page by default. Use page parameter for more results.') but does not mention when to use this tool versus alternatives, nor 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_ticket_attachmentsA
Search for attachments on a specific ticket. Each parent triggers a separate query โ scope the parent ticket list before iterating.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Number of results to return (default: 10, max: 50) | |
| ticketId | Yes | The ticket ID to search attachments for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full responsibility. It discloses the per-query behavior and iteration warning, but does not mention safety (read-only), authentication needs, or rate limits. The iteration advice is valuable behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no unnecessary words. First sentence states purpose, second provides essential usage guidance. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with 2 parameters and no output schema, the description covers purpose and usage pattern. It could discuss response structure or pagination behavior, but the iteration advice adds completeness. Missing output schema is not the description's fault.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters already described in the schema (ticketId and pageSize with default/max). The description does not add extra parameter meaning beyond the iteration implication, 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 states 'Search for attachments on a specific ticket', clearly specifying the verb (search), resource (attachments), and scope (on a specific ticket). It distinguishes from sibling tools like autotask_get_ticket_attachment (get one) and autotask_create_ticket_attachment (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?
Explicitly advises 'each parent triggers a separate query โ scope the parent ticket list before iterating,' providing when-to-use (single ticket) and when-not (many tickets without scoping). This guides the agent to avoid excessive queries.
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 ticket charges (materials, costs, expenses). Provide ticketId for best performance. Max 10 if unfiltered.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Number of results to return (default: 25, max: 100) | |
| ticketId | No | Filter by ticket ID (recommended) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description implies a read operation but does not detail idempotency, side effects, authentication needs, or return format. The performance tip is helpful but behavioral transparency is limited.
Agents need to know what a tool does to the 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 core purpose, and every word adds value. No redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description could more fully explain what the tool returns (e.g., list of charge objects) and pagination details beyond the unfiltered max. It is adequate but not 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 covers 100% of parameters, so baseline is 3. The description adds value by noting performance benefit of ticketId and a constraint ('Max 10 if unfiltered') that overrides pageSize, which is not in the schema. This clarifies behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches ticket charges (materials, costs, expenses) with verb 'search' and resource 'ticket charges'. It distinguishes from related tools like get_ticket_charge or create_ticket_charge, but does not differentiate from other search tools among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance to 'provide ticketId for best performance' and notes 'Max 10 if unfiltered', giving context on when to use the optional parameter. However, it does not explicitly contrast with alternative tools like get_ticket_charge for single record retrieval.
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_historyA
Get the audit trail of field changes for a ticket (status transitions, assignment changes, priority edits, etc.). Use this to answer questions like "when did this ticket move from In Progress to Waiting Customer" or "who changed the priority". Returns entries ordered by Autotask; sort/filter client-side if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Number of history entries to return (default: 50, max: 500) | |
| ticketId | Yes | The ticket ID to get history for (required โ Autotask does not support unscoped history queries) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It discloses that results are returned ordered by Autotask and that client-side post-processing may be needed. It also notes Autotask does not support unscoped queries. However, it omits details like authorization requirements, rate limits, or whether the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, each serving a distinct purpose: the first defines the tool's function with examples, the second explains output ordering and client-side processing. No redundant or vague language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no nested objects, no output schema), the description covers the essential purpose and usage context. It lacks details about the return structure (e.g., fields in the audit trail), but the examples partially compensate. Overall, it is mostly complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described in the input schema. The description does not add substantial meaning beyond what the schema already provides (e.g., ticketId's requirement and pageSize's default/max). 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 retrieves the 'audit trail of field changes' for a ticket, with specific examples like status transitions and priority edits. It distinguishes itself from sibling tools like autotask_get_ticket_details by focusing on change history rather than current state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 use cases (e.g., 'when did this ticket move from In Progress to Waiting Customer') and mentions client-side sorting/filtering. However, it does not directly address when to use this vs. the sibling autotask_get_ticket_history, though the name implies search vs. get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_ticket_notesA
Search for notes on a specific ticket. Iterating across many tickets trips Autotask's per-integration API threshold โ scope the parent list first.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Number of results to return (default: 25, max: 100) | |
| ticketId | Yes | The ticket ID to search notes for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses a key behavioral trait (API threshold) not in annotations, but does not mention other behaviors like pagination or permissions. Annotations are absent, so description carries moderate 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?
Two concise sentences, front-loaded with purpose, no wasted words. Efficiently communicates key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides purpose and critical usage warning. With 2 parameters documented in schema, the description is largely complete, though missing details about response format (no output schema). Minor gap but acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds no additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Search') + resource ('notes on a specific ticket'). Distinguishes from siblings like 'get_ticket_note' and 'create_ticket_note' by specifying the search scope and including a warning about API thresholds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when not to use ('iterating across many tickets') and provides a best practice ('scope the parent list first'). Directly addresses alternative usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_search_ticketsB
Search tickets by company, queue, status, priority. Use autotask_get_ticket_details for full data. Max 500/page.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| status | No | Filter by ticket status ID (omit for all open tickets) | |
| queueID | No | Filter by queue ID. Use autotask_list_queues to discover valid IDs. | |
| pageSize | No | Max 500 | |
| priority | No | Filter by ticket priority ID. Use autotask_list_ticket_priorities to discover valid IDs. | |
| companyID | No | Filter by company ID | |
| contactID | No | Filter by primary contact ID โ returns only tickets where contactID matches | |
| searchTerm | No | Search by ticket number prefix | |
| 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) | |
| assignedResourceID | No | Filter by assigned resource ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description discloses max 500 per page and pagination but does not mention default behavior, read-only nature, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key filters and alternative tool reference. Efficient but could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks description of return value format or field set; for a search tool with 13 parameters and no output schema, more context on results is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (92%); description adds little beyond schema descriptions, mainly reinforcing pagination limit already in 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 'Search tickets by company, queue, status, priority.' and distinguishes from autotask_get_ticket_details by noting that tool is for full data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a reference to an alternative tool for full data, but lacks explicit when-not-to-use guidance or prerequisites.
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. Common fan-out target โ scope by date range first to avoid Autotask's API threshold.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| taskId | No | Filter by task ID | |
| billable | No | Filter by billable status (true = billable only, false = non-billable only) | |
| pageSize | No | Max 500 | |
| ticketId | No | Filter by ticket ID | |
| projectId | No | Filter by project ID | |
| resourceId | No | Filter by resource (user) ID | |
| approvalStatus | No | Filter by approval status: "unapproved" = not yet posted (billingApprovalDateTime is null), "approved" = already posted, "all" = no filter (default) | |
| 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) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses default 25 results per page, max page size (in schema), and API threshold warning. Lacks explicit statement on idempotency/read-only nature, but overall informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then defaults, then filters. Every sentence adds value with 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?
Covers essential filtering, pagination, and API threshold. Lacks description of return format (no output schema), but schema descriptions cover most parameters adequately.
Complex tools with many parameters or behaviors need more documentation. 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 high (90%), but description adds value by stating default page size explicitly and explaining approvalStatus values beyond schema descriptions. Also provides practical advice on parameter 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?
Description clearly states 'Search for time entries in Autotask' with specific verb and resource. Mentions default page size and common filters, distinguishing it from sibling tools focused on other entities like tickets or 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?
Explicitly advises 'scope by date range first to avoid Autotask's API threshold' and provides example usage for approvalStatus, giving clear context on when and how to use the tool effectively.
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 Autotask API connection
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'test connection' without detailing what actions are taken, what the response indicates, or whether authentication is required. This is insufficient for an agent to predict 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 sentence, making it concise, but it lacks structure and detail. It front-loads the purpose but could be more informative without significant verbosity. It is adequate but not optimally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema and annotations, the description should provide more context about the tool's behavior, expected outcomes, and usage flow. The current description is too vague to be considered complete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters and schema description coverage is 100%, so the description does not need to add parameter meaning. A score of 4 is baseline for 0-parameter tools, as no additional explanation is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Test Autotask API connection' clearly states the tool's purpose: to test the connection to the Autotask API. It distinguishes this tool from its siblings, which perform specific CRUD operations, by focusing on a connectivity check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 verifying API connectivity but does not explicitly state when to use this tool vs alternatives, nor does it provide exclusions or prerequisites. The sibling context suggests it precedes other operations, but no clear guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_update_companyA
Update company record. invoiceTemplateID sets payment terms (103=Due on Receipt, 104=NET 30). Billing address fields separate from regular address.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| city | No | ||
| phone | No | ||
| state | No | ||
| taxID | No | Tax registration / FEIN / VAT identifier string | |
| address1 | No | Regular address (distinct from billingAddress1) | |
| address2 | No | ||
| isActive | No | ||
| countryID | No | e.g. 237 for United States | |
| billToCity | No | Bill-to city | |
| postalCode | No | ||
| webAddress | No | Website URL (field name is webAddress) | |
| billToState | No | Bill-to state/province | |
| companyName | No | ||
| companyType | No | Company type picklist ID (e.g. Customer, Prospect, Vendor) | |
| isTaxExempt | No | Whether the company is tax-exempt. Note: Autotask field name is `isTaxExempt` โ not `taxExempt`. | |
| taxRegionID | No | Tax region ID (capital ID suffix per Autotask convention) | |
| billToZipCode | No | Bill-to ZIP/postal code | |
| invoiceMethod | No | Invoice delivery method picklist ID (e.g. 2=Email) | |
| classification | No | Company classification picklist ID | |
| billToAttention | No | Bill-to attention name | |
| billToCountryID | No | Bill-to country ID | |
| billingAddress1 | No | For invoices (separate from address1) | |
| billingAddress2 | No | Billing address line 2 | |
| ownerResourceID | No | Resource ID of the account owner | |
| quoteTemplateID | No | Default quote template ID for this company | |
| invoiceTemplateID | No | Invoice template ID applied to this company. Acts as the payment-terms selector (e.g. 103=Due on Receipt, 104=NET 30). | |
| billToAddressToUse | No | 1 = use bill-to fields explicitly | |
| quoteEmailMessageID | No | Default email-message template ID used when sending quotes | |
| invoiceEmailMessageID | No | Default email-message template ID used when invoicing this company | |
| billToCompanyLocationID | No | Bill-to company location ID | |
| purchaseOrderTemplateID | No | Default purchase-order template ID for this company |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry full burden. It discloses that invoiceTemplateID sets payment terms and that billing addresses are separate, but leaves out other behavioral traits such as reversibility, required permissions, or response 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 sentences precisely state the purpose and key behavioral notes. No extraneous information, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 32 parameters and no output schema, the description is relatively brief. It highlights crucial distinctions (payment terms, billing addresses) but does not cover all behavioral aspects comprehensively.
Complex tools with many parameters or behaviors need more documentation. 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 75%, so the schema already explains most parameters. The description adds value for invoiceTemplateID (payment terms mapping) and billing address distinction, but this is marginal beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and the resource 'company record'. It distinguishes from sibling tools like 'autotask_create_company' and 'autotask_search_companies' by focusing on modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 some context (e.g., invoiceTemplateID behaviors) but does not explicitly state when to use this tool versus alternatives like create or search. 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_update_company_site_configurationA
Update company site configuration. Fields are tenant-defined; call get first.
| 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?
With no annotations, the description must fully disclose behavior. It mentions 'Fields are tenant-defined', revealing that the updates object is flexible. However, it does not mention any side effects, permissions, or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences. Every word adds valueโthe action, the flexibility note, and the prerequisite. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and good schema coverage, the description is sufficiently complete. It explains the purpose and key usage. No output schema exists, so return values are not covered, but that's acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by indicating the id comes from get and that fields are tenant-defined, which clarifies the nature of the updates parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update company site configuration', which is a specific verb+resource. It implicitly distinguishes itself from autotask_get_company_site_configuration and other siblings by its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a key usage guideline: 'call get first', which instructs the agent to retrieve the current configuration before updating. This is helpful, though it lacks explicit when-not-to-use or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_update_contactB
Update contact record. Only provided fields are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contact ID to update | |
| city | No | City | |
| phone | No | Primary phone number | |
| state | No | State/province | |
| title | No | Job title | |
| zipCode | No | Postal/ZIP code | |
| isActive | No | Whether the contact is active | |
| lastName | No | ||
| countryID | No | Country ID (Autotask Countries entity) | |
| firstName | No | ||
| addressLine | No | Address line (primary) | |
| mobilePhone | No | Mobile phone number | |
| addressLine1 | No | Address line 1 (secondary) | |
| emailAddress | No | Primary email address | |
| primaryContact | No | Whether this contact is the primary contact for their company | |
| userDefinedFields | No | User-defined (custom) fields for the contact, as an array of { name, value } objects matching the Autotask REST API shape. Contacts support UDFs (hasUserDefinedFields: true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Specifies only provided fields are changed, a key behavior. Lacks info on error handling, permissions, or side effects, but the partial update detail is helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no unnecessary words; 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?
With 16 parameters, no output schema, and no annotations, the description is too brief. Missing details on return value, validation, or 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 88%, so the schema already documents parameters. Description adds no new parameter info beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a contact record and mentions partial update semantics, distinguishing it from create and 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 when or when-not to use, but the context of siblings (create, search) provides implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_update_contractA
Update an existing Contract in Autotask (PATCH). Pass only fields you want to change; everything except id is optional. status: 1=In Effect, 0=Inactive.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contract ID to update | |
| status | No | Contract status (1=In Effect, 0=Inactive) | |
| endDate | No | Contract end date (ISO YYYY-MM-DD) | |
| setupFee | No | Setup fee amount | |
| companyID | No | Company ID | |
| contactID | No | Primary contact ID | |
| startDate | No | Contract start date (ISO YYYY-MM-DD) | |
| description | No | Contract description / notes | |
| contractName | No | Contract name | |
| contractType | No | Contract type picklist ID | |
| estimatedCost | No | Estimated cost | |
| opportunityID | No | Originating opportunity ID | |
| contractNumber | No | External-facing contract number | |
| estimatedHours | No | Estimated hours | |
| billToCompanyID | No | Bill-to company ID | |
| contractCategory | No | Contract category picklist ID | |
| estimatedRevenue | No | Estimated revenue | |
| billingPreference | No | Billing preference picklist ID | |
| isDefaultContract | No | Whether this is the default contract for the company | |
| renewedContractID | No | ID of the contract this renewed | |
| contractPeriodType | No | Period type picklist ID | |
| overageBillingRate | No | Overage billing rate | |
| exclusionContractID | No | Exclusion contract ID | |
| purchaseOrderNumber | No | Customer purchase order number | |
| setupFeeBillingCodeID | No | Billing code ID for the setup fee | |
| billToCompanyContactID | No | Bill-to contact ID | |
| contractExclusionSetID | No | Contract exclusion set ID | |
| serviceLevelAgreementID | No | SLA ID | |
| internalCurrencySetupFee | No | Setup fee in internal currency | |
| organizationalLevelAssociationID | No | Org level association ID | |
| internalCurrencyOverageBillingRate | No | Overage rate in internal currency | |
| timeReportingRequiresStartAndStopTimes | No | Whether time entries require start/stop times |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Reveals HTTP method (PATCH) and optionality, but lacks details on error handling, validation, side effects, or prerequisites. Since no annotations exist, more behavioral disclosure 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 efficient sentences: first states action and method, second covers usage pattern and key parameter hint. 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?
Missing output schema description and prerequisite details (e.g., contract must exist). For a 32-parameter update tool, the description is moderately complete but lacks return value 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?
Adds value beyond schema by explaining status mapping (1=In Effect, 0=Inactive) and the optional update pattern. With 100% schema coverage, this extra context justifies a higher 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 'Update an existing Contract in Autotask (PATCH)', which is a specific verb+resource combination. It distinguishes itself from sibling tools like autotask_create_contract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance to pass only changed fields and that everything except id is optional. Also explains status values. However, it does not explicitly mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autotask_update_contract_serviceA
Update an existing ContractService line on a Contract. Pass only fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ContractService record ID to update | |
| unitCost | No | Unit cost for the service line | |
| serviceID | No | Service catalog ID | |
| unitPrice | No | Unit price for the service line | |
| contractID | Yes | Parent Contract ID | |
| quoteItemID | No | Originating quote item ID | |
| adjustedPrice | No | Adjusted price | |
| invoiceDescription | No | Override invoice description for this line | |
| internalCurrencyUnitPrice | No | Unit price in internal currency |
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 adequately states it mutates data by updating, but lacks details on side effects, authorization, or error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no wasted words, front-loading the core action and a key usage instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters and no output schema, the description is minimal. It explains purpose and partial update behavior but omits return value 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. The description adds no extra parameter meaning beyond the schema's 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 'Update an existing ContractService line on a Contract' with a specific verb and resource. It distinguishes itself from sibling tools like autotask_create_contract_service by specifying 'update'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for partial updates via 'Pass only fields you want to change,' but does not explicitly state when to use this tool over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
|---|---|---|---|
| status | No | Project status (1=New, 2=In Progress, 5=Complete). Set to 5 to mark the project complete. | |
| projectId | Yes | The ID of the project to update | |
| description | No | Project description | |
| endDateTime | No | Project end date/time (ISO 8601) | |
| projectName | No | Project name | |
| departmentID | No | Department ID owning the project | |
| estimatedTime | No | Estimated time for the project, in hours | |
| startDateTime | No | Project start date/time (ISO 8601) | |
| userDefinedFields | No | User-defined field values to set on the project (Autotask REST-native shape) | |
| assignedResourceID | No | Primary assigned resource (project manager) ID. Note: Autotask may also require assignedResourceRoleID to be set alongside this field. | |
| projectLeadResourceID | No | Project lead resource ID | |
| assignedResourceRoleID | No | Role ID for the assigned resource. Required by Autotask when assignedResourceID is provided. |
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 |
|---|---|---|---|
| quantity | No | Updated quantity | |
| unitPrice | No | Updated unit price | |
| isOptional | No | Updated optional status | |
| quoteItemId | Yes | The quote item ID to update | |
| sortOrderID | No | Updated sort order | |
| lineDiscount | No | Updated line discount | |
| unitDiscount | No | Updated per-unit discount | |
| percentageDiscount | No | Updated percentage discount |
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 |
|---|---|---|---|
| status | No | Updated status picklist ID | |
| complete | No | Set to true to mark the service call as complete/closed | |
| description | No | Updated description | |
| endDateTime | No | Updated end date/time (ISO 8601 format) | |
| serviceCallId | Yes | The service call ID to update | |
| startDateTime | No | Updated start date/time (ISO 8601 format) |
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_ticketA
Update ticket record. Only provided fields are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| 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) | |
| ticketId | Yes | The ID of the ticket to update | |
| contactID | No | Contact ID for the ticket | |
| 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. | |
| description | No | ||
| dueDateTime | No | Due date and time in ISO 8601 format (e.g. 2026-03-15T17:00:00Z) | |
| 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. | |
| 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only adds the partial update behavior ('Only provided fields are changed'). It does not disclose authentication requirements, error handling, field interdependencies (e.g., assignedResourceID requires assignedResourceRoleID, though schema mentions this), or side effects. Missing critical behavioral context for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, front-loaded with action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 11 parameters and no output schema. The description is minimal but the schema provides detailed help for most parameters. However, it does not mention the need to first resolve valid IDs (e.g., status, priority) using other tools, though the schema references those tools. Adequate but could be slightly more comprehensive for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-level information. The input schema covers 82% of parameters with descriptions (e.g., status, priority have cross-tool references). Since schema coverage is high, baseline is 3. The description does not enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update ticket record', specifying the verb (update) and resource (ticket record). It distinguishes from sibling tools like autotask_create_ticket (create) and autotask_search_tickets (search). The additional note 'Only provided fields are changed' clarifies partial update behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating existing tickets. It does not explicitly state when not to use or provide alternatives, but the context of sibling tools and the 'update' verb make it clear. The note about only changing provided fields serves as a usage guideline for partial updates.
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 |
|---|---|---|---|
| name | No | Updated charge name | |
| status | No | Updated status | |
| chargeId | Yes | The charge ID to update | |
| unitCost | No | Updated unit cost | |
| unitPrice | No | Updated unit price | |
| description | No | Updated description | |
| unitQuantity | No | Updated quantity | |
| billableToAccount | No | Updated billable status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. Clearly states it's an update operation and that only provided fields are changed, which is important partial update behavior. Missing info on permissions or reversibility.
Agents need to know what a tool does to the 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 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?
No output schema, no annotations, and only a brief description. Lacks details on return values, error handling, or operational context. For a tool with 8 optional parameters, more behavioral 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?
Schema coverage is 100% with descriptions for all 8 parameters. Description adds no extra parameter-level meaning beyond reinforcing partial update. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('existing ticket charge'), distinguishing it from create/delete siblings. It also specifies partial update behavior ('Only fields provided will be changed').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs alternatives. Implies 'existing' but does not mention that for new charges one should use autotask_create_ticket_charge. Lacks 'when not to use' or prerequisite details.
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 |
|---|---|---|---|
| itemId | Yes | The checklist item ID to update | |
| itemName | No | New text for the checklist item | |
| position | No | New ordering position for the item | |
| ticketId | Yes | The parent ticket ID | |
| isCompleted | No | Mark the item complete (true) or incomplete (false) |
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.
TDQS
Each tool targets a distinct resource and action: service calls, billing items (by ID or search), ticket attachments, billing item approval levels, company notes, products, services, and ticket charges. No two tools have overlapping purposes, reducing confusion for the agent.
All tools follow the pattern `autotask_<verb>_<noun>` with consistent snake_case. Verbs include create, get, search, and update, each used appropriately. The pattern is predictable across the entire set.
With 9 tools, the server is well-scoped for an Autotask integration covering service calls, billing, attachments, and searches. It fits comfortably within the ideal 3-15 range, each tool earning its place.
The tool surface covers service calls, billing items, and searches for products, services, and notes, but lacks ticket CRUD (e.g., create/update/delete tickets), update service calls, or billing item management beyond search and update of ticket charges. Notable gaps limit autonomous workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoโฆ
The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server enabling AI agents to access and manipulate ServiceNow data through natural language interactions, allowing users to search for records, update them, and manage scripts.47MIT
- FlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that provides a comprehensive interface for interacting with the ConnectWise Manage API, simplifying API discovery, execution, and management for both developers and AI assistants.2018
- AlicenseBqualityDmaintenanceA Model Context Protocol server providing AI assistants with comprehensive project, task, and subtask management capabilities with project-specific storage.293888MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants and development tools to interact with ServiceNow instances, providing comprehensive API coverage for incident management, change management, CMDB, and other ServiceNow modules.3MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/WYRE-AI/autotask-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server