ServiceTitan MCP Server
Complete Model Context Protocol (MCP) server for ServiceTitan field service management platform.
Features
🔧 55 MCP Tools across 10 categories:
Jobs Management (9 tools)
servicetitan_list_jobs- List jobs with filtersservicetitan_get_job- Get job detailsservicetitan_create_job- Create new jobservicetitan_update_job- Update jobservicetitan_cancel_job- Cancel jobservicetitan_list_job_appointments- List job appointmentsservicetitan_create_job_appointment- Create appointmentservicetitan_reschedule_appointment- Reschedule appointmentservicetitan_get_job_history- Get job history
Customer Management (9 tools)
servicetitan_list_customers- List customersservicetitan_get_customer- Get customer detailsservicetitan_create_customer- Create customerservicetitan_update_customer- Update customerservicetitan_search_customers- Search customersservicetitan_list_customer_contacts- List contactsservicetitan_create_customer_contact- Create contactservicetitan_list_customer_locations- List locationsservicetitan_create_customer_location- Create location
Invoice Management (8 tools)
servicetitan_list_invoices- List invoicesservicetitan_get_invoice- Get invoice detailsservicetitan_create_invoice- Create invoiceservicetitan_update_invoice- Update invoiceservicetitan_list_invoice_items- List invoice itemsservicetitan_add_invoice_item- Add invoice itemservicetitan_list_invoice_payments- List paymentsservicetitan_add_invoice_payment- Add payment
Estimates (6 tools)
servicetitan_list_estimates- List estimatesservicetitan_get_estimate- Get estimateservicetitan_create_estimate- Create estimateservicetitan_update_estimate- Update estimateservicetitan_convert_estimate_to_job- Convert to jobservicetitan_list_estimate_items- List items
Technician Management (6 tools)
servicetitan_list_technicians- List techniciansservicetitan_get_technician- Get technician detailsservicetitan_create_technician- Create technicianservicetitan_update_technician- Update technicianservicetitan_get_technician_performance- Get performanceservicetitan_list_technician_shifts- List shifts
Dispatch (4 tools)
servicetitan_list_dispatch_zones- List zonesservicetitan_get_dispatch_board- Get dispatch boardservicetitan_assign_technician- Assign technicianservicetitan_get_dispatch_capacity- Get capacity
Equipment (5 tools)
servicetitan_list_equipment- List equipmentservicetitan_get_equipment- Get equipmentservicetitan_create_equipment- Create equipmentservicetitan_update_equipment- Update equipmentservicetitan_list_location_equipment- List by location
Memberships (6 tools)
servicetitan_list_memberships- List membershipsservicetitan_get_membership- Get membershipservicetitan_create_membership- Create membershipservicetitan_update_membership- Update membershipservicetitan_cancel_membership- Cancel membershipservicetitan_list_membership_types- List types
Reporting (4 tools)
servicetitan_revenue_report- Revenue analyticsservicetitan_technician_performance_report- Performance metricsservicetitan_job_costing_report- Job costingservicetitan_call_tracking_report- Call tracking
Marketing (4 tools)
servicetitan_list_campaigns- List campaignsservicetitan_get_campaign- Get campaignservicetitan_list_leads- List leadsservicetitan_get_lead_source_analytics- Lead source ROI
📊 20 MCP Apps (React-based UI)
- Job Dashboard - Overview of all jobs
- Job Detail - Detailed job information
- Job Grid - Searchable job grid
- Customer Detail - Complete customer profile
- Customer Grid - Customer database
- Invoice Dashboard - Revenue overview
- Invoice Detail - Invoice line items
- Estimate Builder - Create estimates
- Dispatch Board - Visual scheduling
- Technician Dashboard - Performance overview
- Technician Detail - Individual tech stats
- Equipment Tracker - Equipment by location
- Membership Manager - Recurring memberships
- Revenue Dashboard - Revenue trends
- Performance Metrics - KPIs
- Call Tracking - Inbound call analytics
- Lead Source Analytics - Marketing ROI
- Schedule Calendar - Calendar view
- Appointment Manager - Appointment management
- Marketing Dashboard - Campaign performance
Installation
npm install
Configuration
Create a .env file in the server root:
# Required
SERVICETITAN_CLIENT_ID=your_client_id
SERVICETITAN_CLIENT_SECRET=your_client_secret
SERVICETITAN_TENANT_ID=your_tenant_id
SERVICETITAN_APP_KEY=your_app_key
# Optional
SERVICETITAN_BASE_URL=https://api.servicetitan.io
PORT=3000
MODE=stdio # or "http"
Getting ServiceTitan API Credentials
-
Register Developer Account
- Visit https://developer.servicetitan.io
- Sign up for developer access
-
Create Application
- Create a new application in the developer portal
- Note your
client_id,client_secret, andapp_key
-
Get Tenant ID
- Your tenant ID is provided by ServiceTitan
- Usually visible in your ServiceTitan admin dashboard
Usage
Stdio Mode (MCP Protocol)
For use with Claude Desktop or other MCP clients:
npm run build
npm start
Add to your MCP client configuration (e.g., claude_desktop_config.json):
{
"mcpServers": {
"servicetitan": {
"command": "node",
"args": ["/path/to/servicetitan/dist/main.js"],
"env": {
"SERVICETITAN_CLIENT_ID": "your_client_id",
"SERVICETITAN_CLIENT_SECRET": "your_client_secret",
"SERVICETITAN_TENANT_ID": "your_tenant_id",
"SERVICETITAN_APP_KEY": "your_app_key"
}
}
}
}
HTTP Mode (Web Apps)
For browser-based UI apps:
MODE=http PORT=3000 npm start
Visit http://localhost:3000/apps to access the React apps.
API Architecture
Authentication
- OAuth2 client_credentials flow
- Automatic token refresh
- 5-minute token expiry buffer
Pagination
- Automatic pagination handling
- Configurable page size (default: 50, max: 500)
getPaginated()for automatic multi-page fetching
Error Handling
- Comprehensive error messages
- Rate limit detection
- Network error recovery
- 401/403 authentication errors
- 429 rate limit errors
- 500+ server errors
API Endpoints
Base URL: https://api.servicetitan.io
- Jobs:
/jpm/v2/tenant/{tenant}/ - Customers:
/crm/v2/tenant/{tenant}/ - Invoices:
/accounting/v2/tenant/{tenant}/ - Estimates:
/sales/v2/tenant/{tenant}/ - Technicians:
/settings/v2/tenant/{tenant}/ - Dispatch:
/dispatch/v2/tenant/{tenant}/ - Equipment:
/equipment/v2/tenant/{tenant}/ - Memberships:
/memberships/v2/tenant/{tenant}/ - Reporting:
/reporting/v2/tenant/{tenant}/ - Marketing:
/marketing/v2/tenant/{tenant}/
Development
# Build
npm run build
# Watch mode
npm run dev
# Start server
npm start
Project Structure
servicetitan/
├── src/
│ ├── clients/
│ │ └── servicetitan.ts # API client with OAuth2
│ ├── tools/
│ │ ├── jobs-tools.ts # Job management tools
│ │ ├── customers-tools.ts # Customer tools
│ │ ├── invoices-tools.ts # Invoice tools
│ │ ├── estimates-tools.ts # Estimate tools
│ │ ├── technicians-tools.ts # Technician tools
│ │ ├── dispatch-tools.ts # Dispatch tools
│ │ ├── equipment-tools.ts # Equipment tools
│ │ ├── memberships-tools.ts # Membership tools
│ │ ├── reporting-tools.ts # Reporting tools
│ │ └── marketing-tools.ts # Marketing tools
│ ├── types/
│ │ └── index.ts # TypeScript types
│ ├── ui/
│ │ └── react-app/ # 20 React MCP apps
│ ├── server.ts # MCP server
│ └── main.ts # Entry point
├── package.json
├── tsconfig.json
└── README.md
License
MIT
Support
- ServiceTitan API Documentation: https://developer.servicetitan.io/docs
- ServiceTitan Developer Portal: https://developer.servicetitan.io
- MCP Protocol: https://modelcontextprotocol.io