Skip to main content
Glama
montrellcruse

ServiceTitan MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ST_APP_KEYYesServiceTitan app key (ST-App-Key header)
ST_DOMAINSNoComma-separated domain allowlist (e.g. crm,dispatch,reporting)
ST_READONLYNoSkip write and delete tools at registration timetrue
ST_TIMEZONENoIANA timezone for the tenant (e.g. America/New_York) — critical for date-bound intelligence toolsUTC
ST_CLIENT_IDYesServiceTitan OAuth client ID
ST_LOG_LEVELNoLog level: debug, info, warn, errorinfo
ST_TENANT_IDYesServiceTitan tenant identifier
ST_CORS_ORIGINNoAllowed CORS origin for the SSE server*
ST_ENVIRONMENTNoServiceTitan environment: integration or productionintegration
ST_MCP_API_KEYNoAPI key for remote MCP clients (required for SSE deployment only)
ST_CLIENT_SECRETYesServiceTitan OAuth client secret
ST_CONFIRM_WRITESNoRequire confirm=true to execute write toolsfalse
ST_RESPONSE_SHAPINGNoSet to false to disable response transformation and return raw API datatrue
ST_MAX_RESPONSE_CHARSNoCap tool response size100000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
st_health_checkA

Verify authentication and representative tenant read access. Use st_readiness_check for report and module compatibility.

st_readiness_checkA

Read-only compatibility manifest: authentication, representative module read access, report fields/parameters and definition fingerprints. Does not certify write scopes or metric totals.

st_result_readA

Retrieve a stored large result as bounded JSON text chunks. Start at offset 0, concatenate text in nextOffset order, then parse JSON. Results expire after five minutes and belong to this session.

accounting_ap_credits_listA

List one requested page of vendor AP credits, filterable by credit IDs and created or modified timestamps. Use this for credits on vendor accounts; use accounting_ap_payments_list for AP disbursements and accounting_payments_list for customer receipts.

accounting_ap_payments_listA

List one requested page of vendor AP payments, filterable by payment IDs and created or modified timestamps. Use this for accounts-payable disbursements; use accounting_ap_credits_list for vendor credits and accounting_payments_list for customer receipts.

accounting_gl_accounts_getA

Retrieve a GL account by its ServiceTitan ID. Returns the single upstream record without pagination; use accounting_gl_accounts_list to search when the ID is unknown.

accounting_gl_accounts_listA

List one requested page of general-ledger accounts, with filters for IDs, names, numbers, types, subtypes, source, description, and Intacct flags. Use accounting_gl_accounts_get for one known account and accounting_gl_account_types_list to resolve account-type metadata.

accounting_gl_account_types_listA

List one requested page of GL account-type definitions, filterable by type IDs, names, and active state. Use this catalog to resolve types for GL accounts; use accounting_gl_accounts_list for the actual ledger accounts.

accounting_invoices_listA

List one requested page of customer invoice headers using customer, job, business-unit, invoice, date, amount, balance, review, and assignment filters. Use this for filtered invoice search; use estimates or invoice-item tools when the required grain is an estimate or individual line item.

accounting_invoices_custom_field_types_listA

List one requested page of invoice custom-field definitions, with paging and total-count controls. Use this to resolve the metadata for invoice custom fields; use accounting_invoices_list to retrieve invoice records and their values.

accounting_journal_entries_get_summaryA

Retrieve journal-entry summary rows for the requested journal-entry IDs. Use this for header-level accounting totals; use accounting_journal_entries_get_details for the corresponding line-level detail rows.

accounting_journal_entries_get_detailsA

Retrieve journal-entry detail rows for the requested journal-entry IDs. Use this for line-level account and amount detail; use accounting_journal_entries_get_summary for header-level totals.

accounting_journal_entries_listA

List one requested page of journal-entry headers using IDs, numbers, sync status, posted dates, and created or modified timestamps. Use this to discover entry IDs, then choose accounting_journal_entries_get_summary for summary rows or accounting_journal_entries_get_details for line-level rows.

accounting_payments_custom_field_types_listA

List one requested page of payment custom-field definitions, with paging and total-count controls. Use this to resolve payment field metadata; use accounting_payments_list for customer payment transactions and their field values.

accounting_payments_listA

List one requested page of customer payment transactions using payment or applied-invoice identifiers, customer, business-unit, batch, status, date, and total-amount filters. Use accounting_payment_types_list for payment-method definitions; use accounting_ap_payments_list for vendor disbursements.

accounting_payment_types_getA

Retrieve a payment type by its ServiceTitan ID. Returns the single upstream record without pagination; use accounting_payment_types_list to search when the ID is unknown.

accounting_payment_types_listA

List one requested page of customer payment-type definitions, filterable by IDs, active state, and creation timestamps. Use this catalog to interpret or select payment methods; use accounting_payments_list for actual customer payment transactions.

accounting_payment_terms_getA

Retrieve a payment term by its ServiceTitan ID. Returns the single upstream record without pagination; use accounting_payment_terms_list to search when the ID is unknown.

accounting_payment_terms_listA

List one requested page of invoice payment-term definitions, filterable by IDs and created or modified timestamps. Use accounting_payment_terms_get for one known term; use accounting_invoices_list for invoice transactions.

accounting_tax_zones_listA

List one requested page of tax-zone definitions, filterable by IDs, active state, and created or modified timestamps. Use this catalog to resolve tax treatment identifiers; it does not return invoice transactions or calculated tax totals.

crm_bookings_getA

Retrieve one tenant booking record by booking ID. Use crm_bookings_list to search when the ID is unknown, or the provider-scoped get when the booking provider must be part of the route.

crm_bookings_provider_getA

Retrieve one booking record from a specified booking provider using both provider and booking IDs. Use crm_bookings_get for the tenant-wide ID route, or the provider list when the booking ID is unknown.

crm_bookings_contacts_listA

List one page of contacts attached to a tenant booking. Supply the booking ID; use page and pageSize to continue through results.

crm_bookings_listA

Search tenant bookings by IDs, external ID, or created and modified ranges. Returns one page; use crm_bookings_get for a known booking ID.

crm_bookings_provider_listA

Search one booking provider's bookings by IDs, external ID, or created and modified ranges. Returns one page and requires the provider ID.

crm_bookings_provider_contacts_listA

List one page of contacts for a booking within a specified booking provider. Requires both provider and booking IDs.

crm_booking_provider_tags_getA

Retrieve one booking-provider tag record by ID, including its name and description. Use crm_booking_provider_tags_list to search by name, multiple IDs, or change dates.

crm_booking_provider_tags_listA

