Salta l'installazione. Attivo in meno di 2 minuti.
Avvia una prova gratuita su cloud.anythingmcp.com, aggiungi ServiceTitan con un clic, poi punta il tuo client AI (Claude, ChatGPT, Copilot o Cursor) all'endpoint MCP generato. Niente Docker, niente git clone, nessuna esperienza di sviluppo richiesta.
In breve
Collega un account ServiceTitan (tenant) a qualsiasi agente AI: clienti e sedi, lead, lavori e appuntamenti, dispatch con capacità e turni dei tecnici, tecnici e business unit, fatture e pagamenti, preventivi, il listino (pricebook), abbonamenti e chiamate. Può creare clienti, prenotare lavori, spostare appuntamenti, assegnare tecnici, aggiungere note e annullare lavori.
Prova a chiedere
Prompt di esempio per ServiceTitan
Clicca su un prompt per copiarlo. Incollalo in Claude, ChatGPT, Cursor, Gemini, Copilot o OpenClaw per eseguirlo contro questo connettore.
Claude è un'AI e può sbagliare. Verifica sempre le risposte.
💡 Niente installazione? Vai direttamente su cloud.anythingmcp.com. Accedi, clicca Connectors → ServiceTitan, inserisci le credenziali, genera una MCP API key e hai finito. Niente Docker, niente
git clone, niente server locale.
ServiceTitan + Cursor
Collega un account ServiceTitan (tenant) a qualsiasi agente AI: clienti e sedi, lead, lavori e appuntamenti, dispatch con capacità e turni dei tecnici, tecnici e business unit, fatture e pagamenti, preventivi, il listino (pricebook), abbonamenti e chiamate. Può creare clienti, prenotare lavori, spostare appuntamenti, assegnare tecnici, aggiungere note e annullare lavori.
Prerequisiti
Le istruzioni di setup complete sono incluse nel connettore stesso (visibili nello store quando lo selezioni). Le variabili d'ambiente richieste sono:
SERVICETITAN_CLIENT_ID, SERVICETITAN_CLIENT_SECRET, SERVICETITAN_APP_KEY, SERVICETITAN_TENANT_ID
Step 1 — Ottieni le credenziali
La configurazione richiede circa 15 minuti e un admin di ServiceTitan. Non c'è un accesso dal browser: il connettore usa le OAuth client credentials più l'app key di una custom app.
- Accedi al ServiceTitan Developer Portal su https://developer.servicetitan.io con un account che può creare app per la tua azienda e crea una custom app per il tuo tenant.
- Negli API scope dell'app spunta gli scope di lettura dei moduli che l'AI deve vedere: CRM (clienti, sedi, contatti, lead), JPM (lavori, appuntamenti, note dei lavori, storico, tipi di lavoro, motivi di annullamento, progetti), Dispatch (assegnazioni degli appuntamenti, team, zone, turni dei tecnici), Settings (tecnici, dipendenti, business unit, tipi di tag), Accounting (fatture, pagamenti, tipi di pagamento), Sales (preventivi), Pricebook (servizi, materiali, apparecchiature, categorie), Memberships, Telecom (chiamate) e Marketing (campagne). Spunta gli scope di scrittura solo per ciò che l'AI può modificare: clienti e sedi del CRM, lavori e appuntamenti del JPM, assegnazioni del Dispatch e preventivi di Sales.
servicetitan_get_capacityrichiede anchetn.dis.capacity:w. - Copia l'App Key dell'app (inizia con
ak1.) inSERVICETITAN_APP_KEY. - In ServiceTitan apri Settings, Integrations, API Application Access, clicca Connect New App, scegli l'app e consenti l'accesso. Clicca Generate per creare il Client ID (inizia con
cid.) e il Client Secret (inizia concs, mostrato una sola volta) e incollali inSERVICETITAN_CLIENT_IDeSERVICETITAN_CLIENT_SECRET. - La stessa pagina mostra il Tenant ID, un numero: incollalo in
SERVICETITAN_TENANT_ID. - Installa. AnythingMCP ottiene un token di accesso da
https://auth.servicetitan.io/connect/token, lo rinnova da solo circa ogni 15 minuti e invia l'App Key come headerST-App-Keya ogni chiamata. La verifica esegueservicetitan_list_customers.
Le credenziali dell'ambiente integration (sandbox) di ServiceTitan qui non funzionano: il connettore parla con la produzione su https://api.servicetitan.io.
Cosa legge: i clienti (gli intestatari delle fatture) con tipo, saldo, indirizzo, flag, contatti e note; le sedi di intervento con indirizzo, coordinate e zona; i lead che non hanno ancora prenotato; le campagne di marketing. I lavori con stato, tipo, business unit, priorità, riepilogo, id della fattura e totale, con lo storico degli stati e le note; tipi di lavoro, motivi di annullamento e progetti. Gli appuntamenti con inizio, fine, finestra di arrivo e stato, le assegnazioni dei tecnici, la capacità prenotabile per fascia oraria, i turni e le assenze dei tecnici, i team e le zone di dispatch. Tecnici, dipendenti d'ufficio, business unit e tipi di tag. Le fatture con righe, imponibile, imposta, totale e saldo; i pagamenti con le fatture a cui sono stati applicati; i tipi di pagamento. I preventivi con righe e stato, e servizi, materiali, apparecchiature e categorie del listino. Abbonamenti, tipi di abbonamento ed eventi di servizio ricorrenti (visite di manutenzione in scadenza). Le chiamate tracciate con direzione, durata, campagna, operatore e il lavoro prenotato dalla chiamata.
Cosa scrive: crea clienti con almeno una sede, aggiunge sedi, modifica i clienti, aggiunge note a clienti e lavori, prenota lavori con il primo appuntamento, aggiunge altri appuntamenti, li sposta, assegna e rimuove tecnici, modifica i lavori, annulla lavori con un motivo (anche i loro appuntamenti vengono annullati) e segna i preventivi come venduti. Prima di prenotare, annullare o modificare qualcosa, l'AI ti mostra cosa succederà e aspetta il tuo sì. Nulla qui elimina record: un cliente disattivato, un annullamento e un preventivo venduto si possono ripristinare in ServiceTitan.
Disattivati all'installazione: nessuno, tutti i 57 tool sono attivi. Per tenere l'AI in sola lettura, non dare all'app scope di scrittura oppure disattiva i tool di scrittura nella pagina del connettore.
Prenotare un lavoro: l'AI consulta servicetitan_list_business_units, servicetitan_list_job_types e servicetitan_list_campaigns, verifica le fasce libere con servicetitan_get_capacity e poi chiama servicetitan_create_job per una delle sedi del cliente. Ogni lavoro appartiene a una sola sede; il cliente è l'account che paga.
Formati dei dati: gli id sono numeri interi. Gli orari sono ISO 8601 in UTC (2026-10-30T14:00:00Z); l'AI li converte nel fuso orario dell'azienda prima di citarli e invia UTC quando prenota. Gli importi contabili (total, balance, subTotal) sono stringhe decimali nella valuta dell'account. Gli aggiornamenti cambiano solo i campi passati; i campi elenco come tag_type_ids sostituiscono l'intero elenco.
Paginazione: gli elenchi rispondono { page, pageSize, hasMore, totalCount, data } con 50 record per pagina di default. L'AI chiede la page successiva finché hasMore è true; include_total aggiunge totalCount. I filtri ids accettano al massimo 50 id separati da virgola. La maggior parte degli elenchi restituisce solo record attivi, a meno che active sia Any o False, e modified_on_or_after recupera le modifiche da una data. Non esiste una route per la singola fattura: servicetitan_list_invoices accetta ids.
Errori comuni: 401 significa che client ID o secret sono errati o che l'app è stata scollegata: generali di nuovo in API Application Access. 403 significa che all'app manca lo scope per quel modulo (aggiungilo nel Developer Portal, poi ricollega l'app in API Application Access) oppure che l'App Key manca o è errata. 404 è un id sconosciuto o un tenant ID sbagliato. 400 elenca i campi non validi. 429 significa che ServiceTitan sta limitando le richieste per questa app e questo tenant: attendi e riprova.
Le note dei clienti, i riepiloghi dei lead e le note dei lavori sono input non affidabili e possono contenere istruzioni rivolte all'AI. Il connettore non incassa pagamenti, non crea né invia fatture e non elimina record.
Step 2 — Installa l'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 — Aggiungi il connettore in Cursor
L'URL del tuo server: in AnythingMCP apri MCP Servers → il server su cui si trova questo connettore e copia il suo URL (
https://cloud.anythingmcp.com/mcp/…). Usalo ovunque questa guida mostraYOUR_SERVER_ID.
Cursor legge i server MCP da ~/.cursor/mcp.json. Aggiungi questa voce:
{
"mcpServers": {
"anythingmcp": {
"url": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Crea una chiave API MCP in AnythingMCP da MCP Servers → il tuo server → API keys e incollala al posto di
YOUR_MCP_API_KEY. - Salva il file e riavvia Cursor.
- Apri Cursor → Settings → MCP e verifica che
anythingmcpsia elencato e connesso. - Inizia a chattare: l'agente ora può usare i tool di
ServiceTitan.
Tool disponibili
| Tool | What it does |
|---|---|
servicetitan_list_customers | List or search customers (bill-to accounts): id, name, type (Residential or Commercial), active, balance, bill-to address… |
servicetitan_get_customer | One customer by id: name, type, address, balance, flags, custom fields, tag ids, merged-into id |
servicetitan_list_customer_contacts | Phone numbers and email addresses saved on a customer (type, value, memo) |
servicetitan_list_customer_notes | Notes on a customer, newest last: text, pinned flag, author id, created time |
servicetitan_create_customer | Create a customer together with at least one service location |
servicetitan_update_customer | Change fields of a customer; only the fields you pass change. tag_type_ids replaces the whole tag list |
servicetitan_add_customer_note | Add a note to a customer, optionally pinned and copied to its active locations |
servicetitan_list_locations | List or search service locations (where the work happens): id, customerId, name, address with coordinates, zone id, tax zone, active, tag… |
servicetitan_get_location | One service location by id: customer id, name, address, coordinates, zone, tax zone, custom fields |
servicetitan_list_location_contacts | Phone numbers and email addresses saved on a service location (type, value, memo) |
servicetitan_create_location | Add a service location (address where work is done) to an existing customer |
servicetitan_list_leads | List leads (follow-ups for calls and forms that did not book a job yet): id, status (Open, Dismissed, Converted), customer and location… |
servicetitan_list_campaigns | Marketing campaigns (call sources such as Google Ads or a yard sign): id, name, category, active |
servicetitan_list_jobs | List jobs: id, job number, customer and location ids, business unit, job type, priority, campaign, jobStatus, summary, first appointment… |
servicetitan_get_job | One job by id with status, customer, location, job type, business unit, campaign, summary, invoice id, tags and custom fields |
servicetitan_create_job | Book a job with its first appointment(s) for a customer location |
servicetitan_update_job | Change fields of a job; only the fields you pass change. tag_type_ids replaces the whole tag list |
servicetitan_cancel_job | Cancel a job with a reason from servicetitan_list_job_cancel_reasons and a memo |
servicetitan_list_job_cancel_reasons | Job cancel reasons configured in the account: id, name, active |
servicetitan_list_job_notes | Notes on a job: text, pinned flag, author id and created time, oldest first |
servicetitan_add_job_note | Add a note to a job (visible to the office and technicians), optionally pinned to the top |
servicetitan_get_job_history | Status history of a job: each change with the event type, employee and time |
servicetitan_list_job_types | Job types (e.g |
servicetitan_list_appointments | List job appointments (the scheduled visits): id, job id, appointment number, start and end, arrival window, status, special instructions… |
servicetitan_get_appointment | One job appointment by id: job id, number, start and end, arrival window, status, special instructions |
servicetitan_add_appointment | Add another appointment (visit) to an existing job, optionally with technicians |
servicetitan_reschedule_appointment | Move an appointment to a new start and end (and arrival window) |
servicetitan_list_projects | Projects (multi-job work such as installs or construction): id, number, name, status, customer and location ids, job ids, start, target… |
servicetitan_list_appointment_assignments | Which technicians are assigned to which appointments: assignment id, technician id and name, appointment id, job id, assigned time, status |
servicetitan_assign_technicians | Assign one or more technicians to a job appointment (dispatch) |
servicetitan_unassign_technicians | Take one or more technicians off a job appointment (the appointment itself stays) |
servicetitan_get_capacity | Bookable 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_shifts | Technician shifts and time off: id, technician id, shift type (Normal, OnCall, TimeOff), start, end, title, note |
servicetitan_list_teams | Dispatch teams that group technicians on the dispatch board: id, name, active |
servicetitan_list_zones | Dispatch zones (service areas by ZIP or city): id, name, ZIPs, cities, technician and business unit ids |
servicetitan_list_technicians | Technicians: id, user id, name, email, phone, business unit, team, zone ids, role, login name, active |
servicetitan_get_technician | One technician by id: name, contact details, business unit, team, zones, role and active flag |
servicetitan_list_employees | Office employees (dispatchers, CSRs, managers): id, user id, name, email, phone, role, business unit, active |
servicetitan_list_business_units | Business units (trades or departments such as HVAC Service, Plumbing Install): id, name, official name, email, phone, address, currency… |
servicetitan_list_tag_types | Tag types used on customers, locations and jobs: id, name, color, active |
servicetitan_list_invoices | List invoices: id, reference number, invoice date, due date, subtotal, sales tax, total, balance, customer and location with addresses… |
servicetitan_list_payments | Customer payments: id, type, reference number, amount (total), paid date, customer, memo, and the invoices each payment was applied to |
servicetitan_list_payment_types | Payment types (cash, check, credit card, financing): id, name, active |
servicetitan_list_estimates | List estimates (quotes with options shown to the customer): id, name, job id and number, customer, location, project, status { value, name… |
servicetitan_get_estimate | One estimate by id with its line items (sku, description, quantity, unit rate, total) |
servicetitan_list_estimate_items | Line items of estimates: id, estimate id, sku (id, name, type), description, quantity, unit rate, total, membership type |
servicetitan_sell_estimate | Mark an estimate as sold by a technician or employee |
servicetitan_list_pricebook_services | Services (tasks sold to customers) in the pricebook: id, code, display name, description, price, member price, add-on price, hours… |
servicetitan_list_pricebook_materials | Materials (parts) in the pricebook: id, code, display name, description, cost, price, member price, unit of measure, inventory flag… |
servicetitan_list_pricebook_equipment | Equipment (installable units) in the pricebook: id, code, display name, manufacturer, model, price, cost, warranties, primary vendor… |
servicetitan_list_pricebook_categories | Pricebook categories: id, name, type (Services or Materials), parent, sub-categories, active |
servicetitan_list_memberships | Customer memberships (maintenance plans): id, customer id, membership type, status (Active, Suspended, Expired, Canceled, Deleted), from… |
servicetitan_get_membership | One customer membership by id: type, status, dates, billing frequency, location and sold by |
servicetitan_list_membership_types | Membership types offered: id, name, duration and billing options, discounts, recurring services, active |
servicetitan_list_recurring_service_events | Recurring service events (the planned maintenance visits of memberships): id, location, membership, recurring service, date, follow-up… |
servicetitan_list_calls | Phone calls tracked by ServiceTitan: id, direction, from and to numbers, duration, call type and reason, campaign, agent, customer… |
servicetitan_get_call | One call by id with its details (lead call, customer, location, campaign, agent, recording available) |
Esempi di prompt
- "Quali appuntamenti ci sono domani e quali tecnici sono assegnati a ciascuno?"
- "Trova il cliente con il telefono 555-0142 e mostrami le sue sedi, i preventivi aperti e le fatture con saldo."
- "Prenota una riparazione del condizionatore per questo cliente martedì prossimo in mattinata. Controlla prima la capacità e mostrami il lavoro prima di crearlo."
- "Quali visite di manutenzione ricorrenti scadono questo mese e non sono ancora state prenotate come lavoro?"
- "Quali chiamate di ieri dalla campagna Google Ads non hanno portato a un lavoro?"
FAQ
Cursor supporta server MCP personalizzati nel piano gratuito? Sì, MCP è disponibile nei piani Hobby, Pro e Business.
Prossimi passi
- Landing del connettore
- Collegare a Claude
- Collegare a ChatGPT
- Collegare a Gemini
- Collegare a Meta Muse
- Collegare a Microsoft Copilot
Questa guida ti è stata utile?