@elitedcs/ghl-mcp 3.8.0 → 3.9.0

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
@@ -1,5 +1,101 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.9.0 — Products + Trigger Links CRUD (gap-closure round 1)
4
+
5
+ **187 tools across 39 modules. Bundle: 300.9 KB.**
6
+
7
+ Closes two known buyer-visible write gaps surfaced in the v3.8.1 gap analysis. Both use the public GHL API (no Firebase required) so they unlock for every install, not just buyers who've completed Firebase setup.
8
+
9
+ ### Products (6 new tools)
10
+ New module `src/tools/products.ts`. Products underlie invoices, memberships, courses, and e-commerce — previously invisible to MCP write tools.
11
+
12
+ - `list_products` — paginated list with optional name+description search
13
+ - `get_product` — full details (media, variants, taxes, status)
14
+ - `create_product` — name + productType (DIGITAL / PHYSICAL / SERVICE / PHYSICAL_DIGITAL), optional description, image, statement descriptor
15
+ - `update_product` — partial updates work (fetch-then-merge: only the fields you pass change)
16
+ - `delete_product` — confirm:"DELETE" gated
17
+ - `list_product_prices` — read prices on a single product
18
+
19
+ **Honest scope note:** Price writes (POST/PUT/DELETE on `/products/{id}/price`) return 403 with sub-account Private Integration scopes. Probably need agency-level auth. Not exposed.
20
+
21
+ ### Trigger Links (3 new tools, on top of existing `get_trigger_links`)
22
+ Agencies use trigger links heavily for campaign tracking. The list endpoint was already there but write tools were missing.
23
+
24
+ - `create_trigger_link` — name + redirectTo (URL or merge-field like `{{contact.website}}`)
25
+ - `update_trigger_link` — rename or change destination; tracking key + short URL stay the same
26
+ - `delete_trigger_link` — confirm:"DELETE" gated
27
+
28
+ **Verified end-to-end** against MCP Testing: created → updated → listed → deleted, both modules.
29
+
30
+ ### Gap analysis findings (what we DIDN'T ship and why)
31
+
32
+ Probed GHL's public API for every Tier 1+2 item from the v3.8.1 gap analysis. Results:
33
+
34
+ | Area | Public API status | Action |
35
+ |---|---|---|
36
+ | Products CRUD | ✅ 200 | **Shipped in v3.9.0** |
37
+ | Trigger Links CRUD | ✅ 200 / 201 | **Shipped in v3.9.0** |
38
+ | Email templates | ❌ 404 (no endpoint) | Would need internal-API reverse-engineering |
39
+ | SMS templates / snippets | ❌ 404 | Same |
40
+ | Email campaigns create/send | ❌ 404 (only list works) | Same |
41
+ | Reviews / reputation | ❌ 404 | Same |
42
+ | Smart Lists / saved searches | ❌ 404 / 400 | Same |
43
+ | Memberships sub-features (offers, lessons) | ❌ 404 | Same |
44
+ | Product price writes | ❌ 403 with sub-account scope | Likely agency-only |
45
+
46
+ For the 404 items, the same DevTools-capture methodology we used for workflow-builder and funnel-builder would work, but each one is a Phase-2-style investment.
47
+
48
+ ### Tool count impact
49
+ - Total: 178 → 187 (+9)
50
+ - Without Firebase: 148 → 157 (all new tools use public API, no Firebase required)
51
+ - With Firebase: 178 → 187
52
+ - Modules: 38 → 39 (new products module)
53
+
54
+ ### Files changed
55
+ - `src/tools/products.ts` (NEW)
56
+ - `src/tools/trigger-links.ts` — added 3 write tools
57
+ - `src/tools/index.ts` — registered new products module
58
+ - `src/setup-tool.ts` — refreshed tool counts (148 → 157, 178 → 187)
59
+
60
+ ## 3.8.1 — Vitest test suite + pre-publish gate
61
+
62
+ **178 tools across 38 modules. Bundle: 291.3 KB (unchanged).**
63
+
64
+ Strict safety patch. No new features, no behavior changes — just tests covering the high-risk code paths so regressions get caught at build time instead of in production.
65
+
66
+ ### New: Vitest test suite (87 tests, 154ms)
67
+ Four test files added under `src/`:
68
+
69
+ - `retry.test.ts` (15 tests) — `computeRetryDelay`: Retry-After delta-seconds + HTTP-date parsing + clamping + full-jitter backoff math. Catches the "5junk" mixed-string regression and the "doubles per attempt" backoff guarantee.
70
+ - `trigger-schemas.test.ts` (60 tests) — Every one of the 57 native trigger types parses through its typed variant. Unknown future types fall through to the permissive fallback. Real-world `form_submission` payload preserves passthrough fields.
71
+ - `workflow-builder-client.test.ts` (7 tests) — `normalizeRemoveFromWorkflowAction` covers all branches (no-op when both fields present, synthesize string from array, synthesize array from string, multi-element array picks first, empty array no-op, non-target action type no-op, missing attributes no-op).
72
+ - `version-check.test.ts` (5 + tests) — `fetchLatestVersion` + `getVersionStatus` with mocked `fetch`: 200/non-2xx/network-error/missing-version-field/non-string-version cases.
73
+
74
+ ### CI gate
75
+ The npm publish workflow now runs `npm test` before the tag-vs-version check. **Tests must pass for a release to ship.** Combined with the post-publish smoke test that verifies the package boots cleanly on a fresh machine, both surfaces are now covered:
76
+
77
+ - Pre-publish: schema correctness, normalization logic, retry math
78
+ - Post-publish: server boots, tool registry includes required tools
79
+
80
+ ### New npm scripts
81
+ - `npm test` — run once, exit
82
+ - `npm run test:watch` — re-run on file change during development
83
+
84
+ ### Dev-only dep added
85
+ - `vitest@^4.1.6` (devDependencies — not shipped to consumers; the npm tarball is unchanged size)
86
+
87
+ ### `normalizeRemoveFromWorkflowAction` now exported
88
+ Was private in v3.8.0. Made public so tests can exercise it directly. Still not exposed via MCP — it's a runtime detail used by `getWorkflow` (read) and `buildActionChain` (write).
89
+
90
+ ### Files changed
91
+ - `src/retry.test.ts` (NEW)
92
+ - `src/trigger-schemas.test.ts` (NEW)
93
+ - `src/workflow-builder-client.test.ts` (NEW)
94
+ - `src/version-check.test.ts` (NEW)
95
+ - `src/workflow-builder-client.ts` — `normalizeRemoveFromWorkflowAction` now exported
96
+ - `package.json` — `vitest` dev dep + `test` / `test:watch` scripts
97
+ - `.github/workflows/publish.yml` — added pre-publish test step
98
+
3
99
  ## 3.8.0 — Bundle re-extraction wins (triggers + goal events) + correctness fixes
