@rowvyn/servicetitan-mcp 2.4.0 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.example CHANGED
@@ -10,7 +10,7 @@ ST_READONLY=true # true | false (default: true)
10
10
  ST_CONFIRM_WRITES=false # Require _confirmed: true on write operations (default: false)
11
11
  ST_DOMAINS= # comma-separated: crm,pricebook,reporting (empty = all)
12
12
  ST_LOG_LEVEL=info # debug | info | warn | error
13
- ST_TIMEZONE= # IANA timezone for date alignment (e.g. America/New_York)
13
+ ST_TIMEZONE= # IANA timezone for date alignment and display conversion (e.g. America/New_York)
14
14
  ST_MAX_RESPONSE_CHARS=100000 # Max characters in tool response before truncation
15
15
  ST_ALLOWED_CALLERS= # Optional comma-separated caller allowlist (matches authInfo or proxy-injected caller headers when available)
16
16
  # ST_RESPONSE_SHAPING=true # Set to false to disable response transformation (returns raw API data)
package/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## [2.4.2] - 2026-03-29
8
+
9
+ ### Fixed
10
+ - **README cleanup** — removed misleading "0.001% revenue accuracy" stat (replaced with "Dashboard-matched revenue"), stripped internal "Report 175" jargon throughout. No code changes.
11
+
7
12
  ## [2.4.0] - 2026-03-28
8
13
 
9
14
  ### Added
package/README.md CHANGED
@@ -20,7 +20,7 @@ The only MCP server for the ServiceTitan API — 467 tools across 15 domains, pl
20
20
  - **ServiceTitan has no official MCP server** or developer tooling beyond REST docs
21
21
  - **Raw API access is friction-heavy** — OAuth token management, module-prefix routing, pagination, and response parsing all fall on you
22
22
  - **This server handles all of that** and adds 10 intelligence tools that aggregate multiple endpoints into operational insights
23
- - **Revenue accuracy within 0.001% of ServiceTitan's own dashboard** (verified on production data using Report 175 the same source ST's internal engine uses)
23
+ - **Dashboard-matched revenue** verified on production data using the same Reporting API source that powers ST's own dashboard
24
24
 
25
25
  ---
26
26
 
@@ -28,7 +28,7 @@ The only MCP server for the ServiceTitan API — 467 tools across 15 domains, pl
28
28
 
29
29
  - **467 tools across 15 domains** — CRM, dispatch, accounting, payroll, inventory, marketing, and more
30
30
  - **10 intelligence tools** — composite analytics that aggregate multiple API calls into revenue summaries, ops snapshots, technician scorecards, and more
31
- - **Dashboard-accurate revenue** — `intel_revenue_summary` uses Report 175 to match ST's dashboard within 0.001%
31
+ - **Dashboard-matched revenue** — `intel_revenue_summary` pulls from the same source as ST's own dashboard
32
32
  - **Read-only by default** — `ST_READONLY=true` out of the box; write tools only activate when you're ready
33
33
  - **Safety layer** — confirmation workflow for writes/deletes, audit logging with sensitive field redaction
34
34
  - **Domain filtering** — expose only the tool groups you need via `ST_DOMAINS`
@@ -183,7 +183,7 @@ The real differentiator. These 10 tools aggregate multiple API calls and report
183
183
 
184
184
  | Tool | What It Returns |
185
185
  |------|----------------|
186
- | `intel_revenue_summary` | Dashboard-accurate revenue by business unit using Report 175 — matches ServiceTitan within 0.001%. Includes completed revenue, non-job revenue, adjustments, collections, and BU productivity rollups. |
186
+ | `intel_revenue_summary` | Dashboard-matched revenue by business unit. Includes completed revenue, non-job revenue, adjustments, collections, and BU productivity rollups. |
187
187
  | `intel_daily_snapshot` | 6-metric same-day ops briefing: revenue-to-date, jobs in progress, call outcomes, bookings, open estimates, and upcoming next-day jobs. |