Search booking-provider tag definitions by name, IDs, or created and modified ranges. Returns one page; use crm_booking_provider_tags_get when the tag ID is already known.

crm_contact_methods_getA

Retrieve one contact-method record using its parent contact UUID and contact-method UUID. Use crm_contact_methods_list to search that contact's methods when the method ID is unknown.

crm_contact_methods_listA

Search one contact's phone, email, or other contact methods by reference, type, value, or date filters. Returns one page and requires contactId.

crm_contacts_getA

Retrieve one CRM contact record by UUID, including its stored identity fields. Use crm_contacts_list to search by name, title, reference ID, archive status, or change dates.

crm_contacts_by_relationship_listA

Search contact records associated with a known relationship ID, with optional identity, archive, and date filters. Returns one page; use crm_contact_relationships_list to inspect the links owned by one known contact.

crm_contacts_listA

Search CRM contacts by name, title, reference ID, archive status, or date ranges. Returns one page; use crm_contacts_get for a known UUID.

crm_contact_relationships_listA

List one page of contact-to-entity relationship records for a known contact UUID, optionally filtered by related entity, type slug, type name, or creation time. Use crm_contacts_by_relationship_list for contacts associated with a known relationship ID.

crm_customers_getA

Retrieve one customer record by ID, including the customer data returned by ServiceTitan. Use crm_customers_list to search by name, address, phone, external data, activity, or date ranges.

crm_customers_listA

Search customers by IDs, name, address, phone, coordinates, external data, activity, or created and modified ranges. Returns one page; use crm_customers_get for a known ID.

crm_customers_notes_listA

List one page of notes attached to a known customer, optionally filtered by created or modified timestamps. Requires the customer ID.

crm_customers_contacts_listA

List one page of contacts attached to a known customer. Use crm_customers_contacts_modified_list for cross-customer incremental contact queries.

crm_customers_contacts_modified_listA

Search contact records across specified customers using created or modified time ranges. Returns one page; use crm_customers_contacts_list for all contacts of one known customer.

crm_customers_custom_field_types_listA

List one page of custom-field type definitions available to customers, with created and modified date filters. This returns field metadata, not values for one customer.

crm_leads_getA

Retrieve one CRM lead record by ID, including its customer and lead details. Use crm_leads_list to search by customer, status, prospect state, location fields, or date ranges.

crm_leads_notes_listA

List one page of notes attached to a known lead, optionally filtered by created or modified timestamps. Requires the lead ID.

crm_leads_listA

Search CRM leads by IDs, customer, status, prospect state, customer location, or created and modified ranges. Returns one page; use crm_leads_get for a known ID.

crm_locations_getA

Retrieve one service-location record by ID, including its customer and address data. Use crm_locations_list to search by customer, address, external data, activity, or date ranges.

crm_locations_listA

Search service locations by IDs, customer, name, address, coordinates, external data, activity, or date ranges. Returns one page; use crm_locations_get for a known ID.

crm_locations_notes_listA

List one page of notes attached to a known service location, optionally filtered by created or modified timestamps. Requires the location ID.

crm_locations_contacts_listA

List one page of contacts attached to a known service location. Use crm_locations_contacts_modified_list for cross-location incremental contact queries.

crm_locations_contacts_modified_listA

Search contact records across specified locations using created or modified time ranges. Returns one page; use crm_locations_contacts_list for all contacts of one known location.

crm_locations_custom_field_types_listA

List one page of custom-field type definitions available to locations, with created and modified date filters. This returns field metadata, not values for one location.

crm_location_labor_types_listA

List one page of labor-type assignment records for specified location IDs, optionally filtered by active state or creation time. Use this to determine which labor types apply across known service locations.

dispatch_arrival_windows_getA

Retrieve one arrival-window definition by ID, including its time span and applicable business units. Use dispatch_arrival_windows_list to browse by active state or creation time.

dispatch_arrival_windows_listA

List one page of arrival-window definitions, optionally filtered by active state or creation time. Each record supplies a configured window and applicable business units; use dispatch_arrival_windows_get for a known ID.

dispatch_arrival_window_configuration_getA

Retrieve the tenant-wide arrival-window configuration as one unpaged response. It returns scheduling configuration rather than an individual window; use dispatch_arrival_windows_get or list for window definitions.

dispatch_appointments_getA

Retrieve one appointment record by ID, including its dispatch and scheduling data. Use dispatch_appointments_list to search by job, customer, technician, status, start time, or other filters.

dispatch_appointments_listA

Search appointments by IDs, job, project, customer, technician, status, start range, or created and modified ranges. Returns one page; use dispatch_appointments_get for a known ID.

dispatch_jobs_get_attachmentA

Retrieve one job-attachment resource from Forms v2 by attachment ID. Use dispatch_jobs_list_attachments to browse attachment metadata for a known job when the attachment ID is unknown.

dispatch_jobs_list_attachmentsA

List one page of attachments for a known job, optionally filtered by creation time and sorted. Returned records identify files attached to that job.

dispatch_call_reasons_listA

List one page of dispatch call-reason catalog entries, filtered by active state or created and modified ranges. Use these IDs when a workflow requires a call reason.

dispatch_job_cancel_reasons_listA

Browse the paginated job-cancellation-reason catalog using active and date filters. Use dispatch_jobs_cancel_reasons_list instead only to look up a supplied set of known reason IDs.

dispatch_job_hold_reasons_listA

List one page of job-hold-reason catalog entries, filtered by active state or created and modified ranges. Returned records provide reason IDs and metadata used when placing a job on hold; they are distinct from cancellation reasons.

dispatch_jobs_getA

Retrieve one job record by ID, optionally scoped to an external-data application. Returns the current ServiceTitan job data; use dispatch_jobs_list to search by customer, location, status, dates, or other filters.

dispatch_jobs_listA

Search jobs by IDs, number, customer, location, project, status, appointments, equipment, tags, dates, or other supported filters. Returns one page; use dispatch_jobs_get for a known job ID.

dispatch_jobs_equipment_getA

Retrieve the installed-equipment ID collection attached to a known job as one unpaged response. Use dispatch_installed_equipment_get or list to fetch the equipment records themselves.

dispatch_jobs_notes_listA

List one page of notes attached to a known job. Requires the job ID; this endpoint has pagination controls but no note-content filters.

dispatch_jobs_cancel_reasons_listA

Look up job cancellation reasons for a supplied list of known IDs. This non-paginated Jobs endpoint is distinct from dispatch_job_cancel_reasons_list, which browses and filters the reason catalog.

dispatch_jobs_history_getA

