@rowvyn/servicetitan-mcp 2.5.2 → 2.6.1

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/CHANGELOG.md CHANGED
@@ -4,6 +4,23 @@ 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.6.1] - 2026-06-24
8
+
9
+ ### Fixed
10
+ - **Job attachment routing** — job attachment create, get, and list tools now call the ServiceTitan Forms API paths directly instead of being rewritten to JPM job routes.
11
+
12
+ ## [2.6.0] - 2026-06-10
13
+
14
+ ### Added
15
+ - **ServiceTitan ST-77.x dispatch tools** — added job equipment get/attach/detach tools, appointment summary creation, `equipmentIds` job filtering, `summaryOfWork`, and job type custom field assignment support.
16
+ - **Sales template tools** — added estimate template CRUD, proposal template CRUD, and proposal type lookup tools from the ST-77.2 Sales & Estimates API.
17
+ - **DELETE with body support** — added client support for ServiceTitan endpoints that require JSON payloads on DELETE requests.
18
+
19
+ ### Changed
20
+ - **Tool catalog refreshed** — generated `TOOLS.md` now reflects 483 registered tools across 15 domains.
21
+ - **Job type safety wording** — job type update surfaces `customFieldsUpdateMode` and warns about ServiceTitan's replace semantics for custom field type assignments.
22
+ - **Template update safety wording** — estimate/proposal template update tools call out full-replace fields so callers can omit those fields when preserving existing assignments.
23
+
7
24
  ## [2.5.2] - 2026-06-02
8
25
 
9
26
  ### Fixed
@@ -256,6 +273,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/), and this
256
273
  - Generated TOOLS.md tool catalog
257
274
  - `.env.example` with all environment variables documented
258
275
 
276
+ [2.6.1]: https://github.com/montrellcruse/servicetitan-mcp/compare/v2.6.0...v2.6.1
277
+ [2.6.0]: https://github.com/montrellcruse/servicetitan-mcp/compare/v2.5.2...v2.6.0
259
278
  [2.5.2]: https://github.com/montrellcruse/servicetitan-mcp/compare/v2.5.1...v2.5.2
260
279
  [2.5.1]: https://github.com/montrellcruse/servicetitan-mcp/compare/v2.5.0...v2.5.1
261
280
  [2.5.0]: https://github.com/montrellcruse/servicetitan-mcp/compare/v2.4.2...v2.5.0
package/README.md CHANGED
@@ -4,10 +4,10 @@
4
4
  [![npm version](https://img.shields.io/npm/v/@rowvyn/servicetitan-mcp.svg)](https://www.npmjs.com/package/@rowvyn/servicetitan-mcp)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
6
6
  [![MCP](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io)
7
- [![Tools](https://img.shields.io/badge/tools-467-blue.svg)](#tool-catalog)
7
+ [![Tools](https://img.shields.io/badge/tools-483-blue.svg)](#tool-catalog)
8
8
  [![Domains](https://img.shields.io/badge/domains-15-purple.svg)](#tool-catalog)
9
9
 
10
- The only MCP server for the ServiceTitan API — 467 tools across 15 domains, plus 10 intelligence tools that turn raw API data into business decisions.
10
+ The only MCP server for the ServiceTitan API — 483 tools across 15 domains, plus 10 intelligence tools that turn raw API data into business decisions.
11
11
 
12
12
  Built by [**Rowvyn**](https://rowvyn.com) — [See the case study →](https://rowvyn.com/case-studies/servicetitan-mcp)
13
13
 
@@ -28,7 +28,7 @@ Built by [**Rowvyn**](https://rowvyn.com) — [See the case study →](https://r
28
28
 
29
29
  ## Features
30
30
 
31
- - **467 tools across 15 domains** — CRM, dispatch, accounting, payroll, inventory, marketing, and more
31
+ - **483 tools across 15 domains** — CRM, dispatch, accounting, payroll, inventory, marketing, and more
32
32
  - **10 intelligence tools** — composite analytics that aggregate multiple API calls into revenue summaries, ops snapshots, technician scorecards, and more
33
33
  - **Dashboard-matched revenue** — `intel_revenue_summary` pulls from the same source as ST's own dashboard
34
34
  - **Read-only by default** — `ST_READONLY=true` out of the box; write tools only activate when you're ready
@@ -157,11 +157,11 @@ ST_CLIENT_ID=... ST_CLIENT_SECRET=... ST_APP_KEY=... ST_TENANT_ID=... \
157
157
 
158
158
  ## Tool Catalog
159
159
 
160
- 467 tools registered across 15 domains:
160
+ 483 tools registered across 15 domains:
161
161
 
162
162
  | Domain | Tools | Example Tools |
163
163
  |--------|------:|---------------|
164
- | `dispatch` | 74 | `dispatch_jobs_list`, `dispatch_appointments_get`, `dispatch_job_types_list` |
164
+ | `dispatch` | 79 | `dispatch_jobs_list`, `dispatch_appointments_get`, `dispatch_job_types_list` |
165
165
  | `crm` | 71 | `crm_customers_list`, `crm_contacts_get`, `crm_bookings_create` |
166
166
  | `export` | 49 | `export_invoices`, `export_customers`, `export_jobs` |
167
167
  | `inventory` | 37 | `inventory_purchase_orders_list`, `inventory_vendors_list`, `inventory_warehouses_list` |
@@ -173,10 +173,10 @@ ST_CLIENT_ID=... ST_CLIENT_SECRET=... ST_APP_KEY=... ST_TENANT_ID=... \
173
173
  | `people` | 22 | `people_technicians_list`, `people_employees_list`, `people_trucks_list` |
174
174
  | `memberships` | 21 | `memberships_list`, `memberships_types_list`, `memberships_recurring_services_list` |
175
175
  | `scheduling` | 17 | `scheduling_teams_list`, `scheduling_zones_list`, `scheduling_capacity_calculate` |
176
- | `estimates` | 11 | `estimates_list`, `estimates_get`, `estimates_items_list` |
176
+ | `estimates` | 22 | `estimates_list`, `estimates_get`, `estimates_items_list` |
177
177
  | **`intelligence`** | **10** | `intel_revenue_summary`, `intel_daily_snapshot`, `intel_technician_scorecard` |
178
178
  | `reporting` | 5 | `reporting_reports_list`, `reporting_report_categories_list` |
179
- | **Total** | **466** | *(+ 1 system tool: `st_health_check` = **467** total)* |
179
+ | **Total** | **482** | *(+ 1 system tool: `st_health_check` = **483** total)* |
180
180
 
181
181
  > With `ST_READONLY=true` (default), all tools are registered but write and delete operations are blocked at execution time with a clear error message (`Readonly mode: operation not permitted`). Use `ST_CONFIRM_WRITES=true` to require `_confirmed: true` on write operations, or `confirm: true` on delete operations.
182
182
 
@@ -306,7 +306,7 @@ The CLI and this MCP server share the same design philosophy: push the business
306
306
  |---------|------------|----------------------|
307
307
  | Revenue accuracy | ✅ Dashboard-matched | ❌ $17–21K off per period |
308
308
  | Intelligence tools | ✅ 10 tools | ❌ None |
309
- | Domain coverage | ✅ 467 tools, 15 domains | ⚠️ 10–50 tools |
309
+ | Domain coverage | ✅ 483 tools, 15 domains | ⚠️ 10–50 tools |
310
310
  | Safety layer | ✅ Read-only default, audit log | ❌ None |
311
311
  | Response shaping | ✅ LLM-optimized | ❌ Raw API responses |
312
312
  | Name-based filtering | ✅ Resolve names to IDs automatically | ❌ Numeric IDs required |