@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 +19 -0
- package/README.md +8 -8
- package/build/chunks/chunk-5D2SFOIT.js +54 -0
- package/build/index.js +1 -1
- package/build/sse.js +1 -1
- package/build/streamable-http.js +1 -1
- package/package.json +5 -5
- package/build/chunks/chunk-NMP7L4BX.js +0 -54
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
|
[](https://www.npmjs.com/package/@rowvyn/servicetitan-mcp)
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
[](https://modelcontextprotocol.io)
|
|
7
|
-
[](#tool-catalog)
|
|
8
8
|
[](#tool-catalog)
|
|
9
9
|
|
|
10
|
-
The only MCP server for the ServiceTitan API —
|
|
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
|
-
- **
|
|
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
|
-
|
|
160
|
+
483 tools registered across 15 domains:
|
|
161
161
|
|
|
162
162
|
| Domain | Tools | Example Tools |
|
|
163
163
|
|--------|------:|---------------|
|
|
164
|
-
| `dispatch` |
|
|
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` |
|
|
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** | **
|
|
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 | ✅
|
|
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 |
|