ServiceTitan MCP Server
Provides AI assistants with direct access to ServiceTitan's field service management platform for home services contractors. It enables users to manage customers, jobs, appointments, technician dispatching, and invoices through natural language.
README
ServiceTitan MCP Server
AI-native interface to ServiceTitan for home services contractors
An MCP (Model Context Protocol) server that gives AI assistants direct access to ServiceTitan โ the leading field service management platform. Built for HVAC, plumbing, electrical, and other home services contractors who want their AI to manage jobs, look up customers, schedule appointments, dispatch technicians, and track invoices.
๐ ๏ธ Available Tools
| Tool | Description |
|---|---|
search_customers |
Search customers by name, phone, email, or address |
get_customer |
Get full customer details including contacts and service history |
list_jobs |
List jobs with filters for status, date range, customer, or technician |
get_job |
Get complete job details including notes and assigned tech |
create_job |
Create a new job for a customer |
get_available_appointments |
Find available appointment slots in a date range |
schedule_appointment |
Schedule or reschedule a job appointment |
list_technicians |
List active technicians with current status and schedule |
dispatch_technician |
Assign a technician to a job appointment |
get_invoice |
Get invoice details with line items and payment status |
list_unpaid_invoices |
List unpaid/overdue invoices for collections follow-up |
๐ Quick Start
1. Get ServiceTitan API Credentials
- Go to the ServiceTitan Developer Portal
- Create an application in My Apps to get your App Key
- Have your ServiceTitan admin generate Client ID and Client Secret for your environment
- Note your Tenant ID from ServiceTitan settings
2. Configure Environment
cp .env.example .env
# Edit .env with your credentials:
# ST_CLIENT_ID=your_client_id
# ST_CLIENT_SECRET=your_client_secret
# ST_APP_KEY=your_app_key
# ST_TENANT_ID=your_tenant_id
# ST_ENVIRONMENT=production # or "integration" for sandbox
3. Install & Run
# Install
pip install -e .
# Run the MCP server
servicetitan-mcp
# Or run directly
python -m servicetitan_mcp.server
4. Connect to Your AI
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"servicetitan": {
"command": "servicetitan-mcp",
"env": {
"ST_CLIENT_ID": "your_client_id",
"ST_CLIENT_SECRET": "your_client_secret",
"ST_APP_KEY": "your_app_key",
"ST_TENANT_ID": "your_tenant_id",
"ST_ENVIRONMENT": "production"
}
}
}
}
๐ Authentication
ServiceTitan uses OAuth2 Client Credentials grant:
- Auth endpoint:
https://auth.servicetitan.io/connect/token(production) orhttps://auth-integration.servicetitan.io/connect/token(sandbox) - API base:
https://api.servicetitan.io(production) orhttps://api-integration.servicetitan.io(sandbox) - Required headers:
Authorization: Bearer {token}+ST-App-Key: {app_key} - Tokens are cached and auto-refreshed before expiry
Required Environment Variables
| Variable | Description |
|---|---|
ST_CLIENT_ID |
OAuth2 Client ID |
ST_CLIENT_SECRET |
OAuth2 Client Secret |
ST_APP_KEY |
ServiceTitan Application Key |
ST_TENANT_ID |
Your ServiceTitan Tenant ID |
ST_ENVIRONMENT |
production or integration (default: production) |
๐ฆ ServiceTitan API Modules Used
| Module | Base Path | Entities |
|---|---|---|
| CRM | /crm/v2/tenant/{id}/ |
Customers, Contacts, Locations, Bookings |
| Job Planning | /jpm/v2/tenant/{id}/ |
Jobs, Appointments, Job Types |
| Dispatch | /dispatch/v2/tenant/{id}/ |
Technician Shifts, Appointment Assignments |
| Accounting | /accounting/v2/tenant/{id}/ |
Invoices, Payments |
| Settings | /settings/v2/tenant/{id}/ |
Technicians, Employees, Business Units |
๐งช Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Lint
ruff check src/ tests/
โ๏ธ Deployment
Apify Marketplace
Coming Day 3 โ pay-per-event billing on Apify
The apify_actor/ directory contains the deployment scaffold for the Apify platform.
mcp.so
Coming โ listing at mcp.so
Smithery
Coming โ listing at smithery.ai
๐ Roadmap
- [x] Day 1: Core scaffold โ 11 tools covering the contractor workflow loop
- [ ] Day 2: Validate against ServiceTitan sandbox, fix endpoint paths, add integration tests
- [ ] Day 3: Apify Actor deployment, pay-per-event billing, marketplace listings
๐ License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.