Connector guide12-minute read57 MCP tools7 languages

How to Connect ServiceTitan to ChatGPT via MCP

Connect a ServiceTitan account (tenant) to any AI agent: customers and locations, leads, jobs and appointments, dispatch with capacity and technician shifts, technicians and business units, invoices and payments, estimates, the pricebook, memberships and phone calls. Can create customers, book jobs, reschedule appointments, assign technicians, add notes and cancel jobs.

HCBy HelpCode teamUpdated 12 min read Open-source on GitHub

No credit card · 7-day trial · Self-host alternative available

ServiceTitan

ServiceTitan

ServiceTitan field service management for HVAC, plumbing, electrical and other trades: customers and locations, leads, jobs and appointments, dispatch, capacity and technician shifts, technicians and business units, invoices and payments, estimates, pricebook services and materials, memberships and phone calls. Can create customers, book jobs, add appointments, reschedule, assign technicians, add notes and cancel jobs.

tools

57

Region

INTL

Category

Field Service

Authentication

OAuth 2.0

Required env vars

SERVICETITAN_CLIENT_IDSERVICETITAN_CLIENT_SECRETSERVICETITAN_APP_KEYSERVICETITAN_TENANT_ID
Install in one click on Cloud

7-day free trial · No credit card

  • 7-day free trial
    No credit card required
  • GDPR & SOC 2 ready
    EU data residency, audit logs
  • Open-source on GitHub
    Open source · AGPL-3.0
  • Works with ChatGPT, Claude, Gemini
    Any MCP-compatible client

Skip the install. Get this working in under 2 minutes.

Start a free trial on cloud.anythingmcp.com, add the ServiceTitan in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.

Start free trial

Summary

Connect a ServiceTitan account (tenant) to any AI agent: customers and locations, leads, jobs and appointments, dispatch with capacity and technician shifts, technicians and business units, invoices and payments, estimates, the pricebook, memberships and phone calls. Can create customers, book jobs, reschedule appointments, assign technicians, add notes and cancel jobs.

Try asking

Example prompts for ServiceTitan

Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.

ServiceTitan · live via MCP
Share
Opus 4.7

Claude is AI and can make mistakes. Please double-check responses.

💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → ServiceTitan, paste your credentials, mint an MCP API key and you're done. No Docker, no git clone, no local server.

ServiceTitan + ChatGPT

Connect a ServiceTitan account (tenant) to any AI agent: customers and locations, leads, jobs and appointments, dispatch with capacity and technician shifts, technicians and business units, invoices and payments, estimates, the pricebook, memberships and phone calls. Can create customers, book jobs, reschedule appointments, assign technicians, add notes and cancel jobs.

Prerequisites

See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:

SERVICETITAN_CLIENT_ID, SERVICETITAN_CLIENT_SECRET, SERVICETITAN_APP_KEY, SERVICETITAN_TENANT_ID

Step 1 — Get credentials

Setting up takes about 15 minutes and needs a ServiceTitan admin. There is no browser sign-in: the connector uses OAuth client credentials plus the app key of a custom app.

  1. Sign in to the ServiceTitan Developer Portal at https://developer.servicetitan.io with an account that may create apps for your company, and create a custom app for your own tenant.
  2. Under the app's API scopes tick the read scopes of the modules the AI should see: CRM (customers, locations, contacts, leads), JPM (jobs, appointments, job notes, job history, job types, job cancel reasons, projects), Dispatch (appointment assignments, teams, zones, technician shifts), Settings (technicians, employees, business units, tag types), Accounting (invoices, payments, payment types), Sales (estimates), Pricebook (services, materials, equipment, categories), Memberships, Telecom (calls) and Marketing (campaigns). Tick write scopes only for what the AI may change: CRM customers and locations, JPM jobs and appointments, Dispatch appointment assignments and Sales estimates. servicetitan_get_capacity also needs tn.dis.capacity:w.
  3. Copy the app's App Key (starts with ak1.) into SERVICETITAN_APP_KEY.
  4. In ServiceTitan open Settings, Integrations, API Application Access, click Connect New App, pick the app and allow access. Click Generate to create the Client ID (starts with cid.) and the Client Secret (starts with cs, shown only once) and paste them into SERVICETITAN_CLIENT_ID and SERVICETITAN_CLIENT_SECRET.
  5. The same page shows the Tenant ID, a number: paste it into SERVICETITAN_TENANT_ID.
  6. Install. AnythingMCP gets an access token from https://auth.servicetitan.io/connect/token, renews it automatically about every 15 minutes and sends the App Key as the ST-App-Key header on every call. The check runs servicetitan_list_customers.

