@elitedcs/ghl-mcp 3.4.1 → 3.5.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 +44 -0
- package/README.md +7 -6
- package/dist/index.js +69 -6
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.5.1 — doc-string accuracy
|
|
4
|
+
|
|
5
|
+
**176 tools across 38 modules. Bundle: 278.7 KB.**
|
|
6
|
+
|
|
7
|
+
Three stale tool counts caught during a documentation sweep:
|
|
8
|
+
|
|
9
|
+
- `setup_ghl_mcp`'s tool description told buyers "load all 175 tools" — visible in Claude's tool list. Updated to "176 tools (168 if you skip the optional Firebase fields; add Firebase later with enable_workflow_builder)" — both more accurate and mentions the new second-phase tool.
|
|
10
|
+
- Internal docstrings in `setup-tool.ts` and `credentials-store.ts` referenced hardcoded counts (171 and 175). Replaced with "the full tool set" so future tool additions don't make them stale again.
|
|
11
|
+
|
|
12
|
+
No functional changes. Strictly a docs/string-accuracy patch.
|
|
13
|
+
|
|
14
|
+
## 3.5.0 — `enable_workflow_builder` tool (one-call Firebase upgrade)
|
|
15
|
+
|
|
16
|
+
**176 tools across 38 modules. Bundle: 278.7 KB.**
|
|
17
|
+
|
|
18
|
+
A clean second-phase setup path for buyers who skipped Firebase on day one.
|
|
19
|
+
|
|
20
|
+
### The friction this removes
|
|
21
|
+
Before v3.5.0, a buyer who installed without Firebase (the 90% case for non-technical buyers — they get the 168 core tools and skip workflow builder until they need it) had to **re-run `setup_ghl_mcp` with all 7 fields** when they were ready to add Firebase later. Email, license key, GHL API key, location ID — all re-entered even though they were already saved.
|
|
22
|
+
|
|
23
|
+
### The fix
|
|
24
|
+
New tool `enable_workflow_builder` takes only the 3 Firebase fields (`ghl_user_id`, `ghl_firebase_api_key`, `ghl_firebase_refresh_token`). It reads the existing credentials file, validates the Firebase token refresh against `securetoken.googleapis.com`, merges the Firebase fields in, and writes back. Quit + restart Claude → 8 additional tools live.
|
|
25
|
+
|
|
26
|
+
If Firebase validation fails, the error message names the two most common causes (rotated refresh token, mismatched API key + refresh token from different rows) and links to the DevTools capture page.
|
|
27
|
+
|
|
28
|
+
### Discoverability
|
|
29
|
+
- `setup_ghl_mcp`'s success message now tells buyers about `enable_workflow_builder` when Firebase wasn't provided: *"To enable Workflow Builder later (8 extra tools): run enable_workflow_builder with your three Firebase values. No need to re-enter license/API key/location ID."*
|
|
30
|
+
- `health_check`'s Firebase "skip" detail mentions the tool too. Buyers running `health_check` for the first time see exactly how to add the missing piece.
|
|
31
|
+
|
|
32
|
+
### Registration
|
|
33
|
+
- **Non-bootstrap mode only.** Requires existing credentials — bootstrap mode buyers should run `setup_ghl_mcp` first.
|
|
34
|
+
- Returns a clear error if no credentials file exists yet.
|
|
35
|
+
|
|
36
|
+
### Verified end-to-end
|
|
37
|
+
- Tool registers (176 total).
|
|
38
|
+
- Valid Firebase credentials → 4 basic fields preserved + 3 Firebase fields added.
|
|
39
|
+
- Bogus Firebase credentials → clear error message + `isError: true`.
|
|
40
|
+
- Test cleanup left real credentials intact.
|
|
41
|
+
|
|
42
|
+
### Files changed
|
|
43
|
+
- `src/setup-tool.ts` — added `registerEnableWorkflowBuilderTool` + import `readCredentials`; updated `setup_ghl_mcp` success message to mention the new tool when Firebase isn't provided.
|
|
44
|
+
- `src/index.ts` — registers `enable_workflow_builder` in non-bootstrap mode.
|
|
45
|
+
- `src/tools/diagnostics.ts` — `health_check` Firebase skip message now points at `enable_workflow_builder`.
|
|
46
|
+
|
|
3
47
|
## 3.4.1 — fixes from real-world testing of v3.4.0 tools
|
|
4
48
|
|
|
5
49
|
**175 tools across 38 modules. Bundle: 275.2 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.** 176 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
|
|
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 168 tools are now unlocked.
|
|
102
102
|
|
|
103
103
|
### 4. Try it
|
|
104
104
|
|
|
@@ -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 8 workflow builder tools use GHL'''s internal API and require Firebase credentials. Without them, the other
|
|
141
|
+
The 8 workflow builder tools use GHL'''s internal API and require Firebase credentials. Without them, the other 168 tools work fine — you just won'''t have workflow 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 (176)
|
|
171
171
|
|
|
172
|
-
> **v3.
|
|
172
|
+
> **v3.5.0 adds `enable_workflow_builder`** — a one-call upgrade path for adding Firebase credentials to an existing install. Buyers who skip Firebase on day one can now add it later without re-entering license / API key / location ID. Reads existing credentials, validates Firebase, merges, writes back.
|
|
173
173
|
|
|
174
174
|
### CRM & Contacts (15 tools)
|
|
175
175
|
|
|
@@ -413,12 +413,13 @@ Re-run setup_ghl_mcp with workflow builder:
|
|
|
413
413
|
| `get_template_questionnaire` | Get the questionnaire for a template — present to user conversationally |
|
|
414
414
|
| `deploy_template` | Deploy a complete sub-account setup from a template (tags, fields, pipelines, workflows, forms). Supports dry-run mode. |
|
|
415
415
|
|
|
416
|
-
###
|
|
416
|
+
### Setup & Diagnostics (3 tools)
|
|
417
417
|
|
|
418
418
|
| Tool | What It Does |
|
|
419
419
|
|---|---|
|
|
420
420
|
| `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. |
|
|
421
421
|
| `health_check` | Run a full health check: npm registry + version status, GHL API key validity, default location reachability, Firebase auth status, token registry presence. Use when something feels broken. |
|
|
422
|
+
| `enable_workflow_builder` | Add Firebase credentials to an existing install to unlock the 8 workflow builder tools. No need to re-enter license / API key / location ID. Run this any time after the basic setup, on the buyer's schedule. |
|
|
422
423
|
|
|
423
424
|
### Other Modules
|
|
424
425
|
|
package/dist/index.js
CHANGED
|
@@ -31,8 +31,8 @@ var require_package = __commonJS({
|
|
|
31
31
|
"package.json"(exports2, module2) {
|
|
32
32
|
module2.exports = {
|
|
33
33
|
name: "@elitedcs/ghl-mcp",
|
|
34
|
-
version: "3.
|
|
35
|
-
description: "GoHighLevel MCP Server for Claude.
|
|
34
|
+
version: "3.5.1",
|
|
35
|
+
description: "GoHighLevel MCP Server for Claude. 176 tools \u2014 full CRM, automation, marketing control, and the only programmatic GHL workflow builder.",
|
|
36
36
|
main: "dist/index.js",
|
|
37
37
|
bin: {
|
|
38
38
|
"ghl-mcp": "dist/index.js"
|
|
@@ -6348,7 +6348,7 @@ function registerDiagnosticTools(server2, installedVersion, client, builderClien
|
|
|
6348
6348
|
})();
|
|
6349
6349
|
const firebasePromise = (async () => {
|
|
6350
6350
|
if (!builderClient) {
|
|
6351
|
-
return { name: "Firebase auth (workflow builder)", status: "skip", detail: "Not configured.
|
|
6351
|
+
return { name: "Firebase auth (workflow builder)", status: "skip", detail: "Not configured. The 8 workflow builder tools need Firebase credentials. The other 168 tools work fine without. To add it: run enable_workflow_builder with the three Firebase values from your GHL browser session (see elitedcs.com/ghl-mcp-firebase for DevTools steps)." };
|
|
6352
6352
|
}
|
|
6353
6353
|
const result = await builderClient.checkAuth();
|
|
6354
6354
|
if (result.ok) {
|
|
@@ -6586,7 +6586,7 @@ async function validateFirebase(firebaseKey, refreshToken) {
|
|
|
6586
6586
|
function registerSetupTool(server2) {
|
|
6587
6587
|
server2.tool(
|
|
6588
6588
|
"setup_ghl_mcp",
|
|
6589
|
-
"First-run setup for GHL Command MCP. Validates your license and GHL credentials, then writes them to a per-user credentials file. Restart Claude after this completes to load all
|
|
6589
|
+
"First-run setup for GHL Command MCP. Validates your license and GHL credentials, then writes them to a per-user credentials file. Restart Claude after this completes to load all 176 tools (168 if you skip the optional Firebase fields; add Firebase later with enable_workflow_builder).",
|
|
6590
6590
|
{
|
|
6591
6591
|
email: import_zod42.z.string().email().describe("Email used at purchase."),
|
|
6592
6592
|
license_key: import_zod42.z.string().min(20).describe("License key from your purchase email."),
|
|
@@ -6641,8 +6641,9 @@ Note: Firebase credentials rejected (${fb.error}). Saved without Workflow Builde
|
|
|
6641
6641
|
ghl_firebase_api_key: workflowBuilderEnabled ? args.ghl_firebase_api_key?.trim() : void 0,
|
|
6642
6642
|
ghl_firebase_refresh_token: workflowBuilderEnabled ? args.ghl_firebase_refresh_token?.trim() : void 0
|
|
6643
6643
|
});
|
|
6644
|
-
const toolCount = workflowBuilderEnabled ? "
|
|
6644
|
+
const toolCount = workflowBuilderEnabled ? "176" : "168";
|
|
6645
6645
|
const wfLine = workflowBuilderEnabled ? "Workflow Builder: enabled." : "Workflow Builder: not configured (optional).";
|
|
6646
|
+
const wfTip = workflowBuilderEnabled ? "" : "\nTo enable Workflow Builder later (8 extra tools): run enable_workflow_builder with your three Firebase values. No need to re-enter license/API key/location ID.";
|
|
6646
6647
|
return {
|
|
6647
6648
|
content: [{
|
|
6648
6649
|
type: "text",
|
|
@@ -6657,7 +6658,7 @@ Note: Firebase credentials rejected (${fb.error}). Saved without Workflow Builde
|
|
|
6657
6658
|
``,
|
|
6658
6659
|
`**Restart Claude (quit fully and reopen) to load all ${toolCount} tools.**`,
|
|
6659
6660
|
``,
|
|
6660
|
-
`After restart, try: "List my GHL contacts" or "Show my pipelines"
|
|
6661
|
+
`After restart, try: "List my GHL contacts" or "Show my pipelines".${wfTip}`,
|
|
6661
6662
|
workflowBuilderNote
|
|
6662
6663
|
].join("\n")
|
|
6663
6664
|
}]
|
|
@@ -6665,6 +6666,67 @@ Note: Firebase credentials rejected (${fb.error}). Saved without Workflow Builde
|
|
|
6665
6666
|
}
|
|
6666
6667
|
);
|
|
6667
6668
|
}
|
|
6669
|
+
function registerEnableWorkflowBuilderTool(server2) {
|
|
6670
|
+
server2.tool(
|
|
6671
|
+
"enable_workflow_builder",
|
|
6672
|
+
"Add Firebase credentials to an existing GHL Command install to unlock the 8 workflow builder tools (create/edit/clone/delete/publish workflows, validate_workflow, get_trigger_registry). Requires you've already run setup_ghl_mcp. Capture the three Firebase values from your GHL browser session \u2014 see elitedcs.com/ghl-mcp-firebase for step-by-step DevTools instructions. Tool count goes from 168 to 176 after the next Claude restart.",
|
|
6673
|
+
{
|
|
6674
|
+
ghl_user_id: import_zod42.z.string().min(10).describe("Firebase User ID (uid). DevTools \u2192 Application \u2192 IndexedDB \u2192 firebaseLocalStorageDb \u2192 firebaseLocalStorage \u2192 the value.uid field of the firebase:authUser row."),
|
|
6675
|
+
ghl_firebase_api_key: import_zod42.z.string().min(10).describe("Firebase API Key starting with 'AIza'. The string between 'firebase:authUser:' and ':[DEFAULT]' in the row's Key column."),
|
|
6676
|
+
ghl_firebase_refresh_token: import_zod42.z.string().min(10).describe("Firebase refresh token. value.stsTokenManager.refreshToken in the firebase:authUser row.")
|
|
6677
|
+
},
|
|
6678
|
+
async (args) => {
|
|
6679
|
+
const existing = readCredentials();
|
|
6680
|
+
if (!existing) {
|
|
6681
|
+
return {
|
|
6682
|
+
content: [{
|
|
6683
|
+
type: "text",
|
|
6684
|
+
text: "No existing credentials found at " + credentialsPath() + ".\n\nRun setup_ghl_mcp first to register your license and basic GHL credentials, then come back to this tool to add Workflow Builder."
|
|
6685
|
+
}],
|
|
6686
|
+
isError: true
|
|
6687
|
+
};
|
|
6688
|
+
}
|
|
6689
|
+
const fb = await validateFirebase(args.ghl_firebase_api_key.trim(), args.ghl_firebase_refresh_token.trim());
|
|
6690
|
+
if (!fb.ok) {
|
|
6691
|
+
return {
|
|
6692
|
+
content: [{
|
|
6693
|
+
type: "text",
|
|
6694
|
+
text: `Firebase credentials rejected: ${fb.error}
|
|
6695
|
+
|
|
6696
|
+
Common causes:
|
|
6697
|
+
- The refresh token has rotated (they rotate every few weeks). Re-extract from your GHL browser tab.
|
|
6698
|
+
- The Firebase API Key doesn't match the refresh token's project. Both must come from the SAME firebase:authUser row.
|
|
6699
|
+
|
|
6700
|
+
DevTools steps: https://elitedcs.com/ghl-mcp-firebase`
|
|
6701
|
+
}],
|
|
6702
|
+
isError: true
|
|
6703
|
+
};
|
|
6704
|
+
}
|
|
6705
|
+
writeCredentials({
|
|
6706
|
+
...existing,
|
|
6707
|
+
ghl_user_id: args.ghl_user_id.trim(),
|
|
6708
|
+
ghl_firebase_api_key: args.ghl_firebase_api_key.trim(),
|
|
6709
|
+
ghl_firebase_refresh_token: args.ghl_firebase_refresh_token.trim()
|
|
6710
|
+
});
|
|
6711
|
+
return {
|
|
6712
|
+
content: [{
|
|
6713
|
+
type: "text",
|
|
6714
|
+
text: [
|
|
6715
|
+
"Workflow Builder enabled!",
|
|
6716
|
+
"",
|
|
6717
|
+
"Firebase credentials verified and saved.",
|
|
6718
|
+
"",
|
|
6719
|
+
"**Restart Claude (quit fully and reopen) to load the 8 additional workflow builder tools (176 total).**",
|
|
6720
|
+
"",
|
|
6721
|
+
'After restart, try: "List my workflows in full detail" or "Validate workflow <id>".',
|
|
6722
|
+
"",
|
|
6723
|
+
"Note: Firebase refresh tokens rotate every few weeks. If workflow tools stop working, re-run enable_workflow_builder with fresh values from a current GHL browser session."
|
|
6724
|
+
].join("\n")
|
|
6725
|
+
}]
|
|
6726
|
+
};
|
|
6727
|
+
}
|
|
6728
|
+
);
|
|
6729
|
+
}
|
|
6668
6730
|
|
|
6669
6731
|
// src/tools/meta.ts
|
|
6670
6732
|
function registerMetaTools(server2, installedVersion) {
|
|
@@ -6768,6 +6830,7 @@ if (inBootstrapMode) {
|
|
|
6768
6830
|
} else {
|
|
6769
6831
|
const client = new GHLClient({ apiKey, locationId });
|
|
6770
6832
|
registerAllTools(server, client, registry, pkg.version);
|
|
6833
|
+
registerEnableWorkflowBuilderTool(server);
|
|
6771
6834
|
if (fileCreds && !process.env.GHL_API_KEY) {
|
|
6772
6835
|
process.stderr.write(`[ghl-mcp] Loaded credentials from ${credentialsPath()}
|
|
6773
6836
|
`);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elitedcs/ghl-mcp",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"description": "GoHighLevel MCP Server for Claude.
|
|
3
|
+
"version": "3.5.1",
|
|
4
|
+
"description": "GoHighLevel MCP Server for Claude. 176 tools — full CRM, automation, marketing control, and the only programmatic GHL workflow builder.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"ghl-mcp": "dist/index.js"
|