@elitedcs/ghl-mcp 3.1.0 → 3.2.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,86 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.2.0 — Deep trigger typing
4
+
5
+ **173 tools across 36 modules. Bundle: 248.4 KB.**
6
+
7
+ v3.1.0 made all 57 native trigger types READ cleanly via a permissive fallback. v3.2.0 deeply types 9 more of the most common ones — `form_submission`, `opportunity_created`, `opportunity_changed`, `opportunity_status_changed`, `payment_received`, `inbound_webhook`, `mailgun_email_event`, `note_add`, `task_added` — bringing typed coverage from **4 / 57 (7%) to 13 / 57 (23%)**.
8
+
9
+ For Claude that means: when you ask it to read, build, or edit a workflow using one of these triggers, it now knows the discriminated trigger type AND the field paths each one supports (e.g., `opportunity.pipelineId`, `opportunity.monetaryValue`, `form.id`, `mailgun.event`, etc.). Less guessing, fewer rejected payloads.
10
+
11
+ ### Shared trigger-schema module
12
+ - `src/trigger-schemas.ts` (NEW): single source of truth for `WorkflowTriggerSchema`. Both the read path (`workflow-builder-client.ts`) and the write path (`tools/workflow-builder.ts`) now import from this module instead of duplicating definitions.
13
+ - Bundle shrank from 249.7 KB → 248.4 KB thanks to the dedup.
14
+
15
+ ### Field paths documented per trigger
16
+ - Each typed trigger's `field` is `z.string()` with a `.describe()` listing the known field paths (extracted from `templates/trigger-schemas.json`, captured 2026-05-14). Permissive enough that new GHL fields don't crash reads, structured enough that the LLM knows what fields exist.
17
+
18
+ ### Coverage delta
19
+ | State | Typed | Reachable-but-untyped | Total |
20
+ |---|---:|---:|---:|
21
+ | Before v3.1.0 | 4 | 0 (reads crashed) | 57 |
22
+ | v3.1.0 | 4 | 53 | 57 |
23
+ | v3.2.0 | **13** | **44** | 57 |
24
+
25
+ ### Round-trip verified
26
+ - Real `form_submission` workflow from QA Test Clinic v3 parses cleanly through the new typed variant.
27
+ - 8 synthetic typed-trigger samples match their respective variants and are correctly rejected by sibling variants (discrimination works as expected).
28
+
29
+ ### Files changed
30
+ - `src/trigger-schemas.ts` — NEW: 13 typed trigger variants + `UnknownTriggerSchema` fallback in a single module.
31
+ - `src/workflow-builder-client.ts` — removed inline trigger schemas, imports from shared module.
32
+ - `src/tools/workflow-builder.ts` — removed inline trigger schemas, imports from shared module.
33
+
34
+ ## 3.1.1 — Auto-update visibility
35
+
36
+ **173 tools across 36 modules. Bundle: 249.7 KB.**
37
+
38
+ The v3.0 install email promises the MCP auto-updates on Claude restart, and it does. But the old `checkForUpdates()` only worked for local git-checkout dev installs — for buyers running `npx -y @elitedcs/ghl-mcp@latest` it silently returned. This release makes the upgrade visible and verifiable.
39
+
40
+ ### `checkForUpdates` rewritten for the npm install path
41
+ - Queries `registry.npmjs.org/@elitedcs/ghl-mcp/latest` instead of running `git fetch`.
42
+ - Writes a clear stderr line when a newer version is available: `Update available: vX → vY. Fully quit Claude (Cmd+Q on Mac) and reopen to upgrade.`
43
+ - 5 s timeout, non-blocking.
44
+
45
+ ### `get_mcp_version` tool (NEW)
46
+ - Returns installed version, latest published version on npm, and the one-line restart instruction if not current.
47
+ - Registered in BOTH bootstrap and normal modes — buyers without configured GHL credentials can still verify their MCP version.
48
+ - Use case: "Hey Claude, check your version" → instant confirmation an upgrade landed.
49
+
50
+ ### Version baked into `get_current_location`
51
+ - Adds `MCP version: vX.Y.Z` line to the response so the version surfaces naturally on the first GHL tool call of a session, no separate query needed.
52
+
53
+ ### Files changed
54
+ - `src/index.ts` — replaced git-based update check with npm registry check; registers meta tools in both modes; threads version into `registerAllTools`.
55
+ - `src/version-check.ts` — NEW: shared `fetchLatestVersion()` + `getVersionStatus()` used by startup banner and the tool.
56
+ - `src/tools/meta.ts` — NEW: `get_mcp_version` tool.
57
+ - `src/tools/index.ts` — `registerAllTools` accepts optional `mcpVersion` and threads it to the location switcher.
58
+ - `src/tools/location-switcher.ts` — appends `MCP version: vX.Y.Z` to `get_current_location` response.
59
+
60
+ ## 3.1.0 — Workflow trigger read-side coverage
61
+
62
+ **172 tools across 35 modules.**
63
+
64
+ GHL ships 57 native trigger types. The MCP previously typed only 4 (`customer_reply`, `appointment`, `contact_tag`, `pipeline_stage_updated`). Workflows using any of the other 53 — `form_submission`, `payment_received`, `opportunity_*`, `inbound_webhook`, etc. — threw Zod errors on `get_workflow_full`. This release unlocks all of them on the read side.
65
+
66
+ ### Permissive `WorkflowTriggerSchema`
67
+ - `z.union` of the 4 typed variants plus an `UnknownTriggerSchema` fallback that accepts any string-keyed `type` and a `conditions` array of arbitrary records.
68
+ - Write side is unchanged — typed triggers still get their typed conditions; unknown triggers pass through untouched on save.
69
+ - Defined in BOTH `src/workflow-builder-client.ts` and `src/tools/workflow-builder.ts` (read path + tool input schema).
70
+
71
+ ### `get_trigger_registry` tool (NEW)
72
+ - Calls GHL's marketplace endpoint `/marketplace/core/search/module?type=triggers` and returns ~85 third-party apps (Zoom, WooCommerce, Shopify, Monday, etc.) with their available triggers and `customVars`.
73
+ - Use case: discovering which marketplace triggers a sub-account can wire into workflows.
74
+ - `installedOnly` flag defaults to false (full catalogue).
75
+
76
+ ### `templates/trigger-schemas.json` reference (dev-side)
77
+ - Full catalogue: 57 native trigger types + 85 marketplace apps + 434 marketplace trigger entries, captured from the workflow-builder JS bundle + the marketplace API.
78
+ - Not shipped to npm consumers (excluded from `package.json` `files[]`) — kept in-repo as the source of truth for future typed-trigger work.
79
+
80
+ ### Coverage delta
81
+ - Before: 4 / 57 native trigger types typed (7%).
82
+ - After: 4 typed + 53 reachable via the permissive fallback (100% read coverage).
83
+
3
84
  ## 2.7.0 — Complete Type Safety (Boris Cherny A+)
