@elitedcs/ghl-mcp 3.91.0 → 3.92.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 +49 -13
- package/README.md +4 -4
- package/dist/brain-function.js +18653 -0
- package/dist/capture-helper.js +84 -53
- package/dist/index.js +29577 -16677
- package/guide/guide.html +3 -3
- package/package.json +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.92.1: 3.92.0, released
|
|
4
|
+
|
|
5
|
+
This release is exactly 3.92.0's content, the client brain. 3.92.0 never reached npm because a packaging step ran in the wrong order; 3.92.1 fixes that step and changes nothing else.
|
|
6
|
+
|
|
7
|
+
## 3.92.0: The client brain, a memory of each client that every agent reads first (the plan above Command Pro)
|
|
8
|
+
|
|
9
|
+
This release is everything in 3.91.1, plus the changes below.
|
|
10
|
+
|
|
11
|
+
**The client brain.** The client brain comes only with the plan above Command Pro. On GHL Command and Command Pro, its tools answer that they are not included in your license, except export and the off switch (see Known limits). One small memory for each client, kept in a database in your own Supabase account, never ours. For each client it holds the status of every lead it has heard about (booked, opted out, or needs a person), the client's own rules with their reasons, a few facts with where each came from, the client's words, and example replies. The brain reads one short brief from it before every draft, and Claude can read the same brief when you ask about a lead.
|
|
12
|
+
|
|
13
|
+
**Drafts, never sends.** When a lead replies, the brain writes a draft answer as a note on the contact in GoHighLevel. Code checks every draft before the note is written. A draft that fails is still written, headed "BLOCKED, not for sending" or "HELD, not sent", with the reason. Sending is switched off in this version: you send the reply yourself in GoHighLevel. The brain writes no draft for a lead with do-not-disturb on, a lead who replied STOP or another opt-out word, or a lead carrying an opt-out tag, and it hands a lead to a person when a message only might mean stop or uses one of its escalation words.
|
|
14
|
+
|
|
15
|
+
**Every change waits for your yes.** Each tool that changes the brain shows you the plan first and writes nothing. It applies only when you say yes to that exact plan, and that yes lapses after 30 minutes. Facts are proposed with their source and reach agents only after a person approves them.
|
|
16
|
+
|
|
17
|
+
**The brain adds 15 tools, on the plan above Command Pro only:** brain_setup, brain_wire_ghl, brain_set_rules, brain_set_glossary, brain_set_caps, brain_set_examples, brain_propose_fact, brain_review, brain_clear_human, brain_forget_contact, brain_log, brain_audit, brain_export, brain_retire and get_contact_brief. GHL Command's own tool count does not change. Setting the brain up or connecting a client's GoHighLevel works only on accounts marked as a practice sandbox in this version, and only on the computer that set the brain up. Pause and retire work on any account.
|
|
18
|
+
|
|
19
|
+
**Your data stays yours.** brain_export saves the brain's records to your computer: its rules, active facts, examples, glossary, each lead's status, events, decisions and proposals, plus a record of every lead you asked it to forget. When a license for the plan above Command Pro ends, export and the off switches keep working only when the owner's signed license is on this computer; team logins are refused.
|
|
20
|
+
|
|
21
|
+
**Your saved settings are protected from being undone.** Every save of the settings file on this computer now reads the file again first and changes only its own fields, so a slow license check, a Workflow Builder login or a second setup can no longer roll back something saved a moment earlier. Re-running setup with the same license now keeps your saved Anthropic key and cockpit key.
|
|
22
|
+
|
|
23
|
+
**Privacy wording corrected.** The connector, checkup and README text now says plainly what leaves your computer. In short, each key goes only to its own service, except that the client brain keeps the client's GoHighLevel key, its own Anthropic key, your GHL Command license key and the credential it uses to check that license inside your own Supabase project. The brain's own write key is stored only in the workflows it wires in GoHighLevel. Account data goes only to GoHighLevel, your own Claude account and services you connect yourself, and GHL Command sends us a few anonymous install, startup and first-use counts with no account data. Turn those off with GHL_TELEMETRY=0 or DO_NOT_TRACK=1.
|
|
24
|
+
|
|
25
|
+
**Known limits.** When the license is not active, export and the off switch for the client brain check that the owner's signed license is on this computer. They do not check who is typing. So anyone using the owner's computer, or a copy of its config folder, can export the brain or switch it off, even after the license ends. Keep that folder as private as the keys it holds. GHL Command in Claude and the cockpit can both save the settings file. Each save checks the license is still the one on file, but two saves in the same instant from the two programs can still lose one of them; at worst a setting has to be saved again. After a cancel, the cockpit's hand-off page works only while the cockpit is still running (closing the browser tab is fine; it reopens). Once the cockpit stops, export and the off switch run from Claude chat with brain_export and brain_retire.
|
|
26
|
+
|
|
27
|
+
## 3.91.1: Step 7, Staff, says what is true, and one rule decides who gets an admin login
|
|
28
|
+
|
|
29
|
+
This release is everything in 3.91.0, plus the changes below.
|
|
30
|
+
|
|
31
|
+
**One rule for who gets an admin login.** Anyone whose job says owner, founder, admin, administrator, CEO, principal or director gets an admin login. If nobody on the team has a job like that, the first person listed gets one, so someone can run the account. Build and Add them for me now follow the same rule, and both mark that person with Admin login before anything is made. Someone who already has a login keeps the level they have.
|
|
32
|
+
|
|
33
|
+
**Step 7, Staff, says only what it checked.** It says Build waits for the staff, not Intake, it no longer says calendars and lead alerts will use the people it found, and when it cannot add people it says why: the agency key is not connected yet, your plan does not allow it, or GoHighLevel refused it. The board's staff panel now says when someone is in the account at a different login level, as step 7 does. Blueprint Review says the staff are not checked yet, rather than not in the account, when it could not read them.
|
|
34
|
+
|
|
35
|
+
**A one-time password stays on the page you are on.** When GoHighLevel sets a password for someone it has not listed yet, the page keeps it and shows it the first time a check finds them; Check again and a second Add them for me keep it too. Reloading the page still clears it, so copy it when it appears. Someone taken off the team while their login was being made is shown as still being set up, never as could not be added. When a Build in the cockpit makes someone and GoHighLevel requires a password, the cockpit never shows or keeps it: reset that person's password in GoHighLevel.
|
|
36
|
+
|
|
37
|
+
**Known limits.** Other programs on this computer, or other people signed in to it, can read what the cockpit shows, including a one-time password while it is on step 7, Staff. Keep the computer to yourself. If two people on the team share a name, their password lines look the same; check the email in GoHighLevel. If you take someone off the team while their login is still being set up, their password is not shown; reset it in GoHighLevel if you add them back.
|
|
38
|
+
|
|
3
39
|
## 3.91.0: The board and the brief open much faster
|
|
4
40
|
|
|
5
41
|
This release is everything in 3.90.1, plus the change below.
|
|
@@ -26,8 +62,6 @@ This release is everything in 3.90.0, plus the fix below. It fixes behavior that
|
|
|
26
62
|
|
|
27
63
|
**A new login is never made twice while GoHighLevel catches up.** GoHighLevel can take a minute to list a login it has just made. Until it does, step 7 and the board say the person "is still being set up in GoHighLevel", and Add them for me does not send them again, from any page or window, for up to 10 minutes. If GoHighLevel insisted on a password, step 7 now shows the one-time password, as the board does.
|
|
28
64
|
|
|
29
|
-
**Known limits, fixed in the next release.** The board's staff panel does not show when someone's login level differs from the list. If someone is taken off the team while their login is being made and the connection drops, step 7 can still say they could not be added. Without an agency key, step 7 says your plan does not let you add people. The staff step says Intake waits for it (only Build does), and says calendars and lead alerts will use the people found, which it does not check. Blueprint Review says staff are not in the account when it could not read them. When nobody's job says owner, Build makes the first person listed an admin, while Add them for me makes them a user; Build's confirmation shows it before anything is made.
|
|
30
|
-
|
|
31
65
|
After Add them for me or Confirm and build, check the client's GoHighLevel Users list.
|
|
32
66
|
|
|
33
67
|
## 3.90.0: the cockpit never acts on the wrong client, and refuses a change made from an old page
|
|
@@ -391,6 +425,19 @@ This is a beta, a test build for members who want the next release early. It is
|
|
|
391
425
|
**verify_design and extract_brand open pages in a fresh browser** with no saved logins. verify_design renders a local page only from your project folder or your brand folder. To use another folder, set GHL_MCP_DESIGN_DIR to it.
|
|
392
426
|
|
|
393
427
|
**The cockpit intake no longer reads a link.** Open the page, copy its text, and paste it into Paste a transcript.
|
|
428
|
+
## Unreleased: Brain drafts are easier to read
|
|
429
|
+
|
|
430
|
+
On the Brain drafts screen, each draft now names the lead it is for (their name, or their email or phone when there is no name) instead of a code, and every check reads in plain English, such as "Not opted out". After you approve or reject, a confirmation stays on screen for a few seconds, or until you dismiss it, and says plainly whether anything was sent. While sending is switched off it reads "Approved. Sending is switched off, so nothing was sent."
|
|
431
|
+
|
|
432
|
+
## Unreleased
|
|
433
|
+
|
|
434
|
+
Client brain sending, still switched off and sandbox only: every draft now shows how long ago the facts behind it were read, and a send is refused when those facts are more than 30 minutes old. Drafting and sending both skip a lead who is on do-not-disturb, carries an opt-out tag or replied STOP, and this is checked again right before a send. The brain sends at most one reply to a lead and 20 replies per client each day, counted from its send log.
|
|
435
|
+
|
|
436
|
+
The cockpit's Approve button is now wired all the way to the send, still switched off in this version. When sending is switched on in a future release, you approve one reply, confirm with Touch ID, and that exact reply goes to that lead once, at the address or number the Touch ID prompt showed you, on the channel you chose. A note on the contact says who approved it. If the lead's address changes after you approve, nothing is sent. A client is put into send mode from the cockpit only, with Touch ID, after 7 days of drafts with at least 95% approved, and switching back to drafts takes effect at once.
|
|
437
|
+
|
|
438
|
+
Every brain send, every refused send and every outcome is now one line in a send log on your computer: who approved it, which approval, a fingerprint of the exact words, the recipient, the channel, the time, the result and GoHighLevel's message id. The Brain drafts screen lists it for each client, newest first, with the recipient partly hidden. No keys or signatures are ever written to it.
|
|
439
|
+
|
|
440
|
+
If your membership ends, your client brain is yours. A new page, Your client brain, lets you download everything the brain holds as one file you keep, and pause the brain for every client, which stops drafting and any sending at once and deletes nothing. It keeps working in a cockpit that is still open after your membership ends, and the page that says your license needs attention links to it. Sending stops the moment a membership ends; drafting carries on in your own accounts until you pause or retire it.
|
|
394
441
|
|
|
395
442
|
## 3.88.2: a workflow waiting on a calendar is never switched on
|
|
396
443
|
|
|
@@ -860,7 +907,6 @@ website, and that pages are a separate job after the account exists, on hosting
|
|
|
860
907
|
member owns. A test pins the skill and the plan format together so they cannot
|
|
861
908
|
disagree again.
|
|
862
909
|
|
|
863
|
-
|
|
864
910
|
## 3.83.0 — a build you can check, and no funnel at the end of it
|
|
865
911
|
|
|
866
912
|
**Blueprint no longer builds a funnel, a page, or a website of any kind.** GoHighLevel's own page
|
|
@@ -889,14 +935,12 @@ retried into a duplicate; and read-backs retry a timeout but never retry a genui
|
|
|
889
935
|
running GHL Command, the stages use the plan you already pay for. Saving a key switches every stage to
|
|
890
936
|
usage billing, which the cockpit and the member hub now say plainly.
|
|
891
937
|
|
|
892
|
-
|
|
893
938
|
- Brief checks the intake and writes the review; the build plan is prepared when Build runs.
|
|
894
939
|
- Changed intake answers require a fresh review, changed build plans require verification, and live workflow repairs need approval of the listed changes.
|
|
895
940
|
- Client pages keep the selected client, open the shared intake answers, separate existing inventory from build evidence, and keep generated drafts for review.
|
|
896
941
|
- Verify prepares the client handoff. Local files are shown as prepared, not published, and handoff email delivery requires a reviewed recipient and explicit confirmation.
|
|
897
942
|
- Your agency now has a creation-only switch for sub-accounts from chat. Package preparation creates catalog products and leaves pricing and payment links as a visible manual task.
|
|
898
943
|
|
|
899
|
-
|
|
900
944
|
- Register an existing sub-account on either plan path, replace a saved account key, and see chat registrations in the cockpit without restarting. Creation checks the agency connection first and keeps an account visible when its key could not be saved.
|
|
901
945
|
- Intake keeps Interview answers, loads submitted answers, asks before replacing corrections, and identifies missing respondent details. Source uploads are limited to supported text formats and show the 60,000-character limit. Prepared forms and client documents have clickable links.
|
|
902
946
|
- Client Builds checks account access and setup before running, explains Intake’s writes, and uses the same practice-account rules everywhere. Failed verification blocks sign-off, and manual obligations remain visible until checked.
|
|
@@ -910,7 +954,6 @@ usage billing, which the cockpit and the member hub now say plainly.
|
|
|
910
954
|
- **Build a client account guidance corrected.** Existing clients are behind “Work on a client already registered →” and are never pre-selected. Registration confirms the sub-account name and id, never a key hint.
|
|
911
955
|
- **Deletion is separate from registration.** Removing a saved key does not delete the GoHighLevel account. Deletion requires separate authorization; no claim is made that the account's creation method determines whether it can be deleted.
|
|
912
956
|
|
|
913
|
-
|
|
914
957
|
## 3.82.0 — the cockpit laid out like the hub, for Command OS subscribers
|
|
915
958
|
|
|
916
959
|
The Command OS cockpit was built for one job, the Blueprint build, and that one section
|
|
@@ -1502,7 +1545,6 @@ It caught two files that a careful pass by hand had already missed.
|
|
|
1502
1545
|
|
|
1503
1546
|
Counts unchanged: 247 tools, 51 modules, free tier 111. No tool behaviour changed.
|
|
1504
1547
|
|
|
1505
|
-
|
|
1506
1548
|
## 3.72.0 — an audit that counts your workflows once
|
|
1507
1549
|
|
|
1508
1550
|
A member ran the account audit on a large agency account. The report came back claiming
|
|
@@ -2088,7 +2130,6 @@ them were visible until a guide was written against them and run for real.
|
|
|
2088
2130
|
supported). Documented so nobody builds a "send to a third party" node that
|
|
2089
2131
|
silently mails the contact.
|
|
2090
2132
|
|
|
2091
|
-
|
|
2092
2133
|
## 3.62.0 — The user guide ships inside the product
|
|
2093
2134
|
|
|
2094
2135
|
- **New tool `get_user_guide`** (free tier included): opens the full GHL Command
|
|
@@ -2487,7 +2528,6 @@ builds inside it and verify_funnel proves it.
|
|
|
2487
2528
|
a temp dir AND writeCredentials refuses to run under vitest without an
|
|
2488
2529
|
override.
|
|
2489
2530
|
|
|
2490
|
-
|
|
2491
2531
|
## 3.50.0 — FREE read-only tier
|
|
2492
2532
|
|
|
2493
2533
|
A free license (`ghlcommand.com/free`, key by email, no card) now runs the same
|
|
@@ -2541,7 +2581,6 @@ No behavior changes; text only.
|
|
|
2541
2581
|
- `enable_workflow_builder` and `auto_capture_firebase_script` tool descriptions
|
|
2542
2582
|
point to `capture_firebase_interactive` first.
|
|
2543
2583
|
|
|
2544
|
-
|
|
2545
2584
|
## 3.49.0 — One-click Workflow Builder unlock (`capture_firebase_interactive`)
|
|
2546
2585
|
|
|
2547
2586
|
The buyer's whole job is now: log into GHL in a Chrome window the tool opens.
|
|
@@ -2566,7 +2605,6 @@ No DevTools, no console paste, no JSON shuttling.
|
|
|
2566
2605
|
console-paste path, unchanged).
|
|
2567
2606
|
- Tool count: 228 → 229 (177 without Firebase).
|
|
2568
2607
|
|
|
2569
|
-
|
|
2570
2608
|
## 3.48.2 — Docs patch: tool-count claims corrected (the real number is 228)
|
|
2571
2609
|
|
|
2572
2610
|
No behavior changes; text only, plus one new test.
|
|
@@ -2581,7 +2619,6 @@ No behavior changes; text only, plus one new test.
|
|
|
2581
2619
|
`registerAllTools` and fails the suite if package.json, README, or setup-tool copy
|
|
2582
2620
|
ever disagrees again.
|
|
2583
2621
|
|
|
2584
|
-
|
|
2585
2622
|
## 3.48.1 — Docs patch: Firebase capture friction + live pricing copy
|
|
2586
2623
|
|
|
2587
2624
|
No behavior changes; text only.
|
|
@@ -2597,7 +2634,6 @@ No behavior changes; text only.
|
|
|
2597
2634
|
7-step IndexedDB walk is demoted to a collapsed fallback for locked-down browsers;
|
|
2598
2635
|
multi-tenant instructions reference the script instead of the manual steps.
|
|
2599
2636
|
|
|
2600
|
-
|
|
2601
2637
|
## 3.48.0 — Blueprint: complete workflow-building (opportunities, branching, appointment timers, opt-in publish)
|
|
2602
2638
|
|
|
2603
2639
|
Completes the `apply_build_plan` executor so a Blueprint build produces workflows that
|
package/README.md
CHANGED
|
@@ -602,7 +602,7 @@ npm run dev # tsc --watch (type-checking only)
|
|
|
602
602
|
User prompt → Claude Code → MCP tool call → GHL Client → GHL API → JSON response → Claude Code → User
|
|
603
603
|
```
|
|
604
604
|
|
|
605
|
-
Every tool returns structured JSON. Claude interprets the response and presents it naturally.
|
|
605
|
+
Every tool returns structured JSON. Claude interprets the response and presents it naturally. Tools read and write GoHighLevel directly. This computer keeps your keys and settings, the cockpit's last read of each account so its screens open quickly, a record of each change it makes, working logs, the Workflow Builder's own browser sign-in, and anything you choose to save, such as an export or a report.
|
|
606
606
|
|
|
607
607
|
---
|
|
608
608
|
|
|
@@ -705,7 +705,7 @@ This MCP server is safe to share via GitHub.
|
|
|
705
705
|
| **API Keys** | Stored in a per-user credentials file (`~/Library/Application Support/elitedcs-ghl-mcp/credentials.json` on Mac) at chmod 0600. Never in code, never committed. |
|
|
706
706
|
| **License validation** | Checked at `setup_ghl_mcp` against the elitedcs.com license server, then cached as a signed attestation (~30 days). The server renews the attestation in the background as expiry approaches — never per-request, and your GHL keys are never sent to us. |
|
|
707
707
|
| **Multi-user** | Each user brings their own license key + GHL API key. Complete account isolation. |
|
|
708
|
-
| **Scope** | The server
|
|
708
|
+
| **Scope** | The server talks to GHL's API, the elitedcs.com license server (setup and periodic attestation renewal), elitedcs.com/api/telemetry for anonymous install, startup and first-use counts (off with `GHL_TELEMETRY=0` or `DO_NOT_TRACK=1`), and npm's registry (startup version banner, off with `GHL_MCP_DISABLE_UPDATE_CHECK=1`). |
|
|
709
709
|
| **Permissions** | Controlled by your GHL Private Integration scopes. Disable what you don't need. |
|
|
710
710
|
|
|
711
711
|
---
|
|
@@ -738,7 +738,7 @@ Run `health_check` any time to see whether it's on and confirm an opt-out took e
|
|
|
738
738
|
| `reason_code` | `ghl_key_wrong_location` | If setup failed, which of eleven fixed labels. Never a raw error message. |
|
|
739
739
|
| `ts` | `2026-08-04T03:31:08Z` | When it happened. |
|
|
740
740
|
|
|
741
|
-
**Never sent:** your license key, email, GHL API key, location ID, contact or client data, hostname, usernames, file paths, IP-derived location, or raw error text.
|
|
741
|
+
**Never sent:** your license key, email, GHL API key, location ID, contact or client data, hostname, usernames, file paths, IP-derived location, or raw error text. The counts never include any of your GHL account data or your clients' data. That data goes only to GoHighLevel, to your own Claude account, and to services you connect yourself, such as your own Supabase project for the client brain or a connected Stripe, Slack or Zoom account.
|
|
742
742
|
|
|
743
743
|
The receiving endpoint **rejects** any payload containing a field not on that list rather than quietly dropping it, and the database enforces the same list a second time — so the shape can't drift without both being changed deliberately.
|
|
744
744
|
|
|
@@ -899,7 +899,7 @@ Built by **[Elite DCs, LLC](https://elitedcs.com)** — a digital marketing and
|
|
|
899
899
|
|
|
900
900
|
**Tech stack:** TypeScript, Node.js, esbuild, MCP SDK, Zod, GHL API v2, Firebase Auth
|
|
901
901
|
|
|
902
|
-
**Version:** 3.
|
|
902
|
+
**Version:** 3.92.1
|
|
903
903
|
|
|
904
904
|
---
|
|
905
905
|
|