Skip to content

Connectors · Accounting & finance

ServiceTitan MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to ServiceTitan and the rest of your systems. It gives your agent 591 ServiceTitan actions (331 reads, 218 writes and 42 that wait for a confirmation) and holds the ServiceTitan credential itself, so the agent never does. It paces ServiceTitan's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "servicetitan.invoices.list",  intent: "check which ServiceTitan account is connected"}# Retrieves a list of invoices. By default, all invoices will be returned regardless of status. · read · 1 upstream call
  • 591actionsin one signed file
  • 331readlook, never change
  • 218writecreate and update
  • 42wait for a yesdestructive, confirmed first

Set up

Connect ServiceTitan in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect ServiceTitan.

    OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.

    • client_idServiceTitan client ID: in ServiceTitan go to Settings > Integrations > API Application Access, connect your…
    • client_secretServiceTitan client secret (shown once when generated for the tenant)
    • app_keyYour ServiceTitan app key
    • tenant_idYour ServiceTitan tenant id
    account { op: "connections.requirements", service: "servicetitan" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "servicetitan.invoices.list" }# retrieves a list of invoices. by default, all invoices will be returned regardless of status. · read · 1 upstream callcheck { action: "servicetitan.invoices.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

ServiceTitan at a glance

Sign-in
OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.
You provide
client_idclient_secret
Setup fields
app_keytenant_id
Limits we pace to
60 calls a second, per connection
API covered
ServiceTitan (field service management: CRM, jobs, dispatch, pricebook, accounting, payroll) API ServiceTitan v2 tenant APIs (25 module OpenAPI 3.1 documents, 602 operations)api.servicetitan.io
Built from
ServiceTitan's documentation, read 22 October 2026developer.servicetitan.iodeveloper.servicetitan.iodeveloper.servicetitan.io
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
331 of 331 reads, for up to 5 minutes; a write clears what it affects
Shared entities
17, so ask can line ServiceTitan up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in ServiceTitan.

591 actions in 25 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 331readlook, never change
  • 218writecreate and update
  • 42destructivewait for a confirmation
  1. CRM

    86

    40 read · 35 write · 11 destructive

    Gets a list of contacts · Gets a list of Customers · Gets a list of locations · Gets a list of leads

  2. Accounting

    76

    43 read · 31 write · 2 destructive

    Retrieves a list of invoices. By default, all invoices will be returned regardless of status. · Gets a paginated list of payments · create adjustment invoice · update invoice

  3. JPM

    75

    45 read · 24 write · 6 destructive

    Gets a list of projects · Gets a list of jobs · Creates a New Project · Gets a list of appointments

  4. Inventory

    53

    22 read · 30 write · 1 destructive

    Get a list of purchase orders · Create a new purchase order · Get purchase order by Id · Get a list of vendors

  5. Dispatch

    41

    17 read · 18 write · 6 destructive

    Assigns the list of technicians to the appointment · Gets a list of appointment assignments · Unassigns the list of technicians from the appointment · ArrivalWindows Create

  6. Payroll

    38

    28 read · 8 write · 2 destructive

    Gets a list of payroll activity codes · Gets a list of employee payrolls · Provides export feed for activity codes · Provides export feed for gross pay items

  7. Pricebook

    38

    18 read · 15 write · 5 destructive

    ClientSpecificPricing GetAllRateSheets · Post to add a new discount or fee to your pricebook · Get data on all of the discounts or fees in the pricebook. Supports optional search filtering. · Post to add new equipment to your pricebook

  8. Memberships

    30

    23 read · 7 write · 0 destructive

    Provides export feed for invoice templates · Provides export feed for customer membership status changes · Provides export feed for membership types · Provides export feed for customer memberships

17 more areas · 154 actions
  • Sales 25
  • Settings 22
  • Equipment systems 19
  • Marketing 16
  • Timesheets 12
  • Findings 10
  • Reporting 8
  • Telecom 8
  • Marketing ads 7
  • Scheduling pro 5
  • Task management 5
  • Customer interactions 4
  • Forms 4
  • Service agreements 4
  • Fleet pro 3
  • Job booking 1
  • Marketing reputation 1

Top actions

