@elitedcs/ghl-mcp 3.57.0 → 3.58.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 +37 -0
- package/README.md +34 -0
- package/dist/index.js +1961 -1611
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.58.0 — Anonymous install stats, so we can find out where installs get stuck
|
|
4
|
+
|
|
5
|
+
Most people who install GHL Command never get it working, and until now there
|
|
6
|
+
was no way to tell whether that was 50 people or 1,200. This release adds a
|
|
7
|
+
small, anonymous count of install and startup events so the gap can be measured
|
|
8
|
+
and fixed. It is the first release that sends anything off your machine, so the
|
|
9
|
+
disclosure ships in the same version as the feature, not the one after.
|
|
10
|
+
|
|
11
|
+
**Turn it off with either of these and no network call is made at all:**
|
|
12
|
+
|
|
13
|
+
GHL_TELEMETRY=0
|
|
14
|
+
DO_NOT_TRACK=1
|
|
15
|
+
|
|
16
|
+
Run `health_check` to see whether it is on and to confirm an opt-out took effect.
|
|
17
|
+
|
|
18
|
+
- **Exactly twelve fields, and the server rejects anything else.** A random
|
|
19
|
+
device id, the event name, package version, Node major, platform, three
|
|
20
|
+
automation flags (CI / TTY / container), your licence tier, seconds since this
|
|
21
|
+
machine first ran GHL Command, a failure reason code, and a timestamp. The
|
|
22
|
+
endpoint refuses a payload carrying an unknown field rather than quietly
|
|
23
|
+
dropping it, and the database enforces the same list a second time — so the
|
|
24
|
+
shape cannot drift without both being changed deliberately.
|
|
25
|
+
- **Never sent:** your licence key, email, GHL API key, location ID, contact or
|
|
26
|
+
client data, hostname, usernames, file paths, or raw error text. Nothing about
|
|
27
|
+
your GoHighLevel account or your clients' accounts leaves your machine. The
|
|
28
|
+
failure reason is one of eleven fixed labels, never a server message, because
|
|
29
|
+
those can name a sub-account.
|
|
30
|
+
- **Separate identity from your licence.** The telemetry device id is generated
|
|
31
|
+
independently and shares no code with the licence fingerprint, so it cannot
|
|
32
|
+
affect activation or consume an install slot. A consequence worth stating: a
|
|
33
|
+
telemetry row cannot be linked back to a customer.
|
|
34
|
+
- **It cannot slow you down.** Sending is fire-and-forget with a 2-second
|
|
35
|
+
timeout, never awaited, and every failure is swallowed. Identity and
|
|
36
|
+
environment are resolved once per process, so a tool call performs no disk
|
|
37
|
+
access at all.
|
|
38
|
+
- `health_check` gains an "Anonymous usage stats" row reporting ON or OFF.
|
|
39
|
+
|
|
3
40
|
## 3.57.0 — Clone Site: copy a live page for a client, with the guardrails built in
|
|
4
41
|
|
|
5
42
|
A second bundled skill. Point Claude at any live URL and get a working,
|
package/README.md
CHANGED
|
@@ -690,6 +690,40 @@ This MCP server is safe to share via GitHub.
|
|
|
690
690
|
|
|
691
691
|
---
|
|
692
692
|
|
|
693
|
+
## Anonymous Usage Stats
|
|
694
|
+
|
|
695
|
+
GHL Command sends a small, anonymous count of install and startup events so we can see where installs get stuck. Most people who install this never get it working, and we couldn't tell whether that was 50 people or 1,200 — this is how we find out and fix it.
|
|
696
|
+
|
|
697
|
+
**Turn it off with either of these — no network call is made at all:**
|
|
698
|
+
|
|
699
|
+
```bash
|
|
700
|
+
GHL_TELEMETRY=0 # or the cross-tool standard:
|
|
701
|
+
DO_NOT_TRACK=1
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
Run `health_check` any time to see whether it's on and confirm an opt-out took effect.
|
|
705
|
+
|
|
706
|
+
**Exactly what is sent** — twelve fields, nothing else, ever:
|
|
707
|
+
|
|
708
|
+
| Field | Example | What it is |
|
|
709
|
+
|---|---|---|
|
|
710
|
+
| `device_id` | `e09eb5cd…` | A random number generated on your machine. Not derived from your hostname, username, or hardware. |
|
|
711
|
+
| `event` | `client_connected` | One of seven: connected, started unlicensed, entered a key, setup failed, setup succeeded, license valid, first tool call. |
|
|
712
|
+
| `pkg_version` | `3.57.0` | Which version you're running. |
|
|
713
|
+
| `node_major` | `24` | Node.js major version. |
|
|
714
|
+
| `platform` | `darwin` | mac, linux, or windows. |
|
|
715
|
+
| `is_ci`, `is_tty`, `is_container` | `false` | Whether this is an automated environment. |
|
|
716
|
+
| `licensed_tier` | `none` | none, free, or full. |
|
|
717
|
+
| `elapsed_s` | `12` | Seconds since this machine first ran GHL Command. |
|
|
718
|
+
| `reason_code` | `ghl_key_wrong_location` | If setup failed, which of eleven fixed labels. Never a raw error message. |
|
|
719
|
+
| `ts` | `2026-08-04T03:31:08Z` | When it happened. |
|
|
720
|
+
|
|
721
|
+
**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. Nothing about your GHL account or your clients' accounts ever leaves your machine.
|
|
722
|
+
|
|
723
|
+
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.
|
|
724
|
+
|
|
725
|
+
---
|
|
726
|
+
|
|
693
727
|
## Reliability & Type Safety
|
|
694
728
|
|
|
695
729
|
This server has been through a rigorous, multi-pass audit for production reliability (v2.4.0–v2.7.0). Here's what's in place:
|