@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 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.83.8
900
+ **Version:** 3.84.0
901
901
 
902
902
  ---
903
903