The ServiceTitan API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 90 of ServiceTitan's 90 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
servicetitan.invoices.listRetrieves a list of invoices. By default, all invoices will be returned regardless of status.Retrieves a list of invoices. By default, all invoices will be returned regardless of status.readfinance.invoice.list101 connectors
servicetitan.payments.listGets a paginated list of paymentsGets a paginated list of payments.readfinance.payment.list75 connectors
servicetitan.estimates.listEstimates GetListEstimates GetList.readfinance.quote.list52 connectors
servicetitan.purchase_orders.listGet a list of purchase ordersGet a list of purchase orders.readfinance.purchase_order.list45 connectors
servicetitan.contacts.listGets a list of contactsGets a list of contacts.readcrm.contact.list177 connectors
servicetitan.customers.listGets a list of CustomersGets a list of Customers.readcrm.company.list162 connectors
servicetitan.technicians.listGets a list of techniciansGets a list of technicians.readidentity.user.list474 connectors
servicetitan.locations.listGets a list of locationsGets a list of locations.readcrm.location.list48 connectors
servicetitan.invoices.createcreate adjustment invoicecreate adjustment invoice.writefinance.invoice.create74 connectors
servicetitan.estimates.createEstimates CreateEstimates Create.writefinance.quote.create52 connectors
servicetitan.purchase_orders.createCreate a new purchase orderCreate a new purchase order.writefinance.purchase_order.create43 connectors
servicetitan.contacts.deleteDeletes a contactDeletes a contact.destructivecrm.contact.delete147 connectors

Try it

Prompts to paste into Claude.

Each one names the ServiceTitan actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which ServiceTitan invoices are more than 30 days overdue? Group them by customer with the total owed.

    callsservicetitan.invoices.list

  2. Writewrite

    create adjustment invoice in ServiceTitan. Show me exactly what you will send before you save it.

    callsservicetitan.invoices.create

  3. Across systemsread

    For each customer, how many invoices are in ServiceTitan and how many tickets in ConnectWise PSA?

    callsservicetitan.invoices.listconnectwise_manage.tickets.list

Across your systems

ServiceTitan, joined to the rest of your business.

One ask fetches from ServiceTitan and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

  • For each customer, how many invoices are in ServiceTitan and how many tickets in ConnectWise PSA?

    servicetitan.invoices.list + connectwise_manage.tickets.list, on crm.company · ConnectWise PSA

  • For each customer, how many invoices are in ServiceTitan and how many tickets in HubSpot CRM?

    servicetitan.invoices.list + hubspot_crm.tickets.list, on crm.company · HubSpot CRM