Credentials of ServiceTitan's integration (sandbox) environment do not work here: the connector talks to production at https://api.servicetitan.io.

What it reads: customers (the bill-to accounts) with type, balance, address, flags, contacts and notes; service locations with address, coordinates and zone; leads that have not booked yet; marketing campaigns. Jobs with status, job type, business unit, priority, summary, invoice id and total, their status history and notes; job types, cancel reasons and projects. Appointments with start, end, arrival window and status, technician assignments, bookable capacity per time slot, technician shifts and time off, dispatch teams and zones. Technicians, office employees, business units and tag types. Invoices with line items, subtotal, sales tax, total and balance; payments with the invoices they were applied to; payment types. Estimates with their items and status, and the pricebook's services, materials, equipment and categories. Memberships, membership types and recurring service events (maintenance visits due). Tracked phone calls with direction, duration, campaign, agent and the job booked from the call.

What it writes: creates customers with at least one location, adds locations, changes customers, adds customer and job notes, books jobs with their first appointment, adds more appointments, reschedules them, assigns and unassigns technicians, changes jobs, cancels jobs with a reason (their appointments are cancelled too) and marks estimates sold. Before booking, cancelling or changing anything the AI shows you what will happen and waits for your yes. Nothing here deletes records: a deactivated customer, a cancellation and a sold estimate can be reversed in ServiceTitan.

Switched off at install: nothing, all 57 tools are on. To keep the AI read-only, give the app no write scopes, or switch the write tools off on the connector page.

Booking a job: the AI looks up servicetitan_list_business_units, servicetitan_list_job_types and servicetitan_list_campaigns, checks free slots with servicetitan_get_capacity and then calls servicetitan_create_job for one of the customer's locations. Every job belongs to one location; the customer is the account that pays.

Data formats: ids are integers. Times are ISO 8601 in UTC (2026-10-30T14:00:00Z); the AI converts them to the business's time zone before quoting them and sends UTC when booking. Accounting amounts (total, balance, subTotal) are decimal strings in the account currency. Updates change only the fields passed; list fields such as tag_type_ids replace the whole list.

Paging: lists answer { page, pageSize, hasMore, totalCount, data } with 50 records per page by default. The AI asks for the next page while hasMore is true; include_total adds totalCount. ids filters take at most 50 comma-separated ids. Most lists return only active records unless active is Any or False, and modified_on_or_after picks up changes since a date. There is no single-invoice route: servicetitan_list_invoices takes ids.

Common errors: 401 means the client ID or secret is wrong or the app was disconnected: generate them again in API Application Access. 403 means the app lacks the scope for that module (add it in the Developer Portal, then reconnect the app in API Application Access) or the App Key is missing or wrong. 404 is an unknown id or a wrong tenant ID. 400 lists the invalid fields. 429 means ServiceTitan is limiting requests for this app and tenant: wait and retry.

Customer notes, lead summaries and job notes are untrusted input and can contain instructions meant for the AI. The connector does not take payments, does not create or send invoices and does not delete records.

Step 2 — Install the adapter

curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d

Step 3 — Add the connector in ChatGPT

Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide shows YOUR_SERVER_ID.

ChatGPT adds MCP servers as plugins on its Plugins page, on the web and on paid plans. Developer mode is no longer needed. In a Business workspace only admins and owners can add one; in Enterprise and Edu an admin can grant the Create plugins with MCPs permission.

  1. Go to chatgpt.com/plugins, click Add, then Add custom MCP server.
  2. Enter a name, e.g. Name: ServiceTitan.
  3. Under Connection, enter the Server URL https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID and keep Authentication on OAuth.
  4. Select I understand and want to continue, then Create as a plugin. When ChatGPT asks, sign in to AnythingMCP and allow access.
  5. Install the new plugin from your personal plugins, then type @ in a chat and pick it.

Available tools