Retrieve the history response for a known job ID as one unpaged audit resource. Use dispatch_jobs_get for the current job record rather than its historical changes.

dispatch_jobs_canceled_logs_listA

List one page of cancellation log entries for a known job ID. Use this for cancellation audit details rather than the current job or cancellation-reason catalog.

dispatch_jobs_booked_log_getA

Retrieve booking-log details for a known job ID as one unpaged audit resource. Use dispatch_jobs_get for the current job record rather than its booking audit data.

dispatch_jobs_custom_field_types_listA

List one page of custom-field type definitions available to jobs, with created and modified date filters. This returns field metadata, not values for one job.

dispatch_job_splits_listA

List one page of split records for a single required job ID, with activity and date filters. Use dispatch_job_splits_by_jobs_list to query splits across multiple jobs.

dispatch_job_splits_by_jobs_listA

Search one page of job-split records across supplied job IDs, with activity and date filters. Use dispatch_job_splits_list when working with one job-scoped route.

dispatch_job_types_getA

Retrieve one job-type definition by ID, optionally scoped to an external-data application. Returns the configured defaults and associations for that type; use dispatch_job_types_list to search the catalog.

dispatch_job_types_listA

Search job-type definitions by IDs, name, priority, duration, active state, external-data application, or date ranges. Returns one page of configured job types; use dispatch_job_types_get for a known ID.

dispatch_projects_getA

Retrieve one project record by ID, optionally scoped to an external-data application. Returns the current project data; use dispatch_projects_list to search by customer, location, status, dates, or linked work.

dispatch_projects_listA

Search projects by IDs, customer, location, status, type, manager, dates, or linked jobs, appointments, and invoices. Returns one page; use dispatch_projects_get for a known ID.

dispatch_projects_notes_listA

List one page of notes attached to a known project. Requires the project ID; use dispatch_projects_get for the project record itself.

dispatch_projects_custom_field_types_listA

List one page of custom-field type definitions available to projects, with created and modified date filters. This returns field metadata, not values for one project.

dispatch_project_types_getA

Retrieve one project-type definition by ID, including its configured type metadata. Use dispatch_project_types_list to browse the paginated type catalog when the ID is unknown.

dispatch_project_types_listA

List one page of project-type definitions. Use dispatch_project_types_get when a project-type ID is already known.

dispatch_project_statuses_getA

Retrieve one project-status definition by ID, including its configured status metadata. Use dispatch_project_statuses_list to search the catalog and the sub-status list for finer classifications.

dispatch_project_statuses_listA

Search one page of project-status definitions by IDs, name, or created and modified ranges. Use the returned status IDs to classify projects, and dispatch_project_sub_statuses_list to find their finer-grained sub-statuses.

dispatch_project_sub_statuses_getA

Retrieve one project sub-status definition by ID, including its parent-status metadata. Use dispatch_project_sub_statuses_list to search by parent status, name, IDs, active state, or dates.

dispatch_project_sub_statuses_listA

Search one page of project sub-status definitions by parent status, IDs, name, active state, or date ranges. Returned records refine a project's status; use dispatch_project_statuses_list for the parent status catalog.

dispatch_installed_equipment_getA

Retrieve one installed-equipment record by ID, including its location and equipment details. Use dispatch_installed_equipment_list to search by location, IDs, active state, or date ranges.

dispatch_installed_equipment_listA

Search installed-equipment records by IDs, location IDs, active state, or created and modified ranges. Returns one page; use dispatch_installed_equipment_get for a known ID.

dispatch_installed_equipment_attachments_getA

Request an installed-equipment attachment by its ServiceTitan storage path. Returns the client-decoded attachment response; the pinned API does not define a response-body schema. Supply the exact known path; use dispatch_installed_equipment_get for the equipment record itself.

dispatch_images_getA

Request image response data for a ServiceTitan storage path. The upstream Pricebook image operation documents an HTTP 302 redirect; this wrapper returns the client-decoded response body through its standard JSON/text envelope, without exposing the redirect Location header. Supply the known path when targeting an image; use dispatch_jobs_list_attachments to discover job attachments.

dispatch_forms_listA

Search dispatch form definitions by IDs, name, publication status, active state, conditional logic, triggers, and date ranges. Returns one page of form metadata; use dispatch_form_submissions_list for completed or pending submissions.

dispatch_form_submissions_listA

Search submitted form records by form, creator, status, owner expression, submitted range, or active state. Returns one page; use this for submission results rather than form definitions.

estimates_getA

Retrieve a single estimate by its ServiceTitan ID. Returns the single upstream record without pagination; use estimates_list to search when the ID is unknown.

estimates_listA

Search one requested page of estimates by job, project, location, status, dates, salesperson, or total amount. Use estimates_get for one known estimate; use estimates_export_estimates for incremental synchronization.

estimates_export_estimatesA

Read the incremental estimate export feed for synchronization. Supply from as the change-window start and continue with the response continuation token when present; use estimates_list for interactive filtered browsing and estimates_get for a known ID.

estimates_items_listA

Search one requested page of estimate line items by estimate ID, item IDs, active state, or creation and modification dates. Each result represents an item attached to an estimate, rather than an estimate header returned by estimates_list.

estimates_estimate_templates_listA

List one requested page of estimate templates, filterable by active state and modified timestamps. Use estimates_estimate_templates_get for a known template ID; use estimates_list for customer estimates created from templates.

estimates_estimate_templates_getA

Retrieve an estimate template by its ServiceTitan ID. Returns the single upstream record without pagination; use estimates_estimate_templates_list to search when the ID is unknown.

estimates_proposal_templates_listA

List one requested page of proposal templates, filterable by active state, modified timestamps, and proposal type ID. Use estimates_proposal_templates_get for a known template and estimates_proposal_types_list to resolve the type filter.

estimates_proposal_templates_getA

Retrieve a proposal template by its ServiceTitan ID. Returns the single upstream record without pagination; use estimates_proposal_templates_list to search when the ID is unknown.

estimates_proposal_types_listA

List proposal-type definitions available for grouping and filtering proposal templates. Use estimates_proposal_templates_list to retrieve the templates that reference these types.

export_invoicesA

Read the incremental invoices export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_invoice_itemsA

Read the incremental invoice items export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_invoice_templatesA

Read the incremental invoice templates export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_paymentsA

Read the incremental payments export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_adjustmentsA

Read the incremental adjustments export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_inventory_billsA

Read the incremental inventory bills export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_payroll_adjustmentsA

Read the incremental payroll adjustments export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_customersA

Read the incremental customers export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_customers_contactsA

Read the incremental customers contacts export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_locations_contactsA

Read the incremental locations contacts export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_locationsA