Also mapped by other connectorsidentity.user 517crm.company 227crm.contact 192work.project 116work.task 105finance.invoice 91hr.employee 63service.ticket 62
ask
ask {  intent: "for each customer, how many invoices are in ServiceTitan and how many tickets in ConnectWise PSA",  steps: [    { action: "servicetitan.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 },    { action: "connectwise_manage.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 },    { join: {        left: "inv",        right: "tix",        on: "crm.company",        group_by: "inv.company_name",        select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for ServiceTitan

Destructive actions wait for a yes.

42 ServiceTitan actions are destructive. The first 10:

  • Deletes a contactservicetitan.contacts.delete
  • Deletes journal entry, supports only for external journal entry records.servicetitan.journal_entries.delete
  • Deletes appointment with specified id.servicetitan.appointments.delete
  • Deletes the specified activityservicetitan.activities.delete
  • Remove multiple tags to more than 1 customerservicetitan.tags.delete
  • Delete teamservicetitan.teams.delete
  • Deletes a zoneservicetitan.zones.delete
  • Deletes a service from your pricebookservicetitan.services.delete
  • Deletes equipment from your pricebookservicetitan.equipment.delete
  • Deletes a material from your pricebookservicetitan.materials.delete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

doservicetitan.contacts.deleteconfirm_policy: human

Deletes a contact?

intent: the user asked me to deletes a contact

run suspended · waiting for a named person · key servicetitan-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "servicetitan-agent",  allowed_actions: ["servicetitan.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "servicetitan.contacts.delete", approver: "[email protected]" },    { match: "servicetitan.journal_entries.delete", approver: "[email protected]" },    { match: "servicetitan.appointments.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to ServiceTitan only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What ServiceTitan costs on actionlake.

Every ServiceTitan action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call ServiceTitan refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 591 ServiceTitan actions
  • 591actions pageeach page of a long list is one call
  • 331reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every ServiceTitan action.

591 actions by area: the id your agent calls, what it does, and its effect.

CRM86
  • servicetitan.contacts.listGets a list of contactsread
  • servicetitan.customers.listGets a list of Customersread
  • servicetitan.leads.listGets a list of leadsread
  • servicetitan.locations.listGets a list of locationsread
  • servicetitan.booking_provider_bookings.createCreates a booking for a booking providerwrite
  • servicetitan.booking_provider_bookings.dismissBookings DismissBookingwrite
  • and 80 more in this area
Accounting76
  • servicetitan.invoices.createcreate adjustment invoicewrite
  • servicetitan.invoices.listRetrieves a list of invoices. By default, all invoices will be returned regardless of status.read
  • servicetitan.invoices.updateupdate invoicewrite
  • servicetitan.payments.listGets a paginated list of paymentsread
  • servicetitan.ap_bills.getReturns a single AP bill by its unique identifier with complete details including items, expense items, and associated metadataread
  • servicetitan.ap_bills.listReturns a paginated list of AP bills with detailed item information, filtering capabilities, and associated metadataread
  • and 70 more in this area
JPM75
  • servicetitan.appointments.listGets a list of appointmentsread
  • servicetitan.jobs.listGets a list of jobsread
  • servicetitan.projects.createCreates a New Projectwrite
  • servicetitan.projects.listGets a list of projectsread
  • servicetitan.appointments.createAdds a new appointment to an existing jobwrite
  • servicetitan.appointments.deleteDeletes appointment with specified id.destructive
  • and 69 more in this area
Inventory53
  • servicetitan.purchase_orders.createCreate a new purchase orderwrite
  • servicetitan.purchase_orders.getGet purchase order by Idread
  • servicetitan.purchase_orders.listGet a list of purchase ordersread
  • servicetitan.vendors.listGet a list of vendorsread
  • servicetitan.adjustments.createCreate a new adjustmentwrite
  • servicetitan.adjustments.listGet a list of inventory adjustmentsread
  • and 47 more in this area
Dispatch41
  • servicetitan.appointment_assignments.assign_techniciansAssigns the list of technicians to the appointmentwrite
  • servicetitan.appointment_assignments.listGets a list of appointment assignmentsread
  • servicetitan.appointment_assignments.unassign_techniciansUnassigns the list of technicians from the appointmentwrite
  • servicetitan.arrival_windows.createArrivalWindows Createwrite
  • servicetitan.arrival_windows.activatedArrivalWindows Activatedwrite
  • servicetitan.arrival_windows.getArrivalWindows Getread
  • and 35 more in this area
Payroll38
  • servicetitan.activity_codes.listGets a list of payroll activity codesread
  • servicetitan.employees_payrolls.listGets a list of employee payrollsread
  • servicetitan.export_activity_codes.listProvides export feed for activity codesread
  • servicetitan.export_gross_pay_items.listProvides export feed for gross pay itemsread
  • servicetitan.activity_codes.getGets payroll activity code specified by IDread
  • servicetitan.employees_payroll_settings.getGets the employee payroll settingsread
  • and 32 more in this area
Pricebook38
  • servicetitan.clientspecificpricing.listClientSpecificPricing GetAllRateSheetsread
  • servicetitan.discounts_and_fees.createPost to add a new discount or fee to your pricebookwrite
  • servicetitan.discounts_and_fees.listGet data on all of the discounts or fees in the pricebook. Supports optional search filtering.read
  • servicetitan.equipment.createPost to add new equipment to your pricebookwrite
  • servicetitan.clientspecificpricing.updateClientSpecificPricing UpdateRateSheetwrite
  • servicetitan.discounts_and_fees.deleteDeletes a discount or fee from your pricebookdestructive
  • and 32 more in this area
Memberships30
  • servicetitan.export_invoice_templates.listProvides export feed for invoice templatesread
  • servicetitan.export_membership_status_changes.listProvides export feed for customer membership status changesread
  • servicetitan.export_membership_types.listProvides export feed for membership typesread
  • servicetitan.export_memberships.listProvides export feed for customer membershipsread
  • servicetitan.export_recurring_service_events.listProvides export feed for recurring service eventsread
  • servicetitan.export_recurring_service_types.listProvides export feed for recurring service typesread
  • and 24 more in this area
Sales25
  • servicetitan.estimates.createEstimates Createwrite
  • servicetitan.estimates.getEstimates Getread
  • servicetitan.estimates.listEstimates GetListread
  • servicetitan.estimates.updateEstimates Updatewrite
  • servicetitan.contracts.listGets contracts owned by a job with their current statuses.read
  • servicetitan.estimate_templates.createCreates a new estimate template.write
  • and 19 more in this area
Settings22
  • servicetitan.employees.listGets a list of employeesread
  • servicetitan.technicians.createCreates new technicianwrite
  • servicetitan.technicians.getGets a technician by IDread
  • servicetitan.technicians.listGets a list of techniciansread
  • servicetitan.business_units.getGets a business unit by IDread
  • servicetitan.business_units.listGets a list of business unitsread
  • and 16 more in this area
Equipment systems19
  • servicetitan.installed_equipment.createInstalledEquipment Createwrite
  • servicetitan.installed_equipment.getInstalledEquipment Getread
  • servicetitan.installed_equipment.listInstalledEquipment GetListread
  • servicetitan.installed_equipment.updateInstalledEquipment Updatewrite
  • servicetitan.equipment_systems.createCreates a new equipment systemwrite
  • servicetitan.equipment_systems.deleteDeletes an equipment system specified by IDdestructive
  • and 13 more in this area
Marketing16
  • servicetitan.campaigns.createCreates new campaignwrite
  • servicetitan.campaigns.listGets a paginated list of campaignsread
  • servicetitan.campaigns_costs.listGets a paginated list of campaign costsread
  • servicetitan.costs.createCreates new campaign costwrite
  • servicetitan.costs.listGets a paginated list of campaign costsread
  • servicetitan.campaign_cost_summary.getCampaignCostSummary Getread
  • and 10 more in this area
Timesheets12
  • servicetitan.activities.createCreates new activitywrite
  • servicetitan.activities.getGets activity specified by IDread
  • servicetitan.activities.listGets a list of activitiesread
  • servicetitan.activities.updateUpdates the specified activitywrite
  • servicetitan.activities.deleteDeletes the specified activitydestructive
  • servicetitan.activity_categories.getGets activity category specified by IDread
  • and 6 more in this area
Findings10
  • servicetitan.location_findings.createCreates a new finding to document an issue or observation at a customer locationwrite
  • servicetitan.location_findings.listGets a list of findingsread
  • servicetitan.location_findings_attachments.createCreates a new attachment for a findingwrite
  • servicetitan.location_findings_attachments.listGets a paginated list of attachments for a findingread
  • servicetitan.finding_assets.getDownloads an asset by path. Redirects to a temporary download URLread
  • servicetitan.location_findings.getGets finding specified by IDread
  • and 4 more in this area
Reporting8
  • servicetitan.report_categories.listList categories for existing reportsread
  • servicetitan.report_category_reports.get_dataGet report data. The result is based on current report description which isn't constant in general. Beware that report columns may be changed. Result field nam…read
  • servicetitan.report_category_reports.listList reports within given categoryread
  • servicetitan.report_category_reports_data.start_queryStart a long-running report data query. Returns 200 with the report payload streamed straight from the result blob if the query completes within the inline tim…read
  • servicetitan.data_queries.deleteCancel a long-running report data query. The associated background task (if any) is signalled to stop and the token is released, freeing the per-tenant slot. A…destructive
  • servicetitan.data_queries.getPoll the result of a long-running report data query. On Success, the gzipped JSON blob is streamed directly to the client (gzip pass-through when the client ac…read
  • and 2 more in this area
Telecom8
  • servicetitan.calls.getGet call's details.read
  • servicetitan.calls.listProvides a feed for telecom callsread
  • servicetitan.calls.list_v2Get filtered calls.read
  • servicetitan.calls.updateUpdate existing call.write
  • servicetitan.export_calls.listProvides export feed for telecom callsread
  • servicetitan.optinouts_optouts.createAdds opt-outs for the specified phone numberswrite
  • and 2 more in this area
Marketing ads7
  • servicetitan.attributed_leads.listReturns attributed leads data.read
  • servicetitan.capacity_warnings.listReturns all capacity awareness warnings.read
  • servicetitan.external_call_attributions.createAttributes an external call (possibly coming from Call Tracking Software) to a web session.write
  • servicetitan.job_attributions.createAttributes a job to a web session.write
  • servicetitan.performance.listReturns performance data.read
  • servicetitan.web_booking_attributions.createAttributes a web booking to a web session.write
  • and 1 more in this area
Scheduling pro5
  • servicetitan.routers_performance.getProvides performance data for routerread
  • servicetitan.routers_sessions.listGets a paginated list of sessions for routerread
  • servicetitan.schedulers.listGets a list of schedulersread
  • servicetitan.schedulers_sessions.listGets a paginated list of sessions for schedulerread
  • servicetitan.schedulers_performance.getProvides performance data for schedulerread
Task management5
  • servicetitan.tasks.createTasks Createwrite
  • servicetitan.tasks.getGet a Task by Idread
  • servicetitan.tasks.listGet a list of tasksread
  • servicetitan.tasks.subtasksTasks CreateSubtaskwrite
  • servicetitan.task_management_data.getClientSideData Getread
Customer interactions4
  • servicetitan.export_technician_ratings.listProvides export feed for technician ratingsread
  • servicetitan.technician_rating_technician_job.updateAdd a rating for the specified technician, tied to the specific job. If the rating already exists for that technician/ job combination, update it with the new…write
  • servicetitan.technician_ratings.createAdd a rating for the specified technician, tied to the specific job. If the rating already exists for that technician/ job combination, update it with the new…write
  • servicetitan.technician_ratings.listGets a list of technician ratingsread
Forms4
  • servicetitan.forms.listRetrieve Form dataread
  • servicetitan.jobs_attachments.deleteDeletes a specified job attachment.destructive
  • servicetitan.jobs_attachments.getGets Attachments on the specified Jobread
  • servicetitan.submissions.listRetrieve Form Submission Dataread
Service agreements4
  • servicetitan.export_service_agreements.listProvides export feed for service agreementsread
  • servicetitan.service_agreements.getGets service agreement specified by IDread
  • servicetitan.service_agreements.listGets a list of service agreementsread
  • servicetitan.service_agreements_custom_fields.listGets a list of custom field types for service agreementsread
Fleet pro3
  • servicetitan.fleet_pro_events.queryRetrieves paginated Event data specifically for historical records older than 7 days.read
  • servicetitan.fleet_pro_gps.queryRetrieves paginated GPS data specifically for historical records older than 7 days.read
  • servicetitan.vehicles.listRetrieves a list of all FleetPro vehicles for the current tenant.read
Job booking1
  • servicetitan.call_reasons.listGets a list of call reasonsread
Marketing reputation1
  • servicetitan.reviews.listreviewsread

This index shows a sample of each area. All 591 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.

Questions

The ServiceTitan MCP server, answered.

Is there a ServiceTitan MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 591 ServiceTitan actions across CRM, accounting, JPM and inventory, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by ServiceTitan.

What do I need to connect ServiceTitan?

ServiceTitan client ID: in ServiceTitan go to Settings > Integrations > API Application Access, connect your… and ServiceTitan client secret (shown once when generated for the tenant). Plus your app key and your tenant id. The free call account { op: "connections.requirements", service: "servicetitan" } lists exactly what to paste.

Can an AI agent delete or change things in ServiceTitan?

Only if its key allows it, and only with an explicit confirmation. 42 ServiceTitan actions are destructive, including deletes a contact, deletes journal entry, supports only for external journal entry records. and deletes appointment with specified id.. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my ServiceTitan API limit?

actionlake paces every call to the limits in the ServiceTitan service file: 60 calls a second per connection. Repeated reads are answered from cache (331 ServiceTitan actions can be), which never reaches ServiceTitan.

What does a ServiceTitan action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (591 ServiceTitan actions page). Cache hits, searches, dry runs and calls ServiceTitan refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which ServiceTitan API does it cover?

The ServiceTitan (field service management: CRM, jobs, dispatch, pricebook, accounting, payroll) API ServiceTitan v2 tenant APIs (25 module OpenAPI 3.1 documents, 602 operations) at api.servicetitan.io. It is built from ServiceTitan's documentation as read on 22 October 2026. 591 actions in 25 areas, each one in the signed service file (version 1.0.0).

Can I combine ServiceTitan with my other systems?

Yes. ask joins ServiceTitan to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. ServiceTitan maps crm.company, which 227 other connectors also map.

Does actionlake keep my ServiceTitan data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your ServiceTitan credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent ServiceTitan today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.