4
100
 
5
101
  **178 tools across 38 modules. Bundle: 291.3 KB.**
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # GHL Command — GoHighLevel MCP Server
2
2
 
3
- **Full GoHighLevel API access for Claude.** 178 tools across 36 modules — manage contacts, conversations, pipelines, calendars, funnels, workflows, invoices, custom objects, webhooks, and more. **Includes full workflow builder, funnel/page editor, form builder, pipeline builder, bulk operations, account export, and workflow cloning** — capabilities no other GHL tool offers.
3
+ **Full GoHighLevel API access for Claude.** 187 tools across 39 modules — manage contacts, conversations, pipelines, calendars, funnels, workflows, invoices, custom objects, webhooks, and more. **Includes full workflow builder, funnel/page editor, form builder, pipeline builder, bulk operations, account export, and workflow cloning** — capabilities no other GHL tool offers.
4
4
 
5
5
  **Distributed via npm as [`@elitedcs/ghl-mcp`](https://www.npmjs.com/package/@elitedcs/ghl-mcp).** Buyers install with one config block — no git, no Node.js setup, no terminal commands. Updates flow automatically (`npx @latest` re-resolves on every Claude restart).
6
6
 
@@ -138,7 +138,7 @@ https://app.gohighlevel.com/v2/location/YOUR_LOCATION_ID/dashboard
138
138
 
139
139
  ## Enable Workflow Builder (Optional)
140
140
 
141
- The 30 builder + cloner + validator tools (workflow builder, funnel builder, form builder, pipeline builder, workflow cloner, validate_workflow) use GHL'''s internal API and require Firebase credentials. Without them, the other 148 tools work fine — you just won'''t have workflow/funnel/form/pipeline editing.
141
+ The 30 builder + cloner + validator tools (workflow builder, funnel builder, form builder, pipeline builder, workflow cloner, validate_workflow) use GHL'''s internal API and require Firebase credentials. Without them, the other 157 tools work fine — you just won'''t have workflow/funnel/form/pipeline editing.
142
142
 
143
143
  Grab the three values from your GHL browser session, then re-run `setup_ghl_mcp` with them:
144
144
 
@@ -167,9 +167,9 @@ Re-run setup_ghl_mcp with workflow builder:
167
167
 
168
168
  ---
169
169
 
170
- ## Tools (178)
170
+ ## Tools (187)
171
171
 
172
- > **v3.7.0 fixes Don Harris's 2026-05-14 funnel-builder audit.** All six previously-broken funnel write tools (`update_funnel`, `create_funnel_page`, `delete_funnel_page`, `delete_funnel`, `update_page_content`, plus `create_funnel` which 401'd) now hit the correct GHL endpoints. New: `update_funnel_step` for per-step renames / slugs / domains. Origin + Referer headers added to all funnel writes required by GHL's IAM, missing before.
172
+ > **v3.9.0 closes the Products + Trigger Links gap.** New: full Products CRUD (`list_products`, `get_product`, `create_product`, `update_product`, `delete_product`, `list_product_prices`) products underlie invoices, memberships, courses, and e-commerce. New: Trigger Links CRUD (`create_trigger_link`, `update_trigger_link`, `delete_trigger_link`) agencies use these for trackable links in campaigns. Both use the public GHL API (no Firebase needed).
173
173
 
174
174
  ### CRM & Contacts (15 tools)
175
175