Read the incremental locations export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_leadsA

Read the incremental leads export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_bookingsA

Read the incremental bookings export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_jobsA

Read the incremental jobs export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_job_notesA

Read the incremental job notes export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_job_historyA

Read the incremental job history export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_job_canceled_logsA

Read the incremental job canceled logs export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_job_splitsA

Read the incremental job splits export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_appointmentsA

Read the incremental appointments export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_appointment_assignmentsA

Read the incremental appointment assignments export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_projectsA

Read the incremental projects export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_project_notesA

Read the incremental project notes export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_installed_equipmentA

Read the incremental installed equipment export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_techniciansA

Read the incremental technicians export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_employeesA

Read the incremental employee export feed for cross-domain bulk synchronization. This is the same feed as people_employees_export; use whichever name is available and do not fetch both. Continue immediately with continueFrom while hasMore is true; when false, retain it and wait before polling again. includeRecentChanges may repeat records.

export_servicesA

Read the incremental services export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_materialsA

Read the incremental materials export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_equipmentA

Read the incremental equipment export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_membershipsA

Read the incremental memberships export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_membership_typesA

Read the incremental membership types export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_membership_status_changesA

Read the incremental membership status changes export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_service_agreementsA

Read the incremental service agreements export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_recurring_service_typesA

Read the incremental recurring service types export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_callsA

Read the incremental calls export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_timesheet_codesA

Read the incremental timesheet codes export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_gross_pay_itemsA

Read the incremental gross pay items export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_payroll_settingsA

Read the incremental payroll settings export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_activitiesA

Read the incremental timesheet-activity export feed for cross-domain bulk synchronization. This is the same feed as settings_activities_export; use whichever name is available and do not fetch both. Continue immediately with continueFrom while hasMore is true; when false, retain it and wait before polling again. includeRecentChanges may repeat records.

export_activity_codesA

Read the incremental activity-code export feed for cross-domain bulk synchronization. This is the same feed as settings_activity_codes_export; use whichever name is available and do not fetch both. Continue immediately with continueFrom while hasMore is true; when false, retain it and wait before polling again. includeRecentChanges may repeat records.

export_business_unitsA

Read the incremental business units export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_tag_typesA

Read the incremental tag-type export feed for cross-domain bulk synchronization. This is the same feed as settings_tag_types_export; use whichever name is available and do not fetch both. Continue immediately with continueFrom while hasMore is true; when false, retain it and wait before polling again. includeRecentChanges may repeat records.

export_purchase_ordersA

Read the incremental purchase orders export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_returnsA

Read the incremental returns export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

export_transfersA

Read the incremental transfers export feed for bulk synchronization. Start with a date or omit from to start at the beginning of the feed, continue immediately with continueFrom while hasMore is true, and when false retain it and wait before polling again. includeRecentChanges may return records sooner but can repeat them.

intel_lookupA

Look up technicians, business units, payment types, or membership types for use in intelligence-tool filters. Returns matching IDs and names from a 30-minute in-process cache; search performs a case-insensitive name match, while omission returns the available cached set.

Examples:

  • "What are our business units?" -> type="business-units"

  • "Find technician named John" -> type="technicians", search="John"

  • "List all payment types" -> type="payment-types"

  • "What membership types do we have?" -> type="membership-types"

intel_revenue_summaryA

Summarize Report 175 revenue and Report 179 sales for the selected date range, optionally filtered to one business unit. Returns completed, non-job, adjustment, and total revenue plus opportunities, conversion, and sales metrics by business unit; the aggregate reflects returned report rows and is not certified as an all-company total or as matching every tenant dashboard configuration. includeProductivityMetrics adds Report 177 metrics, and includeCollections fetches all payment pages for the period. Report calls are cached briefly and serialized per report/client with at least 65 seconds between starts; a failed source is identified in _warnings and its affected metrics may be empty.

Examples:

  • "What was our total revenue last month?" -> startDate="2026-02-01", endDate="2026-03-01"

  • "How much did HVAC bring in this quarter?" -> startDate="2026-01-01", endDate="2026-04-01", businessUnitName="HVAC"

  • "Revenue year to date" -> startDate="2026-01-01", endDate="2026-03-10"

intel_technician_scorecardA

Build a technician scorecard for the selected date range from ServiceTitan technician reports. Returns revenue, converted jobs, opportunities, conversion, productivity, recalls, upsells, and lead-generation metrics; includeExtendedMetrics adds membership and tech/marketing-lead sales reports. Filter by technician or business unit when comparing a subset, and use limit to bound ranked results. Report calls may wait for per-report/client spacing, and partial source failures are returned in _warnings.

Examples:

  • "How are our techs performing this month?" -> startDate="2026-03-01", endDate="2026-04-01"

  • "Show me Andrew's numbers for Q1" -> startDate="2026-01-01", endDate="2026-04-01", technicianName="Andrew"

  • "Who is our top performer this year?" -> startDate="2026-01-01", endDate="2026-03-10"

intel_membership_healthA

Summarize membership activity from Report 182 and business-unit membership opportunities and conversions from Report 178 for the selected date range. Returns active-at-end counts, sales, cancellations, expirations, renewals, other status movements, and conversion metrics; it does not calculate a cohort retention rate. includeServiceRevenue adds tenant-wide invoice service revenue for the period, which is not membership-attributed. Partial source failures are returned in _warnings.

Examples:

  • "How are memberships doing this year?" -> startDate="2026-01-01", endDate="2026-03-10"

  • "Show membership status movements last quarter" -> startDate="2025-10-01", endDate="2026-01-01"

  • "How many new signups vs cancellations?" -> startDate="2026-01-01", endDate="2026-03-10"

intel_estimate_pipelineA

Analyze all fetched estimate pages as an open, sold, and dismissed pipeline, with value, conversion, close speed, age buckets, and open estimates older than 30 days. startDate and endDate bound estimate creation timestamps; when both are supplied, Report 172 adds technician sales metrics. soldById filters both sources. Partial source failures are returned in _warnings.

Examples:

  • "What's our close rate on estimates?" -> startDate="2026-01-01", endDate="2026-03-10"

  • "Show me stale estimates over 30 days" -> returns staleEstimates automatically

  • "How is Andrew doing on sales?" -> soldById=<Andrew's ID>

intel_campaign_performanceA

Compare marketing campaigns over the selected date range by combining all fetched call, booking, job, and invoice pages. Returns calls, bookings, booked-call conversion, attributed revenue, and revenue per call; campaignId narrows the analysis to one known campaign. The metrics reflect the wrapper's cross-source attribution logic, and partial source failures are returned in _warnings.