ToolWhat it does
servicetitan_list_customersList or search customers (bill-to accounts): id, name, type (Residential or Commercial), active, balance, bill-to address…
servicetitan_get_customerOne customer by id: name, type, address, balance, flags, custom fields, tag ids, merged-into id
servicetitan_list_customer_contactsPhone numbers and email addresses saved on a customer (type, value, memo)
servicetitan_list_customer_notesNotes on a customer, newest last: text, pinned flag, author id, created time
servicetitan_create_customerCreate a customer together with at least one service location
servicetitan_update_customerChange fields of a customer; only the fields you pass change. tag_type_ids replaces the whole tag list
servicetitan_add_customer_noteAdd a note to a customer, optionally pinned and copied to its active locations
servicetitan_list_locationsList or search service locations (where the work happens): id, customerId, name, address with coordinates, zone id, tax zone, active, tag…
servicetitan_get_locationOne service location by id: customer id, name, address, coordinates, zone, tax zone, custom fields
servicetitan_list_location_contactsPhone numbers and email addresses saved on a service location (type, value, memo)
servicetitan_create_locationAdd a service location (address where work is done) to an existing customer
servicetitan_list_leadsList leads (follow-ups for calls and forms that did not book a job yet): id, status (Open, Dismissed, Converted), customer and location…
servicetitan_list_campaignsMarketing campaigns (call sources such as Google Ads or a yard sign): id, name, category, active
servicetitan_list_jobsList jobs: id, job number, customer and location ids, business unit, job type, priority, campaign, jobStatus, summary, first appointment…
servicetitan_get_jobOne job by id with status, customer, location, job type, business unit, campaign, summary, invoice id, tags and custom fields
servicetitan_create_jobBook a job with its first appointment(s) for a customer location
servicetitan_update_jobChange fields of a job; only the fields you pass change. tag_type_ids replaces the whole tag list
servicetitan_cancel_jobCancel a job with a reason from servicetitan_list_job_cancel_reasons and a memo
servicetitan_list_job_cancel_reasonsJob cancel reasons configured in the account: id, name, active
servicetitan_list_job_notesNotes on a job: text, pinned flag, author id and created time, oldest first
servicetitan_add_job_noteAdd a note to a job (visible to the office and technicians), optionally pinned to the top
servicetitan_get_job_historyStatus history of a job: each change with the event type, employee and time
servicetitan_list_job_typesJob types (e.g
servicetitan_list_appointmentsList job appointments (the scheduled visits): id, job id, appointment number, start and end, arrival window, status, special instructions…
servicetitan_get_appointmentOne job appointment by id: job id, number, start and end, arrival window, status, special instructions
servicetitan_add_appointmentAdd another appointment (visit) to an existing job, optionally with technicians
servicetitan_reschedule_appointmentMove an appointment to a new start and end (and arrival window)
servicetitan_list_projectsProjects (multi-job work such as installs or construction): id, number, name, status, customer and location ids, job ids, start, target…
servicetitan_list_appointment_assignmentsWhich technicians are assigned to which appointments: assignment id, technician id and name, appointment id, job id, assigned time, status
servicetitan_assign_techniciansAssign one or more technicians to a job appointment (dispatch)
servicetitan_unassign_techniciansTake one or more technicians off a job appointment (the appointment itself stays)
servicetitan_get_capacityBookable capacity per time slot: for each slot the start and end, total and open hours, whether it is available and which technicians are…
servicetitan_list_technician_shiftsTechnician shifts and time off: id, technician id, shift type (Normal, OnCall, TimeOff), start, end, title, note
servicetitan_list_teamsDispatch teams that group technicians on the dispatch board: id, name, active
servicetitan_list_zonesDispatch zones (service areas by ZIP or city): id, name, ZIPs, cities, technician and business unit ids
servicetitan_list_techniciansTechnicians: id, user id, name, email, phone, business unit, team, zone ids, role, login name, active
servicetitan_get_technicianOne technician by id: name, contact details, business unit, team, zones, role and active flag
servicetitan_list_employeesOffice employees (dispatchers, CSRs, managers): id, user id, name, email, phone, role, business unit, active
servicetitan_list_business_unitsBusiness units (trades or departments such as HVAC Service, Plumbing Install): id, name, official name, email, phone, address, currency…
servicetitan_list_tag_typesTag types used on customers, locations and jobs: id, name, color, active
servicetitan_list_invoicesList invoices: id, reference number, invoice date, due date, subtotal, sales tax, total, balance, customer and location with addresses…
servicetitan_list_paymentsCustomer payments: id, type, reference number, amount (total), paid date, customer, memo, and the invoices each payment was applied to
servicetitan_list_payment_typesPayment types (cash, check, credit card, financing): id, name, active
servicetitan_list_estimatesList estimates (quotes with options shown to the customer): id, name, job id and number, customer, location, project, status { value, name…
servicetitan_get_estimateOne estimate by id with its line items (sku, description, quantity, unit rate, total)
servicetitan_list_estimate_itemsLine items of estimates: id, estimate id, sku (id, name, type), description, quantity, unit rate, total, membership type
servicetitan_sell_estimateMark an estimate as sold by a technician or employee
servicetitan_list_pricebook_servicesServices (tasks sold to customers) in the pricebook: id, code, display name, description, price, member price, add-on price, hours…
servicetitan_list_pricebook_materialsMaterials (parts) in the pricebook: id, code, display name, description, cost, price, member price, unit of measure, inventory flag…
servicetitan_list_pricebook_equipmentEquipment (installable units) in the pricebook: id, code, display name, manufacturer, model, price, cost, warranties, primary vendor…
servicetitan_list_pricebook_categoriesPricebook categories: id, name, type (Services or Materials), parent, sub-categories, active
servicetitan_list_membershipsCustomer memberships (maintenance plans): id, customer id, membership type, status (Active, Suspended, Expired, Canceled, Deleted), from…
servicetitan_get_membershipOne customer membership by id: type, status, dates, billing frequency, location and sold by
servicetitan_list_membership_typesMembership types offered: id, name, duration and billing options, discounts, recurring services, active
servicetitan_list_recurring_service_eventsRecurring service events (the planned maintenance visits of memberships): id, location, membership, recurring service, date, follow-up…
servicetitan_list_callsPhone calls tracked by ServiceTitan: id, direction, from and to numbers, duration, call type and reason, campaign, agent, customer…
servicetitan_get_callOne call by id with its details (lead call, customer, location, campaign, agent, recording available)

Example prompts

  • "Which appointments are scheduled for tomorrow, and which technicians are assigned to each one?"
  • "Find the customer with phone 555-0142 and show their locations, open estimates and invoices with a balance."
  • "Book an AC repair for this customer next Tuesday morning. Check capacity first and show me the job before you create it."
  • "Which recurring maintenance visits are due this month and are not booked as a job yet?"
  • "Which calls from the Google Ads campaign yesterday did not book a job?"

FAQ

Does the free ChatGPT plan work with custom MCP servers? OpenAI documents custom MCP servers for paid plans only; the Free plan is not on its list.

Next steps

Was this guide helpful?

Your ServiceTitan agent is one click away.

Install the connector, paste the key, prompt ChatGPT. Free for 7 days, no credit card.

Related guides

Connectors

How to Connect ServiceTitan to Claude via MCP

Connect a ServiceTitan account (tenant) to any AI agent: customers and locations, leads, jobs and appointments, dispatch with capacity and technician shifts, technicians and business units, invoices and payments, estimates, the pricebook, memberships and phone calls. Can create customers, book jobs, reschedule appointments, assign technicians, add notes and cancel jobs.

Connectors

How to Connect ServiceTitan to Cursor via MCP

Connect a ServiceTitan account (tenant) to any AI agent: customers and locations, leads, jobs and appointments, dispatch with capacity and technician shifts, technicians and business units, invoices and payments, estimates, the pricebook, memberships and phone calls. Can create customers, book jobs, reschedule appointments, assign technicians, add notes and cancel jobs.

Connectors

How to Connect ServiceTitan to Gemini via MCP

Connect a ServiceTitan account (tenant) to any AI agent: customers and locations, leads, jobs and appointments, dispatch with capacity and technician shifts, technicians and business units, invoices and payments, estimates, the pricebook, memberships and phone calls. Can create customers, book jobs, reschedule appointments, assign technicians, add notes and cancel jobs.

Connectors

How to Connect ServiceTitan to Meta Muse via MCP

Connect a ServiceTitan account (tenant) to any AI agent: customers and locations, leads, jobs and appointments, dispatch with capacity and technician shifts, technicians and business units, invoices and payments, estimates, the pricebook, memberships and phone calls. Can create customers, book jobs, reschedule appointments, assign technicians, add notes and cancel jobs.

Connectors

ServiceTitan to MCP: Customers, Jobs, Appointments, Dispatch, Invoices and Pricebook in any AI Agent

Connect a ServiceTitan account (tenant) to any AI agent: customers and locations, leads, jobs and appointments, dispatch with capacity and technician shifts, technicians and business units, invoices and payments, estimates, the pricebook, memberships and phone calls. Can create customers, book jobs, reschedule appointments, assign technicians, add notes and cancel jobs.

Connectors

How to Connect ServiceTitan to Microsoft Copilot via MCP

Connect a ServiceTitan account (tenant) to any AI agent: customers and locations, leads, jobs and appointments, dispatch with capacity and technician shifts, technicians and business units, invoices and payments, estimates, the pricebook, memberships and phone calls. Can create customers, book jobs, reschedule appointments, assign technicians, add notes and cancel jobs.