@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 +98 -0
- package/README.md +4 -4
- package/dist/index.js +665 -441
- package/package.json +2 -2
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.**
|
|
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
|
|
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 (
|
|
170
|
+
## Tools (190)
|
|
171
171
|
|
|
172
|
-
> **v3.
|
|
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
|
|