188
188
  | `intel_technician_scorecard` | Per-tech jobs, revenue, avg ticket, productivity, lead gen, membership close rate, and sales from both tech and marketing leads — with team averages. |
189
189
  | `intel_membership_health` | Active memberships, signups, cancellations, renewals, retention rate, invoiced revenue, and conversion by business unit. |
@@ -198,7 +198,7 @@ These tools are why this server exists. Raw CRUD tools are table stakes. Intelli
198
198
 
199
199
  ### Revenue Accuracy
200
200
 
201
- `intel_revenue_summary` uses ServiceTitan's **Reporting API** (Report 175: "Revenue") to calculate totals. This is the same source ST's own dashboard uses — which means it includes:
201
+ `intel_revenue_summary` uses ServiceTitan's **Reporting API** to calculate totals. This is the same source ST's own dashboard uses — which means it includes:
202
202
 
203
203
  - **Completed Revenue** — revenue from completed jobs
204
204
  - **Non-Job Revenue** — membership fees, add-ons, and other income not tied to a specific job
@@ -246,7 +246,7 @@ Copy `.env.example` to `.env` and fill in your credentials.
246
246
  | `ST_MAX_RESPONSE_CHARS` | `100000` | Cap tool response size |
247
247
  | `ST_DOMAINS` | *(all)* | Comma-separated domain allowlist (e.g. `crm,dispatch,reporting`) |
248
248
  | `ST_LOG_LEVEL` | `info` | Log level: `debug`, `info`, `warn`, `error` |
249
- | `ST_TIMEZONE` | `UTC` | IANA timezone for the tenant (e.g. `America/New_York`) — critical for date-bound intelligence tools |
249
+ | `ST_TIMEZONE` | `UTC` | IANA timezone for the tenant (e.g. `America/New_York`) — used for date-bound intelligence queries and local-time display conversion in all tool responses |
250
250
  | `ST_RESPONSE_SHAPING` | `true` | Set to `false` to disable intelligence response transformation |
251
251
  | `ST_CORS_ORIGIN` | _(none)_ | Allowed CORS origin for Streamable HTTP / SSE. Required for browser access. |
252
252
  | `ST_ALLOWED_CALLERS` | _(none)_ | Comma-separated caller identity allowlist (e.g. `alice@example.com,svc-user`) |
@@ -254,7 +254,7 @@ Copy `.env.example` to `.env` and fill in your credentials.
254
254
  | `ST_MCP_PORT` / `PORT` | `3100` | HTTP server port for Streamable HTTP and SSE transports |
255
255
  | `ST_MCP_API_KEY` | _(none)_ | API key for authenticating remote MCP clients (required for HTTP transports) |
256
256
 
257
- > **Set `ST_TIMEZONE`** to your tenant's local timezone. Without it, date-only queries (e.g. `startDate: "2026-02-01"`) are interpreted as UTC midnight — which can miss or include invoices and jobs near day boundaries for non-UTC tenants.
257
+ > **Set `ST_TIMEZONE`** to your tenant's local timezone. Without it, date-only queries (e.g. `startDate: "2026-02-01"`) are interpreted as UTC midnight — which can miss or include invoices and jobs near day boundaries for non-UTC tenants, and tool responses will keep timestamps in UTC instead of your local display timezone.
258
258
 
259
259
  Boolean env vars accept: `true`, `false`, `1`, `0` (case-insensitive).
260
260
 
@@ -299,7 +299,7 @@ The CLI and this MCP server share the same design philosophy: push the business
299
299
 
300
300
  | Feature | This Server | Community MCP Servers |
301
301
  |---------|------------|----------------------|
302
- | Revenue accuracy | ✅ 0.001% of dashboard | ❌ $17–21K off per period |
302
+ | Revenue accuracy | ✅ Dashboard-matched | ❌ $17–21K off per period |
303
303
  | Intelligence tools | ✅ 10 tools | ❌ None |
304
304
  | Domain coverage | ✅ 467 tools, 15 domains | ⚠️ 10–50 tools |
305
305
  | Safety layer | ✅ Read-only default, audit log | ❌ None |