@elitedcs/ghl-mcp 3.83.7 → 3.83.9

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,80 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 3.83.9 — the first outside beta reports: keys stay private, a damaged download is named, Windows finds Claude Code
6
+
7
+ Six fixes. Three come from the first external beta tester, one closes a
8
+ security edge left open in 3.83.7, one prepares the Windows beta, and one is
9
+ housekeeping for what the cockpit prints.
10
+
11
+ - **Your GoHighLevel key is never shown, only named.** A health check, "which
12
+ account am I in", switching accounts and registering an agency key used to
13
+ print the first 12 characters of the live key. They now say "key ending
14
+ …ab12": enough to tell two keys apart, useless to anyone who reads it. A test
15
+ fails if any of those screens, or the command line, ever shows more than four
16
+ characters of a key again.
17
+ - **"Skills: 43 installed" was counting files.** The startup line and the
18
+ install_skills reply now count skills and name them: "Skills: 3 installed
19
+ (blueprint, clone-site, ghl-reports)".
20
+ - **A damaged download is named instead of "Connection closed".** When an
21
+ earlier npx download of GHL Command on your computer loses its package.json,
22
+ Claude cannot start it and shows only "Connection closed", which looks like a
23
+ dead licence. GHL Command cannot report this itself, because it never starts.
24
+ The installer command, `npx -y @elitedcs/ghl-mcp@latest cli install`, now
25
+ checks for that exact damage and prints one line naming the folder to delete.
26
+ It deletes nothing. When the damaged download is the very one that command
27
+ runs from, npm stops first with its own error, so the install guide's new
28
+ "Connection closed" entry gives the fix the Members Hub gives: quit Claude,
29
+ drag the npx download folder to the Trash in Finder, reopen. Every install instruction now names
30
+ @latest, the form the installer and the cockpit's launcher already used.
31
+ - **The cockpit refuses a request that sends its Host twice, or Sec-Fetch-Site
32
+ twice.** Two request shapes a program on your own computer could send, and a
33
+ web page cannot, passed the 3.83.7 address checks: a second Host after the
34
+ allowed one, and two Sec-Fetch-Site values that Node joined into one. Host,
35
+ Origin and Sec-Fetch-Site are now read exactly as they arrived on the wire; a
36
+ repeated one is refused, and Sec-Fetch-Site is accepted only as same-origin
37
+ or none, or absent.
38
+ - **Addresses the cockpit prints carry no http://.** The cockpit's start-up
39
+ line and its "already running" line now name the address as
40
+ localhost:7300, and the reply after creating a client says "Open
41
+ localhost:7300/new…". Printed addresses get pasted into support threads and
42
+ emails, where click tracking rewrites any http address, so one plain form is
43
+ used everywhere. The cost: a bare address is not a clickable link in
44
+ Terminal or in Claude Desktop, so you type it rather than click it.
45
+ - **Windows: the cockpit finds Claude Code.** On Windows, Claude Code is
46
+ claude.exe (Anthropic's installer, WinGet) or a claude.cmd shim (npm). The
47
+ cockpit looked for a file named exactly "claude", so a Windows member reached
48
+ the first powered stage and read "Claude Code CLI not found". The lookup now
49
+ follows Windows' own rules (PATHEXT, and %USERPROFILE%\.local\bin\claude.exe
50
+ where Anthropic's installer puts it), and an npm shim is started the way Node
51
+ requires on Windows, with prompts passed to Claude untouched. **This has not
52
+ yet run on a Windows machine.** The tests simulate Windows; the first real run
53
+ is our Windows beta tester's, after this release.
54
+
55
+ ## 3.83.8 — plain sentences where a few screens showed raw data
56
+
57
+ Four places in the cockpit could show raw technical data where a sentence
58
+ belonged. Each now says what happened in plain words.
59
+
60
+ - **Saving an Assessment to GoHighLevel.** A client detail that was too long came
61
+ back as a block of validation data. The client fields now stop at the length the
62
+ save accepts, and a refusal names the field: "Client name is too long, 120
63
+ characters at most."
64
+ - **Design Studio's "Make it".** The form accepted slide and point counts that the
65
+ design run itself refuses, so the run failed with an error in its log. The form
66
+ and the cockpit now use the design run's own limits and say so before anything
67
+ starts: "Choose a whole number of slides from 3 to 24." A run that would be
68
+ refused never starts, so it never uses your Claude.
69
+ - **Errors from GoHighLevel.** Saving an Assessment, attaching one on a client card,
70
+ and preparing or sending the handoff email could put GoHighLevel's own error text
71
+ on the page. Those screens now say what failed and what to check, and keep the
72
+ technical detail in the cockpit's own log. Messages the cockpit itself gives you,
73
+ like a step that still needs approving, reach you unchanged.
74
+ - **"Save answers" in the Assessment.** Every save opened a box full of the answers
75
+ file's contents, even when the download worked. The download is unchanged; the
76
+ contents now appear only if you choose "Show the file's contents", for when a
77
+ browser blocks the download.
78
+
5
79
  ## 3.83.7 — the cockpit answers only to its own address, and keeps its key to itself
6
80
 
7
81
  **Security fix. Update to this version.**
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.7
900
+ **Version:** 3.83.9
901
901
 
902
902
  ---
903
903