Skip to main content
Glama
asachs01

Autotask MCP Server

autotask_delete_service_call_ticket

Destructive

Permanently remove a ticket association from a service call. Use this tool to delete a service call ticket record, but confirm first as action is irreversible.

Instructions

⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a ticket association from a service call. This action cannot be undone. Confirm with the user before invoking.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
serviceCallTicketIdYesThe service call ticket record ID to delete

Implementation Reference

  • Schema definition for 'autotask_delete_service_call_ticket' tool, including its input schema (requires serviceCallTicketId) and destructive annotations.
      name: 'autotask_delete_service_call_ticket',
      description:
        '⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a ticket ' +
        'association from a service call. This action cannot be undone. ' +
        'Confirm with the user before invoking.',
      annotations: {
        title: 'Delete service call ticket association (irreversible)',
        readOnlyHint: false,
        destructiveHint: true,
        idempotentHint: false,
        openWorldHint: true,
      },
      inputSchema: {
        type: 'object',
        properties: {
          serviceCallTicketId: {
            type: 'number',
            description: 'The service call ticket record ID to delete'
          }
        },
        required: ['serviceCallTicketId']
      }
    },
  • Handler in the dispatch table that calls s.deleteServiceCallTicket(a.serviceCallTicketId) when the tool is invoked.
    ['autotask_delete_service_call_ticket', async (a) => {
      await s.deleteServiceCallTicket(a.serviceCallTicketId);
      return { result: a.serviceCallTicketId, message: `Successfully removed ticket from service call` };
    }],
  • Service-level method deleteServiceCallTicket(id) that calls http.delete('ServiceCallTickets', id) to perform the actual API call.
    async deleteServiceCallTicket(id: number): Promise<void> {
      const http = await this.ensureClient();
      try {
        this.logger.debug(`Deleting service call ticket ${id}`);
        await http.delete('ServiceCallTickets', id);
        this.logger.info(`Service call ticket ${id} deleted`);
      } catch (error) {
        this.logger.error(`Failed to delete service call ticket ${id}:`, error);
        throw error;
      }
    }
  • Tool is registered in the 'service_calls' category within TOOL_CATEGORIES.
    service_calls: {
      description: 'Service call dispatching, ticket linking, and resource assignments',
      tools: ['autotask_search_service_calls', 'autotask_get_service_call', 'autotask_create_service_call', 'autotask_update_service_call', 'autotask_delete_service_call', 'autotask_search_service_call_tickets', 'autotask_create_service_call_ticket', 'autotask_delete_service_call_ticket', 'autotask_search_service_call_ticket_resources', 'autotask_create_service_call_ticket_resource', 'autotask_delete_service_call_ticket_resource']
    }
  • Type definition for AutotaskServiceCallTicket entity (id, serviceCallID, ticketID).
    export interface AutotaskServiceCallTicket {
      id?: number;
      serviceCallID?: number;
      ticketID?: number;
      [key: string]: any;
    }
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds beyond annotations by emphasizing irreversibility and requiring user confirmation. Annotations already mark destructiveHint=true, so description complements well.

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: one sentence with a warning. No unnecessary words, front-loads the critical warning symbol.

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 destructive tool, the description is complete. It could mention idempotency but annotations already indicate false. Overall 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%, and the description clarifies that serviceCallTicketId is a record ID. No additional meaningful details 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?

Description explicitly states it permanently removes a ticket association from a service call, with a clear warning. This distinguishes it from sibling tools like autotask_create_service_call_ticket and autotask_delete_service_call_ticket_resource.

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 instructs to confirm with the user before invoking, indicating the need for caution. It lacks explicit comparison with alternatives but provides sufficient context given the destructive nature.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/asachs01/autotask-mcp'

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