Skip to main content
Glama
WYRE-AI

Autotask MCP Server

by WYRE-AI

Autotask MCP Server

Build Status codecov License Node.js

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

Deploy to DO

Deploy to Cloudflare Workers

Note โ€” no GitHub Packages token required. Unlike most WYRE MCP servers, autotask-mcp does not depend on a private @wyre-ai/* package on GitHub Packages. Its only WYRE dependency is the autotask-node SDK, declared as a git dependency on the public WYRE-AI/autotask-node repo, which npm install resolves anonymously. The DigitalOcean one-click deploy therefore works without any NODE_AUTH_TOKEN/GITHUB_TOKEN build variable.

Related MCP server: ConnectWise API Gateway MCP Server

Quick Start

Claude Desktop โ€” download, open, done:

  1. Download autotask-mcp.mcpb from the latest release

  2. Open the file (double-click or drag into Claude Desktop)

  3. 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-mcp

See 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_details renders as an interactive card in MCP Apps hosts (Claude Desktop/web) with an in-card "Add note" round-trip; neutral theme by default, brandable via MCP_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.

  1. Download autotask-mcp.mcpb from the latest release

  2. Open the file (double-click or drag into Claude Desktop)

  3. 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-mcp

Option 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/health

Clients 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:latest

The gateway injects credentials via headers:

  • X-API-Key: Autotask username

  • X-API-Secret: Autotask secret

  • X-Integration-Code: Autotask integration code

  • X-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 build

Then 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=production

Gateway 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=http

Expected Headers:

Header

Description

X-API-Key

Autotask API username (email)

X-API-Secret

Autotask API secret key

X-Integration-Code

Autotask integration code

X-API-URL

(Optional) Custom Autotask API URL

X-Impersonation-Resource-Id

(Optional) Autotask resource ID to act on behalf of. Forwarded to Autotask as its ImpersonationResourceId header, so actions are attributed to that resource instead of the API user, and recorded in the entity's read-only impersonatorCreatorResourceID field. Must be a positive integer; anything else is ignored with a warning. The impersonated resource must itself have permission for the action, and the API user's security level must permit impersonation.

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

  1. Create API User: In Autotask, create a dedicated API user with appropriate permissions

  2. Generate Secret: Generate an API secret for the user

  3. Integration Code: Obtain your integration code from Autotask

  4. 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.js

MCP Client Configuration

See Installation for all setup methods.

API Reference

Resources

Resources provide read-only access to Autotask data:

  • autotask://companies - List all companies

  • autotask://companies/{id} - Get specific company

  • autotask://contacts - List all contacts

  • autotask://contacts/{id} - Get specific contact

  • autotask://tickets - List all tickets

  • autotask://tickets/{id} - Get specific ticket

  • autotask://time-entries - List time entries

Tools

The server provides 101 tools for interacting with Autotask:

Company Operations

  • autotask_search_companies - Search companies with filters

  • autotask_create_company - Create new company

  • autotask_update_company - Update existing company

Contact Operations

  • autotask_search_contacts - Search contacts with filters

  • autotask_create_contact - Create new contact

Ticket Operations

  • autotask_search_tickets - Search tickets with filters

  • autotask_get_ticket_details - Get full ticket details by ID

  • autotask_create_ticket - Create new ticket

Time Entry Operations

  • autotask_create_time_entry - Log time entry

  • autotask_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 items

  • autotask_get_billing_item - Get specific billing item by ID

  • autotask_search_billing_item_approval_levels - Search multi-level approval records for time entries

Project Operations

  • autotask_search_projects - Search projects with filters

  • autotask_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_note

  • autotask_get_project_note / autotask_search_project_notes / autotask_create_project_note

  • autotask_get_company_note / autotask_search_company_notes / autotask_create_company_note

Attachment Operations

  • autotask_get_ticket_attachment - Get ticket attachment

  • autotask_search_ticket_attachments - Search ticket attachments

Financial Operations

  • autotask_get_expense_report / autotask_search_expense_reports / autotask_create_expense_report

  • autotask_get_quote / autotask_search_quotes / autotask_create_quote

  • autotask_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 ID

  • autotask_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 many

  • autotask_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 tasks

  • autotask_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:mapping

For 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.js

The HTTP transport exposes:

  • POST /mcp โ€” MCP Streamable HTTP endpoint

  • GET /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/health

For 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 -d

Production 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:latest

Development Mode

# Start development environment with hot reload
docker compose --profile dev up autotask-mcp-dev

Development

Setup

git clone https://github.com/WYRE-AI/autotask-mcp.git
cd autotask-mcp
npm install

Available 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 issues

Project 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 configuration

Testing

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.ts

Test 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_USERNAME

โœ…

-

Autotask API username (email)

AUTOTASK_SECRET

โœ…

-

Autotask API secret key

AUTOTASK_INTEGRATION_CODE

โœ…

-

Autotask integration code

AUTOTASK_API_URL

โŒ

Auto-detected

Autotask API endpoint URL

MCP_SERVER_NAME

โŒ

autotask-mcp

MCP server name

MCP_TRANSPORT

โŒ

stdio

Transport type (stdio or http)

MCP_HTTP_PORT

โŒ

8080

HTTP transport port

MCP_HTTP_HOST

โŒ

0.0.0.0

HTTP transport bind address

LOG_LEVEL

โŒ

info

Logging level

LOG_FORMAT

โŒ

simple

Log output format

AUTOTASK_ENHANCE_CONCURRENCY

โŒ

3

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_ENV

โŒ

development

Node.js environment

Logging Levels

  • error: Only error messages

  • warn: Warnings and errors

  • info: General information, warnings, and errors

  • debug: Detailed debugging information

Log Formats

  • simple: Human-readable console output

  • json: 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 429 responses

  • ~20,000 req/hr (hard) โ€” sustained HTTP 429 until 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 a retry_after_seconds field parsed from Autotask's Retry-After header. 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:

  1. Autotask Admin โ†’ Resources/Users (HR) โ†’ Resources

  2. Edit the dedicated API user โ†’ Workflow Rules โ†’ API Tracking Identifier

  3. 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_info to 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 credentials

Solution: Ensure all required environment variables are set correctly.

Connection Timeouts

Error: Connection to Autotask API failed

Solutions:

  • Check network connectivity

  • Verify API endpoint URL

  • Confirm API user has proper permissions

Permission Denied

Error: User does not have permission to access this resource

Solution: Review Autotask API user permissions and security level settings.

Debug Mode

Enable debug logging for detailed troubleshooting:

LOG_LEVEL=debug npm start

Health 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 start

Autotask 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:

  1. Admin > Resources (Users) > Resources/Users โ†’ Add Resource

  2. Set Security Level to API User

  3. Note the username, secret, and integration code

  4. Set AUTOTASK_USERNAME, AUTOTASK_SECRET, and AUTOTASK_INTEGRATION_CODE per 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:

  1. Check configuration file syntax (valid JSON)

  2. Verify file path in the configuration

  3. Ensure environment variables are set correctly

  4. 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:

  1. Check network connectivity to Autotask API

  2. Enable debug logging (LOG_LEVEL=debug) to identify bottlenecks

  3. The 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

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. 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

@asachs01

Maintainer

@Baphomet480

CLI bin fix

Support

Acknowledgments


Built by WYRE Technology โ€” part of the MSP Claude Plugins ecosystem

Available Tools

98 tools
autotask_create_companyC

Create new company record

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
phoneNo
stateNo
address1No
isActiveNo
postalCodeNo
companyNameYes
companyTypeYes
ownerResourceIDNo

TDQS

C2.3/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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

Schema description coverage is 0%, and the description 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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNote title
companyIdYesThe company ID to add the note to
actionTypeNoAction type for the note
descriptionYesNote content

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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

The tool is simple with 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneNo
titleNo
lastNameYes
companyIDYesCompany ID for the contact
firstNameYes
emailAddressNo

TDQS

C2.2/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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

Given the tool has 6 parameters (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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoContract status (1=In Effect, 0=Inactive)
endDateYesContract end date (ISO YYYY-MM-DD)
setupFeeNoSetup fee amount
companyIDYesCompany ID the contract is associated with
contactIDNoPrimary contact ID for the contract
startDateYesContract start date (ISO YYYY-MM-DD)
descriptionNoContract description / notes
contractNameYesContract name
contractTypeYesContract type picklist ID
estimatedCostNoEstimated cost
opportunityIDNoOriginating opportunity ID
contractNumberNoExternal-facing contract number
estimatedHoursNoEstimated hours
billToCompanyIDNoBill-to company ID
contractCategoryYesContract category picklist ID
estimatedRevenueNoEstimated revenue
billingPreferenceNoBilling preference picklist ID
isDefaultContractNoWhether this is the default contract for the company
renewedContractIDNoID of the contract this renewed
contractPeriodTypeNoPeriod type picklist ID
overageBillingRateNoOverage billing rate
exclusionContractIDNoExclusion contract ID
purchaseOrderNumberNoCustomer purchase order number
setupFeeBillingCodeIDNoBilling code ID for the setup fee
billToCompanyContactIDNoBill-to contact ID
contractExclusionSetIDNoContract exclusion set ID
serviceLevelAgreementIDNoSLA ID
internalCurrencySetupFeeNoSetup fee in internal currency
organizationalLevelAssociationIDNoOrg level association ID
internalCurrencyOverageBillingRateNoOverage rate in internal currency
timeReportingRequiresStartAndStopTimesNoWhether time entries require start/stop times

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitCostNoUnit cost for the service line
serviceIDYesService catalog ID being attached to the contract
unitPriceYesUnit price for the service line
contractIDYesParent Contract ID
quoteItemIDNoOriginating quote item ID, if any
adjustedPriceNoAdjusted price
invoiceDescriptionNoOverride invoice description for this line
internalCurrencyUnitPriceNoUnit price in internal currency

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema coverage is 100% so baseline is 3; 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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesExpense amount
companyIdNoAssociated company ID (0 for internal)
descriptionYesLine item description
expenseDateYesDate of expense (YYYY-MM-DD format)
haveReceiptNoWhether a receipt is attached
paymentTypeNoPayment type picklist ID
isReimbursableNoWhether this expense is reimbursable
expenseCategoryYesExpense category picklist ID
expenseReportIdYesThe expense report ID to add the item to
isBillableToCompanyNoWhether billable to company

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesExpense report name
descriptionNoExpense report description
submitterIdYesThe resource ID of the submitter
weekEndingDateYesWeek ending date (YYYY-MM-DD format)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, 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

ParametersJSON Schema
NameRequiredDescriptionDefault
costNoCost amount (default: 0)
stageYesStage picklist value ID (use autotask_get_field_info to find valid values)
titleYesOpportunity name/title
amountNoRevenue amount (default: 0, set useQuoteTotals=true to calculate from quotes)
statusYesStatus: 0=Not Ready To Buy, 1=Active, 2=Lost, 3=Closed, 4=Implemented
companyIdYesCompany ID for the opportunity
contactIdNoContact ID for the opportunity
startDateYesStart date (YYYY-MM-DD)
descriptionNoOpportunity description
probabilityNoWin probability percentage (0-100, default: 50)
useQuoteTotalsNoWhether to calculate totals from linked quotes (default: true)
ownerResourceIdYesOwner resource ID (the sales rep or account manager)
totalAmountMonthsNoNumber of months to calculate totals for (e.g., 12 for annual)
projectedCloseDateYesProjected close date (YYYY-MM-DD)
opportunityCategoryIDNoOpportunity category picklist value ID

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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

Given the tool's complexity (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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesPhase title
dueDateNoPhase due date (ISO format)
projectIDYesProject ID for the phase
startDateNoPhase start date (ISO format)
descriptionNoPhase description
estimatedHoursNoEstimated hours for the phase

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description 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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesProject status (1=New, 2=In Progress, 5=Complete)
endDateNoProject end date (YYYY-MM-DD)
companyIDYesCompany ID for the project
startDateNoProject start date (YYYY-MM-DD)
descriptionNoProject description
projectNameYesProject name
projectTypeYesProject type (2=Proposal, 3=Template, 4=Internal, 5=Client, 8=Baseline). Required.
estimatedHoursNoEstimated hours for the project
projectLeadResourceIDNoProject manager resource ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool 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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNote title
publishNoPublish visibility (1=All Autotask Users, 2=Internal Project Team, 3=Project Team). Defaults to 1.
noteTypeNoNote type (1=General, 2=Appointment, 3=Task, 4=Ticket, 5=Project, 6=Opportunity)
projectIdYesThe project ID to add the note to
descriptionYesNote content
isAnnouncementNoWhether this note is an announcement. Defaults to false.

TDQS

C2.6/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness2/5

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

Given the tool has 6 parameters, 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as 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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoQuote name
companyIdYesCompany ID for the quote
contactIdNoContact ID for the quote
descriptionNoQuote description
effectiveDateNoEffective date (YYYY-MM-DD format)
opportunityIdNoAssociated opportunity ID
expirationDateNoExpiration date (YYYY-MM-DD format)

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoItem name (auto-populated for service/product types)
quoteIdYesThe quote ID to add this item to
quantityYesQuantity of the item
unitCostNoUnit cost for the item
productIDNoProduct ID to link (mutually exclusive with serviceID/serviceBundleID)
serviceIDNoService ID to link (mutually exclusive with productID/serviceBundleID)
unitPriceNoUnit price for the item
isOptionalNoWhether this is an optional line item (default: false)
descriptionNoItem description
sortOrderIDNoSort order for display
lineDiscountNoLine-level discount amount (default: 0)
unitDiscountNoPer-unit discount amount (default: 0)
quoteItemTypeNoQuote item type (auto-determined if omitted): 1=Product, 2=Cost, 3=Labor, 4=Expense, 6=Shipping, 11=Service, 12=ServiceBundle
serviceBundleIDNoService Bundle ID to link (mutually exclusive with serviceID/productID)
percentageDiscountNoPercentage discount (default: 0)

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoStatus picklist ID (use autotask_get_field_info with entityType "ServiceCalls" to find valid values)
completeNoWhether this service call is complete (default: false)
companyIDNoCompany ID this service call is for
descriptionYesDescription of the service call
endDateTimeYesScheduled end date/time (ISO 8601 format)
startDateTimeYesScheduled start date/time (ISO 8601 format, e.g. 2026-03-22T09:00:00Z)
companyLocationIDNoCompany location ID (optional)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketIDYesThe ticket ID to link to the service call
serviceCallIDYesThe service call ID to link the ticket to

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleIDNoThe role ID for the resource on this service call (optional)
resourceIDYesThe resource (technician) ID to assign
serviceCallTicketIDYesThe service call ticket ID to assign the resource to

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, 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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTask title
statusYesTask status (1=New, 2=In Progress, 5=Complete)
taskTypeNoTask type (1=FixedWork, 2=FixedDuration). Defaults to 1.
projectIDYesProject ID for the task
descriptionNoTask description
endDateTimeNoTask end date/time (ISO format)
startDateTimeNoTask start date/time (ISO format)
estimatedHoursNoEstimated hours for the task
assignedResourceIDNoAssigned resource ID

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
sourceNoTicket source ID (picklist, e.g. Phone, Email, Portal). Use autotask_get_field_info (entity "Tickets", field "source") to discover valid values.
statusNo
queueIDNoQueue ID to route the ticket to. Use autotask_list_queues to discover valid IDs.
priorityNo
companyIDYesCompany ID for the ticket
contactIDNoContact ID for the ticket
issueTypeNoFirst-level issue type ID (picklist). Required context for subIssueType. Use autotask_get_field_info (entity "Tickets", field "issueType") to discover valid values.
projectIDNoProject ID to associate the ticket with. Links the ticket to an existing project.
resolutionNoTicket-level resolution text. This is the Resolution field on the ticket itself, NOT a ticket note.
ticketTypeNoTicket type ID (picklist, e.g. Service Request, Incident, Problem, Change).
descriptionYes
subIssueTypeNoSub issue type ID (picklist). Must be valid for the selected issueType. Use autotask_get_field_info (entity "Tickets", field "subIssueType") to discover valid values.
billingCodeIDNoWork type / billing code ID used for billing this ticket.
estimatedHoursNoEstimated hours of work for the ticket.
ticketCategoryNoTicket category ID (picklist). Use autotask_get_field_info with entity "Tickets" and field "ticketCategory" to discover valid values.
userDefinedFieldsNoUser-defined (custom) fields for the ticket, as an array of { name, value } objects matching the Autotask REST API shape.
assignedResourceIDNoAssigned resource ID. If set, assignedResourceRoleID is also required by Autotask.
assignedResourceRoleIDNoRole ID for the assigned resource. Required by Autotask when assignedResourceID is set.
serviceLevelAgreementIDNoService Level Agreement (SLA) ID to apply to the ticket.
ticketAdditionalContactsNoAdditional contact IDs to associate with the ticket (beyond the primary contactID).

TDQS

C2.3/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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..." }

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesBase64-encoded file content. Maximum decoded size: 3 MB (Autotask ticket attachment limit). Example: read a file and pass its base64 representation here.
titleYesDisplay title for the attachment (typically the filename, e.g. "screenshot.png")
publishNoVisibility: 1 = All Autotask Users (default), 2 = Internal Users Only
fullPathNoOriginal filename including any path. Defaults to `title` if not provided.
ticketIdYesThe ticket ID to attach the file to
contentTypeNoMIME type of the file (e.g. "image/png", "application/pdf"). Optional.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool has 6 parameters, 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

The description explains when to use 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCharge name/title
statusNoCharge status picklist ID
ticketIDYesTicket ID to add the charge to
unitCostNoCost per unit
productIDNoAssociated product ID (optional)
unitPriceNoPrice per unit
chargeTypeYesCharge type picklist ID (use autotask_get_field_info with entityType "TicketCharges" to find valid values)
descriptionNoCharge description
unitQuantityNoQuantity of units
billingCodeIDNoBilling code ID for categorization
datePurchasedNoDate the charge was incurred (YYYY-MM-DD format)
billableToAccountNoWhether this charge is billable to the client (default: true)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemNameYesThe checklist item text
positionNoOptional ordering position for the item
ticketIdYesThe ticket ID to add the checklist item to
isCompletedNoWhether the item starts in the completed state (default: false)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no prerequisites, 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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNote title
publishYesPublish/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.
noteTypeYesNote 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.
ticketIdYesThe ticket ID to add the note to
descriptionYesNote content

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIDNoTask ID for the time entry (for project work, omit for Regular Time)
categoryNoCategory 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).
ticketIDNoTicket ID for the time entry (omit for Regular Time)
projectIDNoProject ID for the time entry (omit for Regular Time)
dateWorkedYesDate worked (YYYY-MM-DD format)
resourceIDNoResource ID (user) logging the time. Can be omitted if resourceName is provided.
endDateTimeNoEnd date/time (ISO format)
hoursWorkedYesNumber of hours worked
resourceNameNoName of the resource/user (e.g., "Will Spence"). Will be resolved to a resourceID automatically. Use this instead of resourceID for convenience.
summaryNotesYesSummary notes for the time entry
internalNotesNoInternal notes for the time entry
startDateTimeNoStart date/time (ISO format)

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_itemA
Destructive

โš  DESTRUCTIVE โ€” IRREVERSIBLE. Permanently deletes a quote item (line item) from a quote. This action cannot be undone. Confirm with the user before invoking.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesThe parent quote ID
quoteItemIdYesThe quote item ID to delete

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_callA
Destructive

โš  DESTRUCTIVE โ€” IRREVERSIBLE. Permanently deletes a service call and all associated data. This action cannot be undone. Confirm with the user before invoking.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceCallIdYesThe service call ID to delete

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_ticketA
Destructive

โš  DESTRUCTIVE โ€” IRREVERSIBLE. Permanently removes a ticket association from a service call. This action cannot be undone. Confirm with the user before invoking.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceCallTicketIdYesThe service call ticket record ID to delete

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_resourceA
Destructive

โš  DESTRUCTIVE โ€” IRREVERSIBLE. Permanently removes a resource assignment from a service call ticket. This action cannot be undone. Confirm with the user before invoking.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceCallTicketResourceIdYesThe service call ticket resource record ID to delete

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_chargeA
Destructive

โš  DESTRUCTIVE โ€” IRREVERSIBLE. Permanently deletes a ticket charge record and all associated billing data. This action cannot be undone. Confirm with the user before invoking.

ParametersJSON Schema
NameRequiredDescriptionDefault
chargeIdYesThe charge ID to delete
ticketIdYesThe parent ticket ID

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_itemA
Destructive

โš  DESTRUCTIVE โ€” IRREVERSIBLE. Permanently deletes a checklist item from a ticket. This action cannot be undone. Confirm with the user before invoking.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesThe checklist item ID to delete
ticketIdYesThe parent ticket ID

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameYesThe tool name to execute (e.g., "autotask_search_tickets")
argumentsNoArguments to pass to the tool

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. 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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
billingItemIdYesThe billing item ID to retrieve

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool 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

ParametersJSON Schema
NameRequiredDescriptionDefault
noteIdYesThe note ID to retrieve
companyIdYesThe company ID

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyIdYesThe company ID whose site configuration records should be returned

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYesThe expense report ID to retrieve

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies usage when a 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldNameNoOptional: filter to a specific field name
entityTypeYesThe 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

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesThe invoice ID to fetch

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
opportunityIdYesThe opportunity ID to retrieve

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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

The tool is simple with one parameter and 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
productIdYesThe product ID to retrieve

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
noteIdYesThe note ID to retrieve
projectIdYesThe project ID

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description does not provide explicit 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

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesThe quote ID to retrieve

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema description coverage is 100% for the single 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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (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

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteItemIdYesThe quote item ID to retrieve

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceIdYesThe service ID to retrieve

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

The description implies usage when a 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

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceBundleIdYesThe service bundle ID to retrieve

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceCallIdYesThe service call ID to retrieve

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketIdYesThe ticket ID the attachment belongs to
includeDataNoSet true to fetch the base64-encoded file bytes. Default false returns metadata only.
attachmentIdYesThe attachment ID to retrieve
maxInlineBase64BytesNoCap 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

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
chargeIdYesThe ticket charge ID to retrieve

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketIDYesTicket ID to retrieve
fullDetailsNoWhether to return full ticket details (default: false for optimized data)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
historyIdYesThe ticket history entry ID to retrieve

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
noteIdYesThe note ID to retrieve
ticketIdYesThe ticket ID

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's simplicity (no parameters, 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYesCategory name from autotask_list_categories (e.g., "tickets", "financial", "companies")

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the verb 'List', 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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoResults per page (default: 25, max: 100)
projectIDYesProject ID to list phases for

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool lists 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool lists 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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the verb 'List' and the resource '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.

Usage Guidelines4/5

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

Provides explicit guidance on when to 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoOptional JSON body for POST/PATCH requests
pathYesPath under the Autotask REST v1.0 base (e.g. "/Companies/175" or "/Companies/query")
methodYesHTTP method
queryParamsNoOptional flat key-value query parameters (e.g. { includeFields: "id,name" })

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentYesNatural 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

A4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the tool's function 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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
pageSizeNoMax 500
timeEntryIdNoFilter by time entry ID
approvalLevelNoFilter by approval level (1, 2, 3, etc.)
approvedAfterNoFilter approvals on or after this date (ISO format)
approvedBeforeNoFilter approvals on or before this date (ISO format)
approvalResourceIdNoFilter by approver resource ID

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

No explicit guidance on when to use this tool 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
dateToNoFilter billing items with itemDate on or before this date (ISO format)
dateFromNoFilter billing items with itemDate on or after this date (ISO format, e.g. 2026-01-01)
pageSizeNoMax 500
ticketIdNoFilter by ticket ID
companyIdNoFilter by company ID
invoiceIdNoFilter by invoice ID
projectIdNoFilter by project ID
contractIdNoFilter by contract ID
isInvoicedNoIf 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".
postedAfterNoFilter items posted on or after this date (ISO format, e.g. 2026-01-01)
postedBeforeNoFilter items posted on or before this date (ISO format)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
isActiveNo
pageSizeNoMax 200
searchTermNo

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

No explicit guidance on when to use this 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoNumber of results to return (default: 25, max: 100)
companyIdYesThe company ID to search notes for

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
isActiveNo
pageSizeNoNumber of results to return (default: 25, max: 500)
companyIDNoFilter by company ID
productIDNoFilter by product ID
searchTermNoSearch term for configuration item name
configurationItemTypeNoFilter by configuration item type (numeric picklist value)
configurationItemCategoryIDNoFilter by configuration item category ID

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
isActiveNoFilter by active status (1=active, 0=inactive)
pageSizeNoMax 200
companyIDNoFilter by company ID
searchTermNoSearch term for contact name or email

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by contract status (1=In Effect, 3=Terminated)
pageSizeNoNumber of results to return (default: 25, max: 500)
companyIDNoFilter by company ID
searchTermNoSearch term for contract name

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds '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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as 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

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status (1=New, 2=Submitted, 3=Approved, 4=Paid, 5=Rejected, 6=InReview)
pageSizeNoNumber of results to return (default: 25, max: 100)
submitterIdNoFilter by submitter resource ID

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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

Given the tool has 3 parameters, 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
isVoidedNoFilter by voided status
pageSizeNoNumber of results to return (default: 25, max: 500)
companyIDNoFilter by company ID
invoiceNumberNoFilter by invoice number

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (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

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status
pageSizeNoNumber of results to return (default: 25, max: 100)
companyIdNoFilter by company ID
searchTermNoSearch term for opportunity title

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool 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

ParametersJSON Schema
NameRequiredDescriptionDefault
isActiveNo
pageSizeNoNumber of results to return (default: 25, max: 100)
searchTermNoSearch term for product name

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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

Given the tool has 3 parameters, 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoNumber of results to return (default: 25, max: 100)
projectIdYesThe project ID to search notes for

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
statusNoFilter by project status
pageSizeNoResults per page (default: 25, max: 100)
companyIDNoFilter by company ID
searchTermNoSearch term for project name
projectLeadResourceIDNoFilter by project lead resource ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdNoFilter by quote ID (recommended)
pageSizeNoNumber of results to return (default: 50, max: 100)
searchTermNoSearch term for quote item name

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoNumber of results to return (default: 25, max: 100)
companyIdNoFilter by company ID
contactIdNoFilter by contact ID
searchTermNoSearch term for quote name or description
opportunityIdNoFilter by opportunity ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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

The description is a single sentence with no wasted words. It is 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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
isActiveNo
pageSizeNoMax 500
searchTermNoSearch term for resource name or email
resourceTypeNoFilter by resource type (1=Employee, 2=Contractor, 3=Temporary)

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
isActiveNo
pageSizeNoNumber of results to return (default: 25, max: 100)
searchTermNoSearch term for service bundle name

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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

Given the tool has 3 parameters, 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status picklist ID (use autotask_get_field_info with entityType "ServiceCalls" to find valid values)
pageSizeNoNumber of results to return (default: 25, max: 100)
companyIdNoFilter by company ID
startAfterNoFilter service calls starting on or after this date/time (ISO 8601 format)
startBeforeNoFilter service calls starting on or before this date/time (ISO 8601 format)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoNumber of results to return (default: 25)
resourceIdNoFilter by resource (technician) ID
serviceCallTicketIdNoFilter by service call ticket ID

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoNumber of results to return (default: 25)
ticketIdNoFilter by ticket ID
serviceCallIdNoFilter by service call ID

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool's purpose: 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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
isActiveNo
pageSizeNoNumber of results to return (default: 25, max: 100)
searchTermNoSearch term for service name

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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

Given the tool has 3 parameters 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
statusNoFilter by task status (1=New, 2=In Progress, 5=Complete)
pageSizeNoResults per page (default: 25, max: 100)
projectIDNoFilter by project ID
searchTermNoSearch term for task title
assignedResourceIDNoFilter by assigned resource ID

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoNumber of results to return (default: 10, max: 50)
ticketIdYesThe ticket ID to search attachments for

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoNumber of results to return (default: 25, max: 100)
ticketIdNoFilter by ticket ID (recommended)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketIdYesThe ticket ID whose checklist items should be listed

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoNumber of history entries to return (default: 50, max: 500)
ticketIdYesThe ticket ID to get history for (required โ€” Autotask does not support unscoped history queries)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's simplicity (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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the tool retrieves 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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeNoNumber of results to return (default: 25, max: 100)
ticketIdYesThe ticket ID to search notes for

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
statusNoFilter by ticket status ID (omit for all open tickets)
queueIDNoFilter by queue ID. Use autotask_list_queues to discover valid IDs.
pageSizeNoMax 500
priorityNoFilter by ticket priority ID. Use autotask_list_ticket_priorities to discover valid IDs.
companyIDNoFilter by company ID
contactIDNoFilter by primary contact ID โ€” returns only tickets where contactID matches
searchTermNoSearch by ticket number prefix
unassignedNoSet to true to find unassigned tickets
createdAfterNoFilter tickets created on or after this date (ISO format, e.g. 2026-01-01)
createdBeforeNoFilter tickets created on or before this date (ISO format)
lastActivityAfterNoFilter tickets with activity on or after this date (ISO format)
assignedResourceIDNoFilter by assigned resource ID

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
taskIdNoFilter by task ID
billableNoFilter by billable status (true = billable only, false = non-billable only)
pageSizeNoMax 500
ticketIdNoFilter by ticket ID
projectIdNoFilter by project ID
resourceIdNoFilter by resource (user) ID
approvalStatusNoFilter by approval status: "unapproved" = not yet posted (billingApprovalDateTime is null), "approved" = already posted, "all" = no filter (default)
dateWorkedAfterNoFilter entries worked on or after this date (ISO format, e.g. 2026-01-01)
dateWorkedBeforeNoFilter entries worked on or before this date (ISO format)

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters4/5

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

The input schema has no parameters and schema description coverage is 100%, 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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
cityNo
phoneNo
stateNo
taxIDNoTax registration / FEIN / VAT identifier string
address1NoRegular address (distinct from billingAddress1)
address2No
isActiveNo
countryIDNoe.g. 237 for United States
billToCityNoBill-to city
postalCodeNo
webAddressNoWebsite URL (field name is webAddress)
billToStateNoBill-to state/province
companyNameNo
companyTypeNoCompany type picklist ID (e.g. Customer, Prospect, Vendor)
isTaxExemptNoWhether the company is tax-exempt. Note: Autotask field name is `isTaxExempt` โ€” not `taxExempt`.
taxRegionIDNoTax region ID (capital ID suffix per Autotask convention)
billToZipCodeNoBill-to ZIP/postal code
invoiceMethodNoInvoice delivery method picklist ID (e.g. 2=Email)
classificationNoCompany classification picklist ID
billToAttentionNoBill-to attention name
billToCountryIDNoBill-to country ID
billingAddress1NoFor invoices (separate from address1)
billingAddress2NoBilling address line 2
ownerResourceIDNoResource ID of the account owner
quoteTemplateIDNoDefault quote template ID for this company
invoiceTemplateIDNoInvoice template ID applied to this company. Acts as the payment-terms selector (e.g. 103=Due on Receipt, 104=NET 30).
billToAddressToUseNo1 = use bill-to fields explicitly
quoteEmailMessageIDNoDefault email-message template ID used when sending quotes
invoiceEmailMessageIDNoDefault email-message template ID used when invoicing this company
billToCompanyLocationIDNoBill-to company location ID
purchaseOrderTemplateIDNoDefault purchase-order template ID for this company

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe company site configuration record ID to update (obtained from autotask_get_company_site_configuration).
updatesYesObject containing the site configuration fields to update. Field names are tenant-specific.

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's simplicity 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.

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContact ID to update
cityNoCity
phoneNoPrimary phone number
stateNoState/province
titleNoJob title
zipCodeNoPostal/ZIP code
isActiveNoWhether the contact is active
lastNameNo
countryIDNoCountry ID (Autotask Countries entity)
firstNameNo
addressLineNoAddress line (primary)
mobilePhoneNoMobile phone number
addressLine1NoAddress line 1 (secondary)
emailAddressNoPrimary email address
primaryContactNoWhether this contact is the primary contact for their company
userDefinedFieldsNoUser-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

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContract ID to update
statusNoContract status (1=In Effect, 0=Inactive)
endDateNoContract end date (ISO YYYY-MM-DD)
setupFeeNoSetup fee amount
companyIDNoCompany ID
contactIDNoPrimary contact ID
startDateNoContract start date (ISO YYYY-MM-DD)
descriptionNoContract description / notes
contractNameNoContract name
contractTypeNoContract type picklist ID
estimatedCostNoEstimated cost
opportunityIDNoOriginating opportunity ID
contractNumberNoExternal-facing contract number
estimatedHoursNoEstimated hours
billToCompanyIDNoBill-to company ID
contractCategoryNoContract category picklist ID
estimatedRevenueNoEstimated revenue
billingPreferenceNoBilling preference picklist ID
isDefaultContractNoWhether this is the default contract for the company
renewedContractIDNoID of the contract this renewed
contractPeriodTypeNoPeriod type picklist ID
overageBillingRateNoOverage billing rate
exclusionContractIDNoExclusion contract ID
purchaseOrderNumberNoCustomer purchase order number
setupFeeBillingCodeIDNoBilling code ID for the setup fee
billToCompanyContactIDNoBill-to contact ID
contractExclusionSetIDNoContract exclusion set ID
serviceLevelAgreementIDNoSLA ID
internalCurrencySetupFeeNoSetup fee in internal currency
organizationalLevelAssociationIDNoOrg level association ID
internalCurrencyOverageBillingRateNoOverage rate in internal currency
timeReportingRequiresStartAndStopTimesNoWhether time entries require start/stop times

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesContractService record ID to update
unitCostNoUnit cost for the service line
serviceIDNoService catalog ID
unitPriceNoUnit price for the service line
contractIDYesParent Contract ID
quoteItemIDNoOriginating quote item ID
adjustedPriceNoAdjusted price
invoiceDescriptionNoOverride invoice description for this line
internalCurrencyUnitPriceNoUnit price in internal currency

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoProject status (1=New, 2=In Progress, 5=Complete). Set to 5 to mark the project complete.
projectIdYesThe ID of the project to update
descriptionNoProject description
endDateTimeNoProject end date/time (ISO 8601)
projectNameNoProject name
departmentIDNoDepartment ID owning the project
estimatedTimeNoEstimated time for the project, in hours
startDateTimeNoProject start date/time (ISO 8601)
userDefinedFieldsNoUser-defined field values to set on the project (Autotask REST-native shape)
assignedResourceIDNoPrimary assigned resource (project manager) ID. Note: Autotask may also require assignedResourceRoleID to be set alongside this field.
projectLeadResourceIDNoProject lead resource ID
assignedResourceRoleIDNoRole ID for the assigned resource. Required by Autotask when assignedResourceID is provided.

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
quantityNoUpdated quantity
unitPriceNoUpdated unit price
isOptionalNoUpdated optional status
quoteItemIdYesThe quote item ID to update
sortOrderIDNoUpdated sort order
lineDiscountNoUpdated line discount
unitDiscountNoUpdated per-unit discount
percentageDiscountNoUpdated percentage discount

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema coverage is 100%, so each parameter has a description. The tool'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.

Purpose5/5

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.

Usage Guidelines3/5

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

No explicit guidance on when to use 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoUpdated status picklist ID
completeNoSet to true to mark the service call as complete/closed
descriptionNoUpdated description
endDateTimeNoUpdated end date/time (ISO 8601 format)
serviceCallIdYesThe service call ID to update
startDateTimeNoUpdated start date/time (ISO 8601 format)

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
statusNoTicket status ID (use autotask_list_ticket_statuses to find valid IDs)
priorityNoTicket priority ID (use autotask_list_ticket_priorities to find valid IDs)
ticketIdYesThe ID of the ticket to update
contactIDNoContact ID for the ticket
issueTypeNoFirst-level issue type ID (picklist). Required context for subIssueType. Use autotask_get_field_info (entity "Tickets", field "issueType") to discover valid values.
descriptionNo
dueDateTimeNoDue date and time in ISO 8601 format (e.g. 2026-03-15T17:00:00Z)
subIssueTypeNoSub issue type ID (picklist). Must be valid for the selected issueType. Use autotask_get_field_info (entity "Tickets", field "subIssueType") to discover valid values.
assignedResourceIDNoAssigned resource ID. If set, assignedResourceRoleID is also required by Autotask.
assignedResourceRoleIDNoRole ID for the assigned resource. Required by Autotask when assignedResourceID is set.

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoUpdated charge name
statusNoUpdated status
chargeIdYesThe charge ID to update
unitCostNoUpdated unit cost
unitPriceNoUpdated unit price
descriptionNoUpdated description
unitQuantityNoUpdated quantity
billableToAccountNoUpdated billable status

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

No explicit guidance on when to use 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesThe checklist item ID to update
itemNameNoNew text for the checklist item
positionNoNew ordering position for the item
ticketIdYesThe parent ticket ID
isCompletedNoMark the item complete (true) or incomplete (false)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the 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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives (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

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness3/5

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

ActivityActive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/WYRE-AI/autotask-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server