@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 +96 -0
- package/README.md +4 -4
- package/dist/index.js +612 -441
- package/package.json +6 -3
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.**
|
|
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
|
|
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 (
|
|
170
|
+
## Tools (187)
|
|
171
171
|
|
|
172
|
-
> **v3.
|
|
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
|
|