Examples:

  • "Which marketing campaigns are working?" -> startDate="2026-01-01", endDate="2026-03-10"

  • "How many calls are we getting from Google Ads?" -> startDate="2026-01-01", endDate="2026-03-10", campaignId=

  • "What's our call-to-booking rate?" -> startDate="2026-01-01", endDate="2026-03-10"

intel_daily_snapshotA

Build a one-day operational snapshot in the configured tenant timezone from all fetched appointment, job, invoice, payment, estimate, and call pages plus Report 163 for the next day. Returns appointment progress, daily invoiced revenue and collections, sold-estimate value, call outcomes, highlights, and at most 20 upcoming jobs; truncation and partial source failures appear in _warnings. Results are cached for 60 seconds.

Examples:

  • "How did today go?" -> date="2026-03-10"

  • "Give me yesterday's numbers" -> date="2026-03-09"

  • "What happened on Monday?" -> date="2026-03-09"

intel_csr_performanceA

Summarize CSR-attributed jobs from Report 162 for the selected date range. Returns booked-job counts, revenue, average ticket, campaign and job-type mixes, rankings, and team averages; an optional business-unit name narrows matching report rows. Report execution is cached briefly and may wait for per-report/client spacing; unavailable source data is identified in _warnings.

Examples:

  • "How are our CSRs performing this month?" -> startDate="2026-03-01", endDate="2026-04-01"

  • "Show CSR booking revenue for last quarter" -> startDate="2025-10-01", endDate="2026-01-01"

  • "Which CSR is booking the most revenue for plumbing?" -> startDate="2026-01-01", endDate="2026-03-10", businessUnitName="Plumbing"

intel_labor_costA

Summarize employee regular, overtime, double-overtime, and total hours from Report 166 for the selected date range. When the tenant report exposes GrossPay, the tool also derives cost and effective hourly rate; otherwise those fields are unavailable rather than estimated. Report execution may wait for per-report/client spacing, and source failures are returned in _warnings.

Examples:

  • "What labor hours were reported this month?" -> startDate="2026-03-01", endDate="2026-04-01"

  • "Show overtime hours by employee for Q1" -> startDate="2026-01-01", endDate="2026-04-01"

intel_invoice_trackingA

Track invoice email delivery for the selected date range by combining and deduplicating Reports 2281 and 2282. Returns sent and not-sent counts, send rate, invoice amount and balance impact, and unsent breakdowns by business unit and technician; an optional business-unit filter applies to both reports. Report calls may wait for per-report/client spacing, and partial source failures are returned in _warnings.

Examples:

  • "What percent of invoices were sent this week?" -> startDate="2026-03-02", endDate="2026-03-09"

  • "Which techs are not sending invoices?" -> startDate="2026-01-01", endDate="2026-03-10"

  • "Show invoice send rate for plumbing last month" -> startDate="2026-02-01", endDate="2026-03-01", businessUnitName="Plumbing"

inventory_purchase_orders_getA

Retrieve a purchase order by its ServiceTitan ID. Returns the single upstream record without pagination; use inventory_purchase_orders_list to search when the ID is unknown.

inventory_purchase_orders_listA

List one requested page of issued purchase orders using IDs, number, status, technician, job, project, and order or sent-date filters. Use inventory_purchase_orders_get for one known order and inventory_purchase_orders_requests_list for requests that precede issued orders.

inventory_purchase_orders_requests_listA

Search purchase-order requests with the exposed identifiers, status, date, technician, job, and paging filters. These are requests that may precede a purchase order; use inventory_purchase_orders_list for issued purchase orders.

inventory_purchase_order_types_listA

List one requested page of purchase-order type definitions, with active-state and created or modified timestamp filters. Use this catalog to interpret order classifications; use inventory_purchase_orders_list for issued purchase-order records.

inventory_purchase_order_markups_getA

Retrieve a purchase order markup by its ServiceTitan ID. Returns the single upstream record without pagination; use inventory_purchase_order_markups_list to search when the ID is unknown.

inventory_purchase_order_markups_listA

List one requested page of purchase-order markup definitions, filterable by IDs and created or modified timestamps. Use inventory_purchase_order_markups_get for one known markup ID; use inventory_purchase_orders_list for purchase-order transactions.

inventory_returns_listA

List one requested page of inventory return transactions using IDs, number, vendor, job, inventory location, sync status, return dates, and external-data filters. Use inventory_return_types_list for the separate return-type catalog; use inventory_transfers_list for movement between inventory locations.

inventory_return_types_listA

List one requested page of inventory return-type definitions, with active-state and created or modified timestamp filters. Use this catalog to interpret return classifications; use inventory_returns_list for actual return transactions.

inventory_transfers_listA

List one requested page of inventory transfers using IDs, number, status, transfer type, source and destination locations, dates, sync status, and external-data filters. Use this for stock moved between locations; use inventory_returns_list for stock returned to a vendor.

inventory_vendors_getA

Retrieve a vendor by its ServiceTitan ID. Returns the single upstream record without pagination; use inventory_vendors_list to search when the ID is unknown.

inventory_vendors_listA

List one requested page of inventory vendors using IDs, active state, created or modified timestamps, and external-data mapping filters. Use inventory_vendors_get for one known vendor; use inventory_purchase_orders_list for purchase-order records.

inventory_warehouses_listA

List one requested page of warehouse definitions using IDs, active state, created or modified dates, and external-data mapping filters. Use this to resolve warehouse and inventory-location identifiers; use inventory transfers or purchase orders for stock movement and procurement.

inventory_receipts_listA

List one requested page of inventory receipt transactions using IDs, number, vendor, purchase order, bill, business unit, inventory location, sync status, and received-date filters. Use inventory_purchase_orders_list for originating orders and inventory_returns_list for outbound vendor returns.

marketing_attributed_leads_getA

Search attributed leads within a required UTC time window, optionally filtered by lead type. Returns one page of leads linked to marketing attribution activity.

marketing_client_side_data_getA

Retrieve tenant task reference data: employees, business units, priorities, statuses, types, sources, and resolutions. This Task Management client-side-data operation returns one unpaged response with no inputs; use it to populate task filters or forms, not for marketing analytics.

marketing_client_specific_pricing_get_all_rate_sheetsA

Search client-specific pricing rate sheets by IDs, search term, or active state. Returns one page of pricing definitions; despite the legacy name, pagination still applies. Use the rate-sheet ID from this result when updating a sheet.

marketing_reviewsA

Search customer review records by text, rating, source, response type, review status, location, technician, campaign, and date ranges. Returns one page; use inclusion flags when reviews missing those associations must remain in the result.

