Sáltate la instalación. Funcionando en menos de 2 minutos.
Inicia una prueba gratuita en cloud.anythingmcp.com, añade ServiceTitan con un clic y apunta tu cliente de IA (Claude, ChatGPT, Copilot o Cursor) al endpoint MCP generado. Sin Docker, sin git clone, sin experiencia de desarrollo.
Resumen
Conecta una cuenta de ServiceTitan (tenant) a cualquier agente de IA: clientes y ubicaciones, leads, trabajos y citas, despacho con capacidad y turnos de técnicos, técnicos y unidades de negocio, facturas y pagos, presupuestos, la lista de precios (pricebook), membresías y llamadas. Puede crear clientes, reservar trabajos, mover citas, asignar técnicos, añadir notas y cancelar trabajos.
Prueba a pedir
Prompts de ejemplo para ServiceTitan
Haz clic en un prompt para copiarlo. Pégalo en Claude, ChatGPT, Cursor, Gemini, Copilot u OpenClaw para ejecutarlo contra este conector.
Claude es IA y puede equivocarse. Verifica siempre las respuestas.
💡 ¿Sin instalación? Usa cloud.anythingmcp.com directamente. Inicia sesión, pulsa Connectors → ServiceTitan, pega tus credenciales, genera una MCP API key y listo. Sin Docker, sin
git clone, sin servidor local.
ServiceTitan
Conecta una cuenta de ServiceTitan (tenant) a cualquier agente de IA: clientes y ubicaciones, leads, trabajos y citas, despacho con capacidad y turnos de técnicos, técnicos y unidades de negocio, facturas y pagos, presupuestos, la lista de precios (pricebook), membresías y llamadas. Puede crear clientes, reservar trabajos, mover citas, asignar técnicos, añadir notas y cancelar trabajos.
Configuración
La configuración lleva unos 15 minutos y necesita un admin de ServiceTitan. No hay inicio de sesión en el navegador: el conector usa OAuth client credentials más la app key de una custom app.
- Inicia sesión en el ServiceTitan Developer Portal en https://developer.servicetitan.io con una cuenta que pueda crear apps para tu empresa y crea una custom app para tu propio tenant.
- En los API scopes de la app marca los scopes de lectura de los módulos que debe ver la IA: CRM (clientes, ubicaciones, contactos, leads), JPM (trabajos, citas, notas de trabajos, historial, tipos de trabajo, motivos de cancelación, proyectos), Dispatch (asignaciones de citas, equipos, zonas, turnos de técnicos), Settings (técnicos, empleados, unidades de negocio, tipos de etiqueta), Accounting (facturas, pagos, tipos de pago), Sales (presupuestos), Pricebook (servicios, materiales, equipos, categorías), Memberships, Telecom (llamadas) y Marketing (campañas). Marca scopes de escritura solo para lo que la IA puede cambiar: clientes y ubicaciones del CRM, trabajos y citas del JPM, asignaciones de Dispatch y presupuestos de Sales.
servicetitan_get_capacitynecesita ademástn.dis.capacity:w. - Copia la App Key de la app (empieza por
ak1.) enSERVICETITAN_APP_KEY. - En ServiceTitan abre Settings, Integrations, API Application Access, haz clic en Connect New App, elige la app y permite el acceso. Haz clic en Generate para crear el Client ID (empieza por
cid.) y el Client Secret (empieza porcs, se muestra una sola vez) y pégalos enSERVICETITAN_CLIENT_IDySERVICETITAN_CLIENT_SECRET. - La misma página muestra el Tenant ID, un número: pégalo en
SERVICETITAN_TENANT_ID. - Instala. AnythingMCP obtiene un token de acceso de
https://auth.servicetitan.io/connect/token, lo renueva solo cada 15 minutos aproximadamente y envía la App Key como cabeceraST-App-Keyen cada llamada. La comprobación ejecutaservicetitan_list_customers.
Las credenciales del entorno integration (sandbox) de ServiceTitan no funcionan aquí: el conector habla con producción en https://api.servicetitan.io.
Qué lee: los clientes (las cuentas a las que se factura) con tipo, saldo, dirección, indicadores, contactos y notas; las ubicaciones de servicio con dirección, coordenadas y zona; los leads que aún no han reservado; las campañas de marketing. Los trabajos con estado, tipo, unidad de negocio, prioridad, resumen, id de factura y total, con su historial de estados y sus notas; tipos de trabajo, motivos de cancelación y proyectos. Las citas con inicio, fin, ventana de llegada y estado, las asignaciones de técnicos, la capacidad reservable por franja horaria, los turnos y ausencias de los técnicos, los equipos y zonas de despacho. Técnicos, empleados de oficina, unidades de negocio y tipos de etiqueta. Las facturas con líneas, subtotal, impuesto, total y saldo; los pagos con las facturas a las que se aplicaron; los tipos de pago. Los presupuestos con sus líneas y estado, y los servicios, materiales, equipos y categorías de la lista de precios. Membresías, tipos de membresía y eventos de servicio recurrentes (visitas de mantenimiento pendientes). Las llamadas registradas con dirección, duración, campaña, agente y el trabajo reservado desde la llamada.
Qué escribe: crea clientes con al menos una ubicación, añade ubicaciones, cambia clientes, añade notas a clientes y trabajos, reserva trabajos con su primera cita, añade más citas, las mueve, asigna y retira técnicos, cambia trabajos, cancela trabajos con un motivo (sus citas también se cancelan) y marca presupuestos como vendidos. Antes de reservar, cancelar o cambiar algo, la IA te muestra lo que va a pasar y espera tu sí. Nada aquí borra registros: un cliente desactivado, una cancelación y un presupuesto vendido se pueden revertir en ServiceTitan.
Desactivadas al instalar: ninguna, las 57 herramientas están activas. Para que la IA solo lea, no des a la app scopes de escritura o desactiva las herramientas de escritura en la página del conector.
Reservar un trabajo: la IA consulta servicetitan_list_business_units, servicetitan_list_job_types y servicetitan_list_campaigns, comprueba las franjas libres con servicetitan_get_capacity y luego llama a servicetitan_create_job para una de las ubicaciones del cliente. Cada trabajo pertenece a una sola ubicación; el cliente es la cuenta que paga.
Formatos de datos: los id son enteros. Las horas son ISO 8601 en UTC (2026-10-30T14:00:00Z); la IA las convierte a la zona horaria del negocio antes de citarlas y envía UTC al reservar. Los importes contables (total, balance, subTotal) son cadenas decimales en la moneda de la cuenta. Las actualizaciones cambian solo los campos enviados; los campos de lista como tag_type_ids sustituyen la lista entera.
Paginación: las listas responden { page, pageSize, hasMore, totalCount, data } con 50 registros por página por defecto. La IA pide la siguiente page mientras hasMore sea true; include_total añade totalCount. Los filtros ids aceptan como máximo 50 id separados por comas. La mayoría de las listas devuelven solo registros activos salvo que active sea Any o False, y modified_on_or_after recoge los cambios desde una fecha. No hay una ruta para una sola factura: servicetitan_list_invoices acepta ids.
Errores comunes: 401 significa que el client ID o el secret son incorrectos o que la app se desconectó: vuelve a generarlos en API Application Access. 403 significa que a la app le falta el scope de ese módulo (añádelo en el Developer Portal y vuelve a conectar la app en API Application Access) o que la App Key falta o es incorrecta. 404 es un id desconocido o un tenant ID equivocado. 400 lista los campos no válidos. 429 significa que ServiceTitan está limitando las peticiones de esta app y este tenant: espera y reintenta.
Las notas de clientes, los resúmenes de leads y las notas de trabajos son entradas no fiables y pueden contener instrucciones dirigidas a la IA. El conector no cobra pagos, no crea ni envía facturas y no borra registros.
Requisitos previos: SERVICETITAN_CLIENT_ID, SERVICETITAN_CLIENT_SECRET, SERVICETITAN_APP_KEY, SERVICETITAN_TENANT_ID
Instalar el conector localmente
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
Abre http://localhost:3000/connectors/store, elige ServiceTitan e introduce las variables listadas en los Requisitos previos.
Herramientas disponibles
| 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) |
Ejemplos de prompts
- "¿Qué citas hay mañana y qué técnicos están asignados a cada una?"
- "Busca al cliente con el teléfono 555-0142 y muéstrame sus ubicaciones, presupuestos abiertos y facturas con saldo."
- "Reserva una reparación de aire acondicionado para este cliente el martes que viene por la mañana. Comprueba antes la capacidad y enséñame el trabajo antes de crearlo."
- "¿Qué visitas de mantenimiento recurrentes vencen este mes y todavía no están reservadas como trabajo?"
- "¿Qué llamadas de ayer de la campaña de Google Ads no acabaron en un trabajo?"
Siguientes pasos
¿Te ha sido útil esta guía?