🚀 Don't want to self-host? Join the waitlist for our fully managed solution →
Zero setup. Zero maintenance. Just connect and automate.
🚀 ServiceTitan MCP Server — 2026 Complete Version
💡 What This Unlocks
This MCP server gives AI direct access to your ServiceTitan field service management platform. Instead of manually dispatching jobs, tracking technicians, or managing invoices, just tell AI what you need.
🔧 Field Service Power Moves
The AI can manage your entire service operation with natural language:
| Use Case | What AI Does | Tools Used |
|---|---|---|
| "Schedule HVAC repair for customer #1234 tomorrow at 2pm" | Creates job with customer, location, timing, and assigns technician | create_job, list_customers, list_technicians |
| "Show me all open jobs assigned to technician Mike Rodriguez" | Filters jobs by status and technician assignment | list_jobs, list_technicians |
| "Find high-value customers who haven't been serviced in 90 days" | Cross-references invoices and job history to identify at-risk accounts | list_customers, list_jobs, list_invoices |
| "Generate weekly dispatch report: jobs completed, revenue, technician utilization" | Aggregates job completions, invoice totals, and technician performance metrics | list_jobs, list_invoices, list_technicians |
| "Create urgent job for pipe burst at 123 Main St, notify on-call plumber" | Creates priority job, finds available technician, schedules appointment | create_job, list_technicians, list_appointments |
🔗 The Real Power: Workflow Automation
AI chains ServiceTitan operations together:
- Revenue intelligence → Query invoices → Identify trends → Flag at-risk customers
- Dispatch optimization → Check technician availability → Match skills to job type → Schedule appointments
- Customer retention → Analyze service history → Identify overdue maintenance → Create follow-up jobs
📦 What's Inside
8 field service tools covering jobs, customers, invoices, technicians, and appointments:
list_jobs— List and filter work orders by status, customer, technician, or date rangeget_job— Get detailed job info including line items, equipment, and service historycreate_job— Schedule new service jobs with customer, location, and prioritylist_customers— Search customers by name, email, phone, or account statusget_customer— View complete customer profile with locations and service historylist_invoices— Query invoices with filters for status, amount, customer, or joblist_technicians— View field workers with skills, availability, and business unitlist_appointments— Check scheduled appointments with booking windows and assignments
All with automatic OAuth token refresh, proper error handling, and TypeScript types.
🚀 Quick Start
Option 1: Claude Desktop (Local)
-
Clone and build:
git clone https://github.com/BusyBee3333/ServiceTitan-MCP-2026-Complete.git cd servicetitan-mcp-2026-complete npm install npm run build -
Get your ServiceTitan API credentials:
- Log in to ServiceTitan
- Go to Settings → Integrations → API Application Access
- Click Create Application and note your:
- Client ID
- Client Secret
- Tenant ID
- Required permissions: Jobs (Read/Write), Customers (Read), Invoices (Read), Dispatch (Read)
-
Configure Claude Desktop:
On macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonOn Windows:
%APPDATA%\Claude\claude_desktop_config.json{ "mcpServers": { "servicetitan": { "command": "node", "args": ["/ABSOLUTE/PATH/TO/servicetitan-mcp-2026-complete/dist/index.js"], "env": { "SERVICETITAN_CLIENT_ID": "your-client-id", "SERVICETITAN_CLIENT_SECRET": "your-client-secret", "SERVICETITAN_TENANT_ID": "your-tenant-id" } } } } -
Restart Claude Desktop
Option 2: Deploy to Railway
- Click the button above
- Set your ServiceTitan credentials in Railway dashboard
- Use the Railway URL as your MCP server endpoint
Option 3: Docker
docker build -t servicetitan-mcp .
docker run -p 3000:3000 \
-e SERVICETITAN_CLIENT_ID=your-client-id \
-e SERVICETITAN_CLIENT_SECRET=your-secret \
-e SERVICETITAN_TENANT_ID=your-tenant \
servicetitan-mcp
🔐 Authentication
ServiceTitan uses OAuth 2.0 client credentials flow:
- Get credentials: ServiceTitan Settings → Integrations → API Application Access
- Required scopes:
jpm.jobs,crm.customers,accounting.invoices,dispatch - Token refresh: Handled automatically by the MCP server
📚 Official docs: ServiceTitan Developer Portal
🎯 Example Prompts
Once connected to Claude, use natural language:
Dispatch & Scheduling:
- "Show me all jobs scheduled for today with status 'In Progress'"
- "Create a job for customer 5678 at location 9012, job type 'AC Repair', priority Urgent"
- "List all appointments for technician ID 234 next week"
Customer Management:
- "Find customers created in the last 30 days"
- "Get full details for customer ID 1234 including service history"
- "Search for customers with email ending in '@example.com'"
Financial Analysis:
- "List all invoices over $5,000 from the last quarter"
- "Show me pending invoices for job 4567"
- "Generate revenue report: total invoice amounts by month"
Technician Operations:
- "List all active technicians in business unit 3"
- "Find available technicians for tomorrow afternoon"
- "Show completed jobs for technician Mike this week"
🛠️ Development
Prerequisites
- Node.js 18+
- npm or yarn
- ServiceTitan account with API access
Setup
git clone https://github.com/BusyBee3333/ServiceTitan-MCP-2026-Complete.git
cd servicetitan-mcp-2026-complete
npm install
cp .env.example .env
# Edit .env with your ServiceTitan credentials
npm run build
npm start
Testing
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage report
🐛 Troubleshooting
"ServiceTitan auth error: 401"
- Double-check your Client ID and Client Secret are correct
- Verify your Tenant ID matches your ServiceTitan account
- Ensure your API application has the required permissions (Jobs, Customers, Invoices, Dispatch)
- Check that your credentials haven't been revoked in ServiceTitan settings
"Tools not appearing in Claude"
- Restart Claude Desktop after updating config
- Check that the path in
claude_desktop_config.jsonis absolute (not relative) - Verify the build completed successfully:
ls dist/index.js - Check Claude Desktop logs:
tail -f ~/Library/Logs/Claude/mcp*.log
"Request timed out"
- ServiceTitan API can be slow for large datasets — increase timeout or use pagination
- Check your network connection and firewall settings
- Verify ServiceTitan API status at status.servicetitan.com
📖 Resources
- ServiceTitan Developer Portal
- ServiceTitan API Reference
- MCP Protocol Specification
- Claude Desktop Documentation
🤝 Contributing
Contributions are welcome! Please:
- Fork the repo
- Create a feature branch (
git checkout -b feature/job-cancellation) - Commit your changes (
git commit -m 'Add job cancellation tool') - Push to the branch (
git push origin feature/job-cancellation) - Open a Pull Request
📄 License
MIT License - see LICENSE for details
🙏 Credits
Built by MCPEngage — AI infrastructure for business software.
Want more MCP servers? Check our catalog covering 30+ business platforms.
Questions? Open an issue or join our Discord community.