marketing_scheduler_schedulersA

List one page of marketing scheduler records, optionally filtered by created or modified timestamps. Use marketing_scheduler_scheduler_performance for metrics about one known scheduler.

marketing_scheduler_scheduler_performanceA

Retrieve one scheduler's performance metrics over a required session-created time window. Returns the scheduler performance response for that exact ID and period; use marketing_scheduler_schedulersessions for individual sessions.

marketing_scheduler_schedulersessionsA

List one page of sessions for a known scheduler, optionally filtered by created or modified timestamps. Use scheduler performance when aggregated metrics are needed.

marketing_campaign_costs_listA

Search campaign costs across campaigns by campaign ID, year, or month. Returns one page; use marketing_campaigns_costs_list when a specific campaign ID is the required path scope.

marketing_campaign_costs_getA

Retrieve one campaign-cost record by cost ID. Use marketing_campaign_costs_list to search when the cost ID is unknown.

marketing_campaigns_getA

Retrieve one marketing campaign record by ID, including its configured campaign data. Use marketing_campaigns_list to search by name, phone number, active state, IDs, or date ranges.

marketing_campaigns_listA

Search campaigns by IDs, name, phone number, active state, or created and modified ranges. Returns one page; use marketing_campaigns_get for a known campaign ID.

marketing_campaigns_costs_listA

List one page of costs for a required campaign ID, optionally filtered by year or month. Use marketing_campaign_costs_list for a broader cost search across campaigns.

marketing_calls_v3_listA

Search calls through Marketing Calls v3 using comma-delimited IDs, caller number, active state, agents, campaign, duration, timestamps, or sort. Returns one page; prefer this for ordinary call search, and use v2 only for its numeric ID array, activeOnly, or orderBy contract.

marketing_calls_getA

Retrieve one Marketing Calls v2 call record by numeric ID, including the call details returned by ServiceTitan. Use a call-list tool when the ID is unknown, and the recording or voicemail tools for those media resources.

marketing_calls_recording_getA

Request the audio recording for a known Marketing Calls v2 call ID. ServiceTitan documents an audio/mpeg stream, but this wrapper delivers client-decoded data through its standard JSON/text envelope; use a binary-capable API client when faithful audio bytes are required. Use marketing_calls_get for the call record itself.

marketing_calls_voice_mail_getA

Request the voicemail audio for a known Marketing Calls v2 call ID. ServiceTitan documents an audio/mpeg stream, but this wrapper delivers client-decoded data through its standard JSON/text envelope; use a binary-capable API client when faithful audio bytes are required. Use marketing_calls_get for the call record itself.

marketing_calls_v2_listA

Search calls through Marketing Calls v2 using its activeOnly flag, explicit orderBy and direction, numeric ID array, agents, campaign, duration, phone, or timestamps. Returns one page; prefer v3 unless these v2-specific filter or sorting semantics are required.

marketing_opt_in_outs_listA

Retrieve the tenant's marketing phone opt-out records from the v3 opt-in/out endpoint. This operation accepts no filters or pagination inputs.

memberships_listA

List one requested page of customer membership records using membership and customer IDs, status, active state, billing frequency, duration, and created or modified timestamps. Use memberships_get for one known sold membership and memberships_types_list for reusable membership-plan definitions.

memberships_custom_fields_listA

List one requested page of membership custom-field definitions using created and modified timestamp filters. Use this for field metadata; use memberships_list for customer membership records and their field values.

memberships_getA

Retrieve a single customer membership by its ServiceTitan ID. Returns the single upstream record without pagination; use memberships_list to search when the ID is unknown.

memberships_status_changes_listA

Retrieve the status-change history attached to one required customer membership ID. Use memberships_get for the current membership record or memberships_list when the membership ID must be discovered first.

memberships_types_getA

Retrieve a membership type by its ServiceTitan ID. Returns the single upstream record without pagination; use memberships_types_list to search when the ID is unknown.

memberships_types_listA

List one requested page of membership-type definitions using IDs, active state, billing frequency, duration, and created or modified timestamps; includeDurationBilling controls embedded billing details. Use memberships_types_get for one known plan and memberships_list for memberships sold to customers.

memberships_types_recurring_service_items_listA

Retrieve the recurring-service items configured under one required membership-type ID. Use memberships_types_get for the parent plan; use memberships_recurring_services_list for recurring services scheduled for customer locations.

memberships_types_discounts_listA

Retrieve discounts configured for one known membership type ID. These are type-level benefits, not the tenant pricebook discount-and-fee catalog.

memberships_types_duration_billing_listA

Retrieve duration and billing configurations under one required membership-type ID. Use this for plan-level term and billing choices; use memberships_types_get for the parent plan and memberships_list for customer memberships.

memberships_recurring_services_getA

Retrieve a recurring service by its ServiceTitan ID. Returns the single upstream record without pagination; use memberships_recurring_services_list to search when the ID is unknown.

memberships_recurring_services_listA

List one requested page of customer-location recurring services using service, membership, and location IDs, active state, and created or modified timestamps. Use memberships_recurring_services_get for one known service and memberships_types_recurring_service_items_list for plan-level service configuration.

memberships_recurring_service_events_listA

List one requested page of recurring-service events using event IDs, status, job, location, and created or modified timestamp filters. Use memberships_recurring_services_get for the parent service record; use job tools for a job referenced by an event.

memberships_recurring_service_types_getA

Retrieve a recurring service type by its ServiceTitan ID. Returns the single upstream record without pagination; use memberships_recurring_service_types_list to search when the ID is unknown.

memberships_recurring_service_types_listA

List one requested page of recurring-service type definitions using IDs, membership type, recurrence type, duration type, active state, and created or modified timestamps. Use memberships_recurring_service_types_get for one known type and memberships_recurring_services_list for customer-location service instances.

memberships_service_agreements_listA

List one requested page of customer service agreements using agreement, customer, business-unit, status, and created or modified timestamp filters. Use memberships_service_agreements_get for a known agreement; use memberships_list for customer membership sales rather than agreement records.

memberships_service_agreements_getA

Retrieve a service agreement by its ServiceTitan ID. Returns the single upstream record without pagination; use memberships_service_agreements_list to search when the ID is unknown.

payroll_payrolls_listA

List one requested page of payroll periods across employees, with employee type, status, active-state, and date filters. Use the employee- or technician-specific payroll tools when that worker ID is known.

payroll_technicians_payrolls_listA

List one requested page of payroll periods for a required technician, with status, active-state, and date filters. Use payroll_payrolls_list for a tenant-wide search.

payroll_employees_payrolls_listA

