@elitedcs/ghl-mcp 3.12.0 → 3.13.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 +77 -0
- package/README.md +1 -1
- package/dist/index.js +1220 -1079
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,82 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.13.1 — Firebase token persistence fixes (reported by Don Harris)
|
|
4
|
+
|
|
5
|
+
**Bug fixes. No tool changes — still 201 tools across 43 modules.**
|
|
6
|
+
|
|
7
|
+
Two related Firebase refresh-token persistence bugs that hit the `npx @elitedcs/ghl-mcp@latest` install path. Both reported by Don Harris (flasheffect@sbcglobal.net) on 2026-05-24.
|
|
8
|
+
|
|
9
|
+
### 1. Rotated refresh token was silently dropped
|
|
10
|
+
|
|
11
|
+
`WorkflowBuilderClient.persistRefreshToken` only wrote to `cwd/.env`. Under npx there is no `.env` in cwd, so the rotated token was discarded and the next restart reloaded the stale token from `credentials.json` — eventually failing Firebase auth once the old token expired.
|
|
12
|
+
|
|
13
|
+
Now persists to **`credentials.json`** (the authoritative store for npm installs) and still writes `.env` when present (legacy wrapper-script / local-dev path). Both writes are independent and non-fatal.
|
|
14
|
+
|
|
15
|
+
### 2. Token registry lived inside the npm cache
|
|
16
|
+
|
|
17
|
+
`TokenRegistry`'s default path resolved via `__dirname` into `~/.npm/_npx/<hash>/...`. Every `@latest` update produced a new hash, orphaning the previous registry (and losing it on cache cleanup).
|
|
18
|
+
|
|
19
|
+
Now defaults to `.ghl-tokens.json` in the per-user app-data dir, alongside `credentials.json`. A one-time migration moves any legacy package-root registry on first run. The registry directory is created (0700) on save if absent, and the file is hardened to 0600.
|
|
20
|
+
|
|
21
|
+
## 3.13.0 — Memberships read + 200-tool milestone (gap-closure round 6, final)
|
|
22
|
+
|
|
23
|
+
**201 tools across 43 modules. Bundle: ~318 KB.**
|
|
24
|
+
|
|
25
|
+
Closes the last Phase-2 gap. Memberships read tools — and the tool count crosses 200.
|
|
26
|
+
|
|
27
|
+
### 3 new tools (Firebase-gated, read-only)
|
|
28
|
+
|
|
29
|
+
- **`list_membership_offers`** — offers + products in one call (`{products, offers}`). Products are courses/communities; offers are the access grants.
|
|
30
|
+
- **`list_membership_categories`** — all course categories in a location.
|
|
31
|
+
- **`list_membership_lessons`** — all course lessons in a location.
|
|
32
|
+
|
|
33
|
+
Most useful for fetching the IDs that membership trigger conditions reference: `offer_access_granted`, `product_completed`, `category_completed`, `lesson_completed`, etc.
|
|
34
|
+
|
|
35
|
+
### Endpoint discovery
|
|
36
|
+
|
|
37
|
+
From the workflow bundle's `LocationMembership` class:
|
|
38
|
+
```js
|
|
39
|
+
membershipUrl = `${config.membershipURL}` // → backend.leadconnectorhq.com/membership
|
|
40
|
+
endpoint = `${membershipUrl}/smart-list/offers-products/${locationId}`
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Verified endpoints (Firebase auth):
|
|
44
|
+
- `GET /membership/smart-list/offers-products/{loc}`
|
|
45
|
+
- `GET /membership/smart-list/location/{loc}/workflow?type=category`
|
|
46
|
+
- `GET /membership/smart-list/location/{loc}/workflow?type=lesson`
|
|
47
|
+
|
|
48
|
+
Bearer/PIT returns 401 — Firebase-gated, same as the other internal-API tools.
|
|
49
|
+
|
|
50
|
+
### Read-only by design
|
|
51
|
+
|
|
52
|
+
The workflow bundle only READS membership data (to populate trigger/action dropdowns). Creating/editing courses, offers, and lessons lives in the Memberships app and isn't exposed here — that would need a DevTools capture against a live account with actual courses. The per-product (`?product_id=`) and per-category (`/category/{id}/lessons`) filtered endpoints returned 401 for synthetic IDs and couldn't be verified without real course data, so they're not exposed; the location-scoped "list all" endpoints return everything anyway.
|
|
53
|
+
|
|
54
|
+
### Phase-2 complete
|
|
55
|
+
|
|
56
|
+
All 6 Phase-2 gap areas from the v3.8.1 analysis have now been addressed:
|
|
57
|
+
|
|
58
|
+
| Area | Result |
|
|
59
|
+
|---|---|
|
|
60
|
+
| Email templates | list/create/update (v3.10.0) |
|
|
61
|
+
| SMS/snippet templates | list-only — write is scope-walled (v3.10.1) |
|
|
62
|
+
| Smart Lists | full CRUD (v3.11.0) |
|
|
63
|
+
| Reputation | review-link-list; reviews capture-pending (v3.11.1) |
|
|
64
|
+
| Email campaigns | list (fixed) + create-draft; send capture-pending (v3.12.0) |
|
|
65
|
+
| Memberships | read-only (this release) |
|
|
66
|
+
|
|
67
|
+
The recurring limiter: high-value write actions (send a campaign, list reviews, create a course, delete a template) sit behind either GHL's IAM wall or location-resolution quirks that need a DevTools capture against a live account. Read + create-draft surfaces were reachable; full write automation for those areas is the next frontier when a live-account capture session happens.
|
|
68
|
+
|
|
69
|
+
### Tool count impact
|
|
70
|
+
|
|
71
|
+
- Total: 198 → 201 (+3) — crosses 200
|
|
72
|
+
- Modules: 42 → 43
|
|
73
|
+
|
|
74
|
+
### Files changed
|
|
75
|
+
|
|
76
|
+
- `src/tools/memberships.ts` — NEW
|
|
77
|
+
- `src/tools/index.ts` — registered membership tools
|
|
78
|
+
- `src/setup-tool.ts` — count 198 → 201
|
|
79
|
+
|
|
3
80
|
## 3.12.0 — Email campaigns: create-draft + list fix (gap-closure round 5)
|
|
4
81
|
|
|
5
82
|
**198 tools across 42 modules. Bundle: ~316 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.** 201 tools across 43 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
|
|