@elitedcs/ghl-mcp 3.83.8 → 3.84.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 +93 -0
- package/README.md +6 -6
- package/dist/index.js +22107 -20578
- package/guide/guide.html +4 -4
- package/package.json +1 -1
- package/skills/blueprint/presets/clinic.md +14 -1
- package/skills/blueprint/presets/clinic.preset.json +250 -8
- package/skills/blueprint/presets/coach.md +14 -1
- package/skills/blueprint/presets/coach.preset.json +259 -8
- package/skills/blueprint/presets/ecommerce.md +8 -1
- package/skills/blueprint/presets/ecommerce.preset.json +136 -3
- package/skills/blueprint/presets/generic-client.md +10 -1
- package/skills/blueprint/presets/generic-client.preset.json +312 -6
- package/skills/blueprint/presets/local-service.md +14 -1
- package/skills/blueprint/presets/local-service.preset.json +259 -8
- package/skills/blueprint/presets/med-spa.md +14 -1
- package/skills/blueprint/presets/med-spa.preset.json +259 -8
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,99 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 3.84.0 — the brief reaches past GoHighLevel, Slack arrives, the build follows what the client bought
|
|
6
|
+
|
|
7
|
+
**The morning brief now asks your own Gmail, Google Calendar, Drive and Slack.** It ends with each
|
|
8
|
+
client's email addresses and website, read from the client's own account record, and tells the
|
|
9
|
+
assistant you already use what to ask: which client mail is waiting on a reply, what your own day
|
|
10
|
+
holds, and what is waiting unanswered in Slack. Nothing is stored on our side and no Google
|
|
11
|
+
sign-up is needed: the assistant's own connectors answer. Only clients are listed, only addresses
|
|
12
|
+
that look like addresses, and a source that is not connected is said out loud rather than skipped.
|
|
13
|
+
|
|
14
|
+
**Slack is connected.** Connect it once with a bot token from a Slack app you own; the token is
|
|
15
|
+
tried before it is saved and never shown again. Post the brief, or anything, to a channel. Read
|
|
16
|
+
what is waiting unanswered in the channels the bot has been invited to.
|
|
17
|
+
|
|
18
|
+
**Build what the client bought.** The build now follows one record: the features the member
|
|
19
|
+
confirms in the cockpit, prefilled from what the Assessment recorded as bought. An empty
|
|
20
|
+
selection builds nothing and asks. Clearing the selection never erases the purchase record. The
|
|
21
|
+
client document, the Review screen and the build tell one story.
|
|
22
|
+
|
|
23
|
+
**Every build is on file before it happens.** A build killed at any point is already in the
|
|
24
|
+
journal, so the undo list is complete. A staff member found only after a failed create is marked
|
|
25
|
+
"Check", never "Reused".
|
|
26
|
+
|
|
27
|
+
**Quote follow-up and review requests** are now preset workflows in the clinic, med-spa,
|
|
28
|
+
local-service and coach presets, held draft behind the same handoffs as every other text-bearing
|
|
29
|
+
workflow. Review requests never fire after a consultation or estimate, only after delivered
|
|
30
|
+
service.
|
|
31
|
+
|
|
32
|
+
**Leads by source.** New leads in the brief and the client week are broken down by where they
|
|
33
|
+
came from, from GoHighLevel's own attribution, with a read that refuses to report a partial count
|
|
34
|
+
as a whole one.
|
|
35
|
+
|
|
36
|
+
**Your own automations are checked at the door.** The planner now reads the account and refuses
|
|
37
|
+
any id it cannot see, including ids hidden inside a step's arguments.
|
|
38
|
+
|
|
39
|
+
**The Assessment is attached to the client.** It fills the intake, the Review quotes it, and the
|
|
40
|
+
client document prices what they did not buy in their own numbers.
|
|
41
|
+
|
|
42
|
+
**Google Calendar, read-only.** Your own day, from your own calendar, beside the clients'
|
|
43
|
+
appointments and never merged with them.
|
|
44
|
+
|
|
45
|
+
Also: eight rows in the defect ledger that had already shipped are now recorded against their
|
|
46
|
+
releases; a client record can hold the addresses of the people who write to you.
|
|
47
|
+
|
|
48
|
+
## 3.83.9 — the first outside beta reports: keys stay private, a damaged download is named, Windows finds Claude Code
|
|
49
|
+
|
|
50
|
+
Six fixes. Three come from the first external beta tester, one closes a
|
|
51
|
+
security edge left open in 3.83.7, one prepares the Windows beta, and one is
|
|
52
|
+
housekeeping for what the cockpit prints.
|
|
53
|
+
|
|
54
|
+
- **Your GoHighLevel key is never shown, only named.** A health check, "which
|
|
55
|
+
account am I in", switching accounts and registering an agency key used to
|
|
56
|
+
print the first 12 characters of the live key. They now say "key ending
|
|
57
|
+
…ab12": enough to tell two keys apart, useless to anyone who reads it. A test
|
|
58
|
+
fails if any of those screens, or the command line, ever shows more than four
|
|
59
|
+
characters of a key again.
|
|
60
|
+
- **"Skills: 43 installed" was counting files.** The startup line and the
|
|
61
|
+
install_skills reply now count skills and name them: "Skills: 3 installed
|
|
62
|
+
(blueprint, clone-site, ghl-reports)".
|
|
63
|
+
- **A damaged download is named instead of "Connection closed".** When an
|
|
64
|
+
earlier npx download of GHL Command on your computer loses its package.json,
|
|
65
|
+
Claude cannot start it and shows only "Connection closed", which looks like a
|
|
66
|
+
dead licence. GHL Command cannot report this itself, because it never starts.
|
|
67
|
+
The installer command, `npx -y @elitedcs/ghl-mcp@latest cli install`, now
|
|
68
|
+
checks for that exact damage and prints one line naming the folder to delete.
|
|
69
|
+
It deletes nothing. When the damaged download is the very one that command
|
|
70
|
+
runs from, npm stops first with its own error, so the install guide's new
|
|
71
|
+
"Connection closed" entry gives the fix the Members Hub gives: quit Claude,
|
|
72
|
+
drag the npx download folder to the Trash in Finder, reopen. Every install instruction now names
|
|
73
|
+
@latest, the form the installer and the cockpit's launcher already used.
|
|
74
|
+
- **The cockpit refuses a request that sends its Host twice, or Sec-Fetch-Site
|
|
75
|
+
twice.** Two request shapes a program on your own computer could send, and a
|
|
76
|
+
web page cannot, passed the 3.83.7 address checks: a second Host after the
|
|
77
|
+
allowed one, and two Sec-Fetch-Site values that Node joined into one. Host,
|
|
78
|
+
Origin and Sec-Fetch-Site are now read exactly as they arrived on the wire; a
|
|
79
|
+
repeated one is refused, and Sec-Fetch-Site is accepted only as same-origin
|
|
80
|
+
or none, or absent.
|
|
81
|
+
- **Addresses the cockpit prints carry no http://.** The cockpit's start-up
|
|
82
|
+
line and its "already running" line now name the address as
|
|
83
|
+
localhost:7300, and the reply after creating a client says "Open
|
|
84
|
+
localhost:7300/new…". Printed addresses get pasted into support threads and
|
|
85
|
+
emails, where click tracking rewrites any http address, so one plain form is
|
|
86
|
+
used everywhere. The cost: a bare address is not a clickable link in
|
|
87
|
+
Terminal or in Claude Desktop, so you type it rather than click it.
|
|
88
|
+
- **Windows: the cockpit finds Claude Code.** On Windows, Claude Code is
|
|
89
|
+
claude.exe (Anthropic's installer, WinGet) or a claude.cmd shim (npm). The
|
|
90
|
+
cockpit looked for a file named exactly "claude", so a Windows member reached
|
|
91
|
+
the first powered stage and read "Claude Code CLI not found". The lookup now
|
|
92
|
+
follows Windows' own rules (PATHEXT, and %USERPROFILE%\.local\bin\claude.exe
|
|
93
|
+
where Anthropic's installer puts it), and an npm shim is started the way Node
|
|
94
|
+
requires on Windows, with prompts passed to Claude untouched. **This has not
|
|
95
|
+
yet run on a Windows machine.** The tests simulate Windows; the first real run
|
|
96
|
+
is our Windows beta tester's, after this release.
|
|
97
|
+
|
|
5
98
|
## 3.83.8 — plain sentences where a few screens showed raw data
|
|
6
99
|
|
|
7
100
|
Four places in the cockpit could show raw technical data where a sentence
|
package/README.md
CHANGED
|
@@ -94,7 +94,7 @@ This MCP (Model Context Protocol) server connects Claude directly to GoHighLevel
|
|
|
94
94
|
One command in any terminal (Terminal on Mac, PowerShell on Windows):
|
|
95
95
|
|
|
96
96
|
```
|
|
97
|
-
npx -y @elitedcs/ghl-mcp cli install
|
|
97
|
+
npx -y @elitedcs/ghl-mcp@latest cli install
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
It finds Claude Desktop's settings file, adds GHL Command **alongside any MCP servers you already have** (nothing gets overwritten), and saves a backup first. If the file has a formatting problem, it repairs it. Then **quit Claude completely** — Cmd+Q on Mac; on Windows right-click the Claude icon by the clock and choose Quit — and reopen.
|
|
@@ -121,7 +121,7 @@ Open Claude Desktop → **Settings...** → **Developer** → **Edit Config**. T
|
|
|
121
121
|
}
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
If it already has other tools in it, do **not** paste over them — add only the `"ghl": { ... }` entry inside your existing `"mcpServers"` object. Save, then fully quit and reopen Claude. (Unsure? Run `npx -y @elitedcs/ghl-mcp cli install --dry-run` to preview exactly what would change, or `--print-only` to get the merged file printed for you.)
|
|
124
|
+
If it already has other tools in it, do **not** paste over them — add only the `"ghl": { ... }` entry inside your existing `"mcpServers"` object. Save, then fully quit and reopen Claude. (Unsure? Run `npx -y @elitedcs/ghl-mcp@latest cli install --dry-run` to preview exactly what would change, or `--print-only` to get the merged file printed for you.)
|
|
125
125
|
|
|
126
126
|
</details>
|
|
127
127
|
|
|
@@ -257,9 +257,9 @@ Highlights (full guide: [`docs/HEADLESS.md`](docs/HEADLESS.md)):
|
|
|
257
257
|
|
|
258
258
|
- **Scriptable multi-account setup** — pre-seed the documented `.ghl-tokens.json`, or use the CLI in a Dockerfile/entrypoint:
|
|
259
259
|
```bash
|
|
260
|
-
npx -y @elitedcs/ghl-mcp cli register-location --location-id XXXX --api-key pit-... --name "Account"
|
|
261
|
-
npx -y @elitedcs/ghl-mcp cli register-company-firebase --company-id YYYY --refresh-token ... --user-id ...
|
|
262
|
-
npx -y @elitedcs/ghl-mcp cli register-agency-key --api-key pit-...
|
|
260
|
+
npx -y @elitedcs/ghl-mcp@latest cli register-location --location-id XXXX --api-key pit-... --name "Account"
|
|
261
|
+
npx -y @elitedcs/ghl-mcp@latest cli register-company-firebase --company-id YYYY --refresh-token ... --user-id ...
|
|
262
|
+
npx -y @elitedcs/ghl-mcp@latest cli register-agency-key --api-key pit-...
|
|
263
263
|
```
|
|
264
264
|
- **Persistent config dir** — set `GHL_MCP_CONFIG_DIR=/data/ghl-mcp` (absolute path) on a mounted volume so auto-rotated Firebase tokens survive container restarts.
|
|
265
265
|
- **Firebase is per-company, not per-sub-account** — one credential set covers all sub-accounts under a company.
|
|
@@ -897,7 +897,7 @@ Built by **[Elite DCs, LLC](https://elitedcs.com)** — a digital marketing and
|
|
|
897
897
|
|
|
898
898
|
**Tech stack:** TypeScript, Node.js, esbuild, MCP SDK, Zod, GHL API v2, Firebase Auth
|
|
899
899
|
|
|
900
|
-
**Version:** 3.
|
|
900
|
+
**Version:** 3.84.0
|
|
901
901
|
|
|
902
902
|
---
|
|
903
903
|
|