List one requested page of payroll periods for a required employee, with status, active-state, and date filters. Use payroll_payrolls_list for a tenant-wide search.

payroll_payroll_settings_employee_getA

Retrieve payroll settings for one employee by the required employee ID. Use payroll_payroll_settings_list to search across workers when the ID is unknown.

payroll_payroll_settings_listA

List one requested page of payroll-setting records across employees and technicians, with active, employee-type, created, and modified filters. Use the employee or technician get tool when a worker ID is known.

payroll_payroll_settings_technician_getA

Retrieve payroll settings for one technician by the required technician ID. Use payroll_payroll_settings_list to search across workers when the ID is unknown.

payroll_timesheet_codes_getA

Retrieve one timesheet code by its required ID. Use payroll_timesheet_codes_list to search when the ID is unknown.

payroll_timesheet_codes_listB

Retrieve one requested page of timesheet codes. Use the available filters to narrow results and request subsequent pages explicitly.

payroll_timesheets_job_listA

List one requested page of timesheets attached to a required job. Use this when the job ID is known; use payroll_timesheets_jobs_list to search across optional comma-delimited job IDs.

payroll_timesheets_jobs_listA

List one requested page of job timesheets across jobs, optionally filtered by comma-delimited job IDs. Use payroll_timesheets_job_list when retrieving timesheets for one required job.

payroll_timesheets_non_job_listA

List one requested page of non-job timesheets, optionally filtered by employee, employee type, dates, or active state. These records are not attached to jobs; use the job timesheet tools for job labor.

payroll_gross_pay_items_listA

List one requested page of gross-pay line items, optionally scoped by employee, payroll IDs, or pay date range. Use this to inspect pay components rather than payroll-period summaries.

payroll_payroll_adjustments_getA

Retrieve one payroll adjustment by its required ID. Use payroll_payroll_adjustments_list to search when the ID is unknown.

payroll_payroll_adjustments_listA

List one requested page of payroll adjustments, optionally filtered by employee IDs and posted timestamp. Use payroll_payroll_adjustments_get for one known adjustment ID.

people_employees_getA

Retrieve one employee by its required ID. Use people_employees_list to search when the ID is unknown.

people_employees_listA

List one requested page of employees, optionally filtered by IDs, user IDs, name, active state, or dates. Use the get tool for one known ID or the export feed for synchronization.

people_employees_exportA

Read the incremental employee export feed for People synchronization. This is the same feed as export_employees; use whichever name is available and do not fetch both. Continue immediately with continueFrom while hasMore is true; when false, retain it and wait before polling again. includeRecentChanges may repeat records.

people_technicians_getA

Retrieve one technician by its required ID. Use people_technicians_list to search when the technician ID is unknown.

people_technicians_listA

List one requested page of technicians, optionally filtered by IDs, user IDs, name, active state, or dates. Use the get tool for one known ID or the export feed for synchronization.

people_technician_shifts_getA

Retrieve one technician shift by its required ID. Use people_technician_shifts_list to search when the shift ID is unknown.

people_technician_shifts_listA

List one requested page of technician shifts, including normal, on-call, and time-off shifts. Filter by technician, time bounds, text, type, or active state; use the get tool for one known shift ID.

people_performance_getA

Retrieve one requested page of marketing performance metrics for a UTC period, segmented by campaign, ad group, or keyword. Use this to compare acquisition performance at one selected grain.

people_trucks_listA

List one requested page of inventory trucks, optionally filtered by IDs, active state, dates, or external-data mapping. externalDataKey and externalDataValues must be supplied together.

pricebook_categories_getA

Retrieve a pricebook category by its ServiceTitan ID. Returns the single upstream record without pagination; use pricebook_categories_list to search when the ID is unknown.

pricebook_categories_listA

List one requested page of pricebook categories using category type, active state, and created or modified timestamps. Use pricebook_categories_get for one known category ID; use the service, material, or equipment list tool for sellable items.

pricebook_discounts_fees_getA

Retrieve a discount or fee by its ServiceTitan ID. Returns the single upstream record without pagination; use pricebook_discounts_fees_list to search when the ID is unknown.

pricebook_discounts_fees_listA

List one requested page of pricebook discount and fee items using IDs, active state, created or modified timestamps, and external-data mappings. Use pricebook_discounts_fees_get for a known item; membership-type discounts are a separate plan-level benefit.

pricebook_equipment_listA

List one requested page of equipment pricebook items using IDs, active state, created or modified timestamps, and external-data mappings. Use pricebook_equipment_get for a known pricebook item; use installed-equipment tools for equipment attached to customer locations.

pricebook_equipment_getA

Retrieve equipment item by its ServiceTitan ID. Returns the single upstream record without pagination; use pricebook_equipment_list to search when the ID is unknown.

pricebook_materials_getA

Retrieve a material by its ServiceTitan ID. Returns the single upstream record without pagination; use pricebook_materials_list to search when the ID is unknown.

pricebook_materials_listA

List one requested page of material pricebook items using IDs, cost-type IDs, other-direct-cost state, active state, timestamps, and external-data mappings. Use pricebook_materials_get for a known item, pricebook_materials_cost_types_list for cost metadata, or inventory tools for stock movement.

pricebook_materials_cost_types_listA

List the material cost-type definitions available to pricebook material records; this operation has no filters or caller-managed paging. Use pricebook_materials_list for material items and inventory tools for stock transactions.

pricebook_materials_markup_listA

List one requested page of configured material markup ranges using paging, sorting, and total-count controls. Use pricebook_materials_markup_get for a known range ID; use pricebook_materials_list for the material items those pricing rules affect.

pricebook_materials_markup_getA

Retrieve a material markup range by its ServiceTitan ID. Returns the single upstream record without pagination; use pricebook_materials_markup_list to search when the ID is unknown.

pricebook_services_getA

Retrieve a service by its ServiceTitan ID. Returns the single upstream record without pagination; use pricebook_services_list to search when the ID is unknown.

pricebook_services_listA

List one requested page of service pricebook items using IDs, active state, created or modified timestamps, and external-data mappings. Use pricebook_services_get for one known item; use estimates or invoices for services quoted or sold on customer transactions.

reporting_dynamic_value_sets_getA

Resolve selectable values for a report dynamic-value-set identifier. Use values from the report definition to supply the required identifier and paging inputs when that report parameter offers dynamic choices.

reporting_report_categories_listA

List one requested page of report categories with paging and total-count controls. Start here to discover a category ID, then use reporting_reports_list for reports in that category and reporting_reports_get for a report parameter definition.

reporting_reports_listA