4
85
 
5
86
  **171 tools across 35 modules. Bundle: 214KB.**
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # GHL Command — GoHighLevel MCP Server
2
2
 
3
- **Full GoHighLevel API access for Claude.** 171 tools across 35 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.** 173 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.
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
 
@@ -98,7 +98,7 @@ Run setup_ghl_mcp to activate GHL Command:
98
98
  ghl_location_id: YOUR_LOCATION_ID
99
99
  ```
100
100
 
101
- Approve the tool call. Server validates your license, verifies your GHL credentials, writes them to a per-user config file. **Quit Claude one more time and reopen** — all 165 tools are now unlocked.
101
+ Approve the tool call. Server validates your license, verifies your GHL credentials, writes them to a per-user config file. **Quit Claude one more time and reopen** — all 166 tools are now unlocked.
102
102
 
103
103
  ### 4. Try it
104
104
 
@@ -138,9 +138,19 @@ https://app.gohighlevel.com/v2/location/YOUR_LOCATION_ID/dashboard
138
138
 
139
139
  ## Enable Workflow Builder (Optional)
140
140
 
141
- The 6 workflow builder tools use GHL'''s internal API and require Firebase credentials. Without them, the other 165 tools work fine — you just won'''t have workflow editing.
141
+ The 7 workflow builder tools use GHL'''s internal API and require Firebase credentials. Without them, the other 166 tools work fine — you just won'''t have workflow editing.
142
142
 
143
- **The easy way:** [elitedcs.com/ghl-mcp-firebase](https://elitedcs.com/ghl-mcp-firebase) — drag the bookmarklet, click it inside GHL, your three values appear automatically. Then re-run `setup_ghl_mcp` with the extra fields:
143
+ Grab the three values from your GHL browser session, then re-run `setup_ghl_mcp` with them:
144
+
145
+ 1. Open `app.gohighlevel.com` in Chrome (or any Chromium browser), log in.
146
+ 2. Open DevTools (Cmd+Opt+I on Mac, F12 on Windows) → **Application** tab → **IndexedDB** in the left panel.
147
+ 3. Expand: `firebaseLocalStorageDb` → `firebaseLocalStorage`.
148
+ 4. Find the row whose key starts with `firebase:authUser:`.
149
+ 5. The part between `authUser:` and `:[DEFAULT]` is your **ghl_firebase_api_key** (starts with `AIza`).
150
+ 6. Inside that row's value object: `uid` is your **ghl_user_id**.
151
+ 7. Inside `value.stsTokenManager.refreshToken` is your **ghl_firebase_refresh_token**.
152
+
153
+ Then in Claude:
144
154
 
145
155
  ```
