@elitedcs/ghl-mcp 3.8.1 → 3.10.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,103 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.10.0 — Email Templates (gap-closure round 2)
4
+
5
+ **190 tools across 39 modules. Bundle: 304.6 KB.**
6
+
7
+ Closes another buyer-visible gap from the v3.8.1 analysis. Email templates power both standalone marketing emails and workflow email actions — agencies have been asking for programmatic management since day one.
8
+
9
+ ### How GHL's API is structured
10
+ GHL calls these "builders" in the public API (the term comes from the drag-and-drop email-builder UI). One template is one builder. Each template has metadata (id, title, type, version, lastUpdated) plus HTML content stored separately in Firebase storage.
11
+
12
+ ### 3 new tools
13
+ - **`list_email_templates`** — paginated list of all email templates in a location
14
+ - **`create_email_template`** — create a template shell. Required: `title`, `type` (one of `html`, `folder`, `import`, `builder`, `blank`, `ai_template`, `vibe-editor`). Response includes the new template `id`.
15
+ - **`update_email_template`** — save HTML content into an existing template. Takes `templateId`, `html`, `editorType` (one of `html`, `builder`), and optional `updatedBy` (defaults to "mcp"). Response includes the Firebase storage preview URL.
16
+
17
+ ### Endpoint discovery transparency
18
+ Probed extensively. **Three endpoints work on the public API:**
19
+ - `GET /emails/builder?locationId=X` — list ✅
20
+ - `POST /emails/builder` with `{locationId, title, type}` — create ✅
21
+ - `POST /emails/builder/data` with `{locationId, templateId, html, editorType, updatedBy}` — save content ✅
22
+
23
+ **Three operations are NOT on the public API:**
24
+ - `GET /emails/builder/{id}` returns 404 — single-get doesn't exist
25
+ - `PUT /emails/builder/{id}` returns 404 — renaming after create is not exposed
26
+ - `DELETE /emails/builder/{id}` returns 404 — deletion is not exposed (also tried on the internal backend.leadconnectorhq.com host with the same auth — still 404)
27
+
28
+ These three likely live on GHL's internal API behind Firebase auth. Reaching them would need the same DevTools-capture work that unlocked workflow-builder and funnel-builder. Buyers can delete/rename via the GHL UI for now.
29
+
30
+ ### Round-trip verified against MCP Testing
31
+ - 3/3 new tools registered (190 total)
32
+ - Created template → saved HTML content with merge-field syntax → listed and confirmed the template appeared with the new `templateType: html` flag and a Firebase storage preview URL.
33
+
34
+ ### Tool count impact
35
+ - Total: 187 → 190 (+3)
36
+ - Without Firebase: 157 → 160 (all new tools are public API)
37
+
38
+ ### Field-name quirk worth knowing
39
+ On WRITE, the title field is called `title`. On READ in the list response, it shows up as `name`. The `create_email_template` tool's parameter is `title` (matching write); the list response gives buyers `name` (matching GHL's read shape). Not something Claude needs to worry about — the tools handle the conversion implicitly.
40
+
41
+ ### Files changed
42
+ - `src/tools/emails.ts` — added 3 template tools alongside the existing `get_email_campaigns`
43
+
44
+ ## 3.9.0 — Products + Trigger Links CRUD (gap-closure round 1)
45
+
46
+ **187 tools across 39 modules. Bundle: 300.9 KB.**
47
+
48
+ 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.
49
+
50
+ ### Products (6 new tools)
51
+ New module `src/tools/products.ts`. Products underlie invoices, memberships, courses, and e-commerce — previously invisible to MCP write tools.
52
+
53
+ - `list_products` — paginated list with optional name+description search
54
+ - `get_product` — full details (media, variants, taxes, status)
55
+ - `create_product` — name + productType (DIGITAL / PHYSICAL / SERVICE / PHYSICAL_DIGITAL), optional description, image, statement descriptor
56
+ - `update_product` — partial updates work (fetch-then-merge: only the fields you pass change)
57
+ - `delete_product` — confirm:"DELETE" gated
58
+ - `list_product_prices` — read prices on a single product
59
+
60
+ **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.
61
+
62
+ ### Trigger Links (3 new tools, on top of existing `get_trigger_links`)
63
+ Agencies use trigger links heavily for campaign tracking. The list endpoint was already there but write tools were missing.
64
+
65
+ - `create_trigger_link` — name + redirectTo (URL or merge-field like `{{contact.website}}`)
66
+ - `update_trigger_link` — rename or change destination; tracking key + short URL stay the same
67
+ - `delete_trigger_link` — confirm:"DELETE" gated
68
+
69
+ **Verified end-to-end** against MCP Testing: created → updated → listed → deleted, both modules.
70
+
71
+ ### Gap analysis findings (what we DIDN'T ship and why)
72
+
73
+ Probed GHL's public API for every Tier 1+2 item from the v3.8.1 gap analysis. Results:
74
+
75
+ | Area | Public API status | Action |
76
+ |---|---|---|
77
+ | Products CRUD | ✅ 200 | **Shipped in v3.9.0** |
78
+ | Trigger Links CRUD | ✅ 200 / 201 | **Shipped in v3.9.0** |
79
+ | Email templates | ❌ 404 (no endpoint) | Would need internal-API reverse-engineering |
80
+ | SMS templates / snippets | ❌ 404 | Same |
81
+ | Email campaigns create/send | ❌ 404 (only list works) | Same |
82
+ | Reviews / reputation | ❌ 404 | Same |
83
+ | Smart Lists / saved searches | ❌ 404 / 400 | Same |
84
+ | Memberships sub-features (offers, lessons) | ❌ 404 | Same |
85
+ | Product price writes | ❌ 403 with sub-account scope | Likely agency-only |
86
+
87
+ 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.
88
+
89
+ ### Tool count impact
90
+ - Total: 178 → 187 (+9)
91
+ - Without Firebase: 148 → 157 (all new tools use public API, no Firebase required)
92
+ - With Firebase: 178 → 187
93
+ - Modules: 38 → 39 (new products module)
94
+
95
+ ### Files changed
96
+ - `src/tools/products.ts` (NEW)
97
+ - `src/tools/trigger-links.ts` — added 3 write tools
98
+ - `src/tools/index.ts` — registered new products module
99
+ - `src/setup-tool.ts` — refreshed tool counts (148 → 157, 178 → 187)
100
+
3
101
  ## 3.8.1 — Vitest test suite + pre-publish gate
4
102
 
5
103
  **178 tools across 38 modules. Bundle: 291.3 KB (unchanged).**
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.** 190 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 160 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 (190)
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.10.0 adds Email Templates** (`list_email_templates`, `create_email_template`, `update_email_template`) Claude can now create new HTML email templates and save content into them via the public API. Templates power both standalone marketing emails and workflow email actions. Delete + rename remain UI-only (no public-API endpoint exists).
173
173
 
174
174
  ### CRM & Contacts (15 tools)
175
175