Skip to main content
Glama

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

  1. Go to the ServiceTitan Developer Portal

  2. Create an application in My Apps to get your App Key

  3. Have your ServiceTitan admin generate Client ID and Client Secret for your environment

  4. 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) or https://auth-integration.servicetitan.io/connect/token (sandbox)

  • API base: https://api.servicetitan.io (production) or https://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

  • 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

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cahlan/servicetitan-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server