146
156
  Re-run setup_ghl_mcp with workflow builder:
@@ -148,16 +158,16 @@ Re-run setup_ghl_mcp with workflow builder:
148
158
  license_key: YOUR_LICENSE_KEY
149
159
  ghl_api_key: YOUR_GHL_API_KEY
150
160
  ghl_location_id: YOUR_LOCATION_ID
151
- ghl_user_id: FROM_FIREBASE_CAPTURE
152
- ghl_firebase_api_key: FROM_FIREBASE_CAPTURE
153
- ghl_firebase_refresh_token: FROM_FIREBASE_CAPTURE
161
+ ghl_user_id: FROM_STEP_6
162
+ ghl_firebase_api_key: FROM_STEP_5
163
+ ghl_firebase_refresh_token: FROM_STEP_7
154
164
  ```
155
165
 
156
- > Firebase refresh tokens can rotate. If workflow tools stop working after a few weeks, run the capture again and re-run setup_ghl_mcp with the fresh values.
166
+ > Firebase refresh tokens can rotate. If workflow tools stop working after a few weeks, repeat steps 1–7 and re-run setup_ghl_mcp with fresh values.
157
167
 
158
168
  ---
159
169
 
160
- ## Tools (171)
170
+ ## Tools (173)
161
171
 
162
172
  ### CRM & Contacts (15 tools)
163
173
 
@@ -322,7 +332,7 @@ Re-run setup_ghl_mcp with workflow builder:
322
332
  | `get_subscriptions` | List active subscriptions |
323
333
  | `get_transactions` | View transaction history |
324
334
 
325
- ### Workflow Builder (6 tools) — Internal API
335
+ ### Workflow Builder (7 tools) — Internal API
326
336
 
327
337
  > **This is the flagship feature.** GHL's public API has **zero** workflow write endpoints. These tools use GHL's internal backend API — the same API their own UI calls — reverse-engineered to give Claude full workflow CRUD. No other GHL integration, Zapier connector, or third-party tool can create or edit workflows programmatically. Requires additional Firebase auth setup (see "Enable Workflow Builder" in Quick Start above).
328
338
 
@@ -334,12 +344,13 @@ Re-run setup_ghl_mcp with workflow builder:
334
344
  | `update_workflow_actions` | Add, edit, or remove actions, triggers, and branches in an existing workflow |
335
345
  | `delete_workflow_full` | Permanently delete a workflow |
336
346
  | `publish_workflow` | Publish a draft workflow to make it active |
347
+ | `get_trigger_registry` | Discover GHL's marketplace trigger apps (Zoom, WooCommerce, Shopify, etc.) and their available trigger templates |
337
348
 
338
349
  **What you can build:** Complete automation sequences — lead nurture drip campaigns, appointment reminder sequences, onboarding flows, re-engagement workflows, internal notification chains. Tell Claude what you want and it builds the workflow action by action.
339
350
 
340
351
  **Supported action types:** `sms`, `email`, `add_contact_tag`, `remove_contact_tag`, `update_contact_field`, `wait`, `if_else`, `webhook`, `create_opportunity`, `custom_code`, `add_notes`, `internal_notification`, `task-notification`, `remove_from_workflow`, and more.
341
352
 
342
- **Supported trigger types:** `contact_tag`, `contact_created`, `form_submission`, `customer_reply`, `appointment`, `inbound_webhook`, `payment_received`, and more.
353
+ **Supported trigger types:** All 57 native GHL trigger types read cleanly. **13 are deeply typed** with documented field paths (contact_tag, customer_reply, appointment, pipeline_stage_updated, form_submission, opportunity_created, opportunity_changed, opportunity_status_changed, payment_received, inbound_webhook, mailgun_email_event, note_add, task_added). The other 44 pass through a permissive schema so workflows never fail to read regardless of trigger type. Plus 434 marketplace trigger entries across 85 third-party apps — query them via `get_trigger_registry`.
343
354
 
344
355
  ### Pipeline Builder (5 tools) — Internal API
345
356
 
@@ -399,6 +410,12 @@ Re-run setup_ghl_mcp with workflow builder:
399
410
  | `get_template_questionnaire` | Get the questionnaire for a template — present to user conversationally |
400
411
  | `deploy_template` | Deploy a complete sub-account setup from a template (tags, fields, pipelines, workflows, forms). Supports dry-run mode. |
401
412
 
413
+ ### Meta (1 tool)
414
+
415
+ | Tool | What It Does |
416
+ |---|---|
417
+ | `get_mcp_version` | Check installed version against the latest published to npm. Confirms an upgrade landed after restarting Claude. Available even before GHL credentials are configured. |
418
+
402
419
  ### Other Modules
403
420
 
404
421
  | Module | Tools | What It Does |