List report definitions within a known report category. Use reporting_report_categories_list to discover category IDs, then use reporting_reports_get for one report definition before executing it.

reporting_reports_getA

Retrieve one report definition from a known category and report ID, including its parameter contract. Use reporting_reports_list to discover reports and reporting_reports_data_create to execute the selected definition.

reporting_reports_data_createA

Execute one requested page of a known report and return the upstream report-data response. First inspect reporting_reports_get for that report's required parameter names, value types, and accepted formats; pass those entries in parameters, and use page, pageSize, and includeTotal to control this request. This generic reporting call is not subject to the intelligence tools' report scheduler or 65-second spacing.

scheduling_appointment_assignments_listA

Find one page of technician-to-appointment assignments by assignment IDs, appointment IDs, job ID, active state, or creation and modification dates. Use dispatch_appointments_get or dispatch_appointments_list for the appointment records themselves; this tool returns the assignment relationships.

scheduling_business_hours_listA

Retrieve the tenant business-hours configuration used for scheduling availability. This returns configured hours rather than appointment records or calculated open capacity.

scheduling_non_job_appointments_getA

Retrieve a non-job appointment by its ServiceTitan ID. Returns the single upstream record without pagination; use scheduling_non_job_appointments_list to search when the ID is unknown.

scheduling_non_job_appointments_listA

List one requested page of non-job appointments using IDs, technician, timesheet code, schedule visibility, active state, start bounds, and created or modified timestamps. Use scheduling_non_job_appointments_get for a known appointment; use dispatch appointment tools for appointments attached to jobs.

scheduling_teams_listA

List one requested page of scheduling teams using includeInactive and created or modified timestamp filters. Use scheduling_teams_get for one known team ID; use scheduling appointment assignments for technician-to-appointment assignments rather than team definitions.

scheduling_teams_getA

Retrieve a team by its ServiceTitan ID. Returns the single upstream record without pagination; use scheduling_teams_list to search when the ID is unknown.

scheduling_zones_getA

Retrieve a zone by its ServiceTitan ID. Returns the single upstream record without pagination; use scheduling_zones_list to search when the ID is unknown.

scheduling_zones_listA

List one requested page of scheduling zones using active state and created or modified timestamp filters. Use scheduling_zones_get for one known zone ID; use scheduling_business_hours_list for configured operating hours rather than geographic zone definitions.

settings_business_units_getA

Retrieve one business unit by its required ID. Use settings_business_units_list to search when the ID is unknown.

settings_business_units_listA

List one requested page of business units, optionally filtered by IDs, name, active state, dates, or external-data application. Use the get tool for one known ID or the export feed for synchronization.

settings_tag_types_listA

List one requested page of tag types with active-state, date, and sort controls. Use the export feed for incremental synchronization; this endpoint is for paginated browsing.

settings_tag_types_exportA

Read the incremental tag-type export feed for Settings workflows. This is the same feed as export_tag_types; use whichever name is available and do not fetch both. Continue immediately with continueFrom while hasMore is true; when false, retain it and wait before polling again. includeRecentChanges may repeat records.

settings_activity_codes_getA

Retrieve one payroll activity code by its required ID. Use settings_activity_codes_list to search when the ID is unknown.

settings_activity_codes_listA

List one requested page of payroll activity codes with active-state, date, and sort controls. Use the get tool for one known code or the export feed for synchronization.

settings_activity_codes_exportA

Read the incremental activity-code export feed for Settings workflows. This is the same feed as export_activity_codes; use whichever name is available and do not fetch both. Continue immediately with continueFrom while hasMore is true; when false, retain it and wait before polling again. includeRecentChanges may repeat records.

settings_activity_categories_getA

Retrieve one timesheet activity category by its required ID. Use settings_activity_categories_list to search when the ID is unknown.

settings_activity_categories_listA

List one requested page of timesheet activity categories with active-state, date, and sort controls. Use the get tool for one known category or the export feed for synchronization.

settings_activity_categories_exportA

Read the incremental activity-category export feed for Settings synchronization. Use the list or get tools for filtered browsing or a known ID. Continue immediately with continueFrom while hasMore is true; when false, retain it and wait before polling again. includeRecentChanges may repeat records.

settings_activity_types_getA

Retrieve one timesheet activity type by its required ID. Use settings_activity_types_list to search when the ID is unknown.

settings_activity_types_listA

List one requested page of timesheet activity types with active-state, date, and sort controls. Use the get tool for one known type ID.

settings_activities_exportA

Read the incremental timesheet-activity export feed for Settings workflows. This is the same feed as export_activities; use whichever name is available and do not fetch both. Continue immediately with continueFrom while hasMore is true; when false, retain it and wait before polling again. includeRecentChanges may repeat records.

settings_tasks_getA

Retrieve one task by its required ID. Use settings_tasks_list to search when the ID is unknown.

settings_tasks_listA

List one requested page of employee tasks using status, assignment, related-record, date, priority, and other filters. Use settings_tasks_get for one known task ID; statuses is preferred over deprecated isClosed.

settings_user_roles_listA

List one requested page of user roles, optionally filtered by IDs, name, active state, creation date, or employee type. Use this catalog to resolve role IDs and availability.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 264 tools

Disambiguation2/5

There are multiple near-identical and explicitly duplicated tools, including export_employees/people_employees_export, export_activities/settings_activities_export, marketing_calls_v2_list/marketing_calls_v3_list, and dispatch_job_cancel_reasons_list/dispatch_jobs_cancel_reasons_list. Many descriptions try to disambiguate, but the sheer number of overlapping feeds and singular/plural variants makes misselection likely.

Naming Consistency3/5

Most tools follow a readable lowercase snake_case domain_entity_verb pattern, but conventions are mixed: top-level export_* feeds coexist with *_export alias tools, v2/v3 suffixes appear inconsistently, and names like marketing_scheduler_schedulersessions or crm_bookings_provider_contacts_list break the rhythm. The naming is not chaotic, but it is not uniform enough for a higher score.

Tool Count1/5

With 264 tools, this is an extreme count even for a broad ServiceTitan integration. The surface includes dozens of near-duplicate export feeds, catalog/list/get variants, and custom intel tools that could have been consolidated. This volume will overwhelm agents and makes tool selection impractical.

Completeness2/5

The read/list/export coverage is broad across CRM, dispatch, accounting, inventory, payroll, marketing, and pricebook, but the entire surface is read-only with no create, update, or delete operations. There are also odd gaps where entities only have exports or only have list/get tools, and several duplicate feeds suggest an incomplete or inconsistent lifecycle model.

Maintenance

ActivityActive
ResponsivenessNo issues