@sheepit-ai/mcp 1.0.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 GoaTech AI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,146 @@
1
+ # `@sheepit-ai/mcp`
2
+
3
+ MCP (Model Context Protocol) server for Sheepit. Lets Claude / Cursor / any
4
+ MCP-compatible client drive your Sheepit project — campaigns, destinations,
5
+ flags, dashboards, insights queries — directly from a chat.
6
+
7
+ The same `~/.sheepit/credentials.json` file `sheepit login` writes
8
+ authenticates this server. One OAuth round-trip, both surfaces unlocked.
9
+
10
+ ## 1.0.0 — npm scope rename + breaking install path
11
+
12
+ This release renames the package from `@goatech/mcp` to `@sheepit-ai/mcp`
13
+ as part of the broader Sheepit product rebrand. The legal entity
14
+ (GoaTech AI LLC) is unchanged; the npm scope is the customer-facing
15
+ brand. See
16
+ [`.claude/memory/project_sheepit_npm_scope_decision.md`](https://github.com/goatech-ai/GoaTech/blob/main/.claude/memory/project_sheepit_npm_scope_decision.md)
17
+ for the locked decision.
18
+
19
+ **Breaking changes (hard cutover — no legacy fallback):**
20
+
21
+ - **Package name** — `@goatech/mcp` → `@sheepit-ai/mcp`. Update your
22
+ IDE config + `npx` invocations.
23
+ - **Binary** — `goatech-mcp` → `sheepit-mcp`.
24
+ - **Credentials path** — `~/.goatech/credentials.json` →
25
+ `~/.sheepit/credentials.json`. **No automatic migration** —
26
+ `mv ~/.goatech/credentials.json ~/.sheepit/credentials.json` or
27
+ re-run `sheepit login`.
28
+ - **Environment variables** — `GOATECH_API_KEY` / `GOATECH_PROFILE` /
29
+ `GOATECH_API_URL` → `SHEEPIT_API_KEY` / `SHEEPIT_PROFILE` /
30
+ `SHEEPIT_API_URL`. The old names are not honored as fallbacks.
31
+ - **LLM-facing tool names** — `goatech_help` / `goatech_quickstart` →
32
+ `sheepit_help` / `sheepit_quickstart`. LLMs re-discover tool names
33
+ from `tools/list` on every session start, so no client-side change is
34
+ needed beyond restarting the IDE.
35
+ - **IDE config key** — `mcpServers.goatech` → `mcpServers.sheepit`.
36
+ `sheepit-mcp install --yes` detects + migrates the old key
37
+ automatically (no `--force` required); the existing config file is
38
+ backed up to `<path>.bak.<unix-ms>.<pid>.<rand>` (mode 0600) before
39
+ any write, the write itself is atomic via tmp+fsync+rename, and
40
+ symlinks at the config path are refused.
41
+
42
+ **Migration aid (operator step, after `@sheepit-ai/mcp@1.0.0`
43
+ publishes):** the Sheepit team plans to also publish an exact-pin
44
+ alias at `@goatech/mcp@1.0.0` that depends on `@sheepit-ai/mcp@1.0.0`,
45
+ followed by `npm deprecate '@goatech/mcp@"<2.0.0"'`. Until that lands,
46
+ existing `npx @goatech/mcp` invocations resolve to the old
47
+ `@goatech/mcp@0.3.0` (different binary, different creds path) — so
48
+ update your IDE config first.
49
+
50
+ **What did NOT change:**
51
+
52
+ - API URL (`api.goatech.ai`) — flips with the AWS migration on its own
53
+ cadence, not with this rename.
54
+ - API key prefix (`lp_pub_*` / `lp_sec_*`) — production data + customer
55
+ `.env` files are scoped by it.
56
+ - Legal entity name (`GoaTech AI LLC`) — invoices / contracts / billing.
57
+
58
+ Everything from the 2026-05-25/26 audit arc (security + DX hardening
59
+ shipped as `@goatech/mcp@0.3.0`) carries forward unchanged.
60
+
61
+ ## Quick start (3 commands)
62
+
63
+ ```bash
64
+ # 1. One-time OAuth login (PKCE — opens your browser)
65
+ npx @sheepit-ai/cli login
66
+
67
+ # 2. Auto-write the MCP entry into your IDE config.
68
+ # Dry-run first; pass --yes to apply. Backs up the existing file.
69
+ npx @sheepit-ai/mcp install
70
+ npx @sheepit-ai/mcp install --yes
71
+
72
+ # 3. Restart your IDE. In Claude / Cursor, ask:
73
+ # "what can I do with Sheepit?"
74
+ ```
75
+
76
+ The first thing the LLM should call is `sheepit_help` — it returns a
77
+ curated overview of every surface and how to chain tools together.
78
+ For a concrete recipe, ask for `sheepit_quickstart` with one of:
79
+ `send_email_campaign`, `create_dashboard`, `analyze_signups`,
80
+ `ship_feedback`, `wire_webhook_destination`.
81
+
82
+ The CLI / MCP key the OAuth flow mints is stamped `source = "cli" | "mcp"`
83
+ on the Sheepit side, so you can audit which tool produced any given event.
84
+
85
+ ## What the LLM can do
86
+
87
+ 37 tools as of `1.0.0` (live build-time count is in
88
+ `src/generated/build-meta.ts`; this README counter is bumped per release):
89
+
90
+ - **2 Discovery tools** — `sheepit_help` (top-level "what is this?" or
91
+ a per-topic deep-dive) and `sheepit_quickstart` (concrete N-step
92
+ recipe for a goal). Call `sheepit_help` first when the user is new.
93
+ - **11 Campaign tools** — `campaign_list / get / create / update /
94
+ preview / launch / pause / resume / complete / archive / results`.
95
+ Preview/launch is enforced via single-use snapshot tokens — the LLM
96
+ physically cannot launch a campaign without first running
97
+ `campaign_preview`.
98
+ - **7 Destination tools** — `destination_catalog / list / get /
99
+ create / update / delete / test`. Connectors live behind a typed
100
+ catalog so the LLM can't request a destination that isn't actually
101
+ wired (`webhook`, `resend`, …).
102
+ - **11 Dashboard tools** — `dashboard_list / get / create / update /
103
+ delete / template_list / template_get / widget_create /
104
+ widget_update / widget_delete / insights_query`. `insights_query`
105
+ lets the LLM run arbitrary timeseries against `events_raw` so it
106
+ can answer "did signups dip yesterday?" without opening a UI.
107
+ - **1 Feedback tool** — `feedback_submit`. The LLM should call this
108
+ proactively when the user expresses frustration ("this is
109
+ confusing") or hits an obvious gap. Auto-stamps `source=mcp` +
110
+ version metadata so the Sheepit team's admin queue can filter
111
+ MCP-origin reports.
112
+
113
+ ## CLI
114
+
115
+ ```bash
116
+ sheepit-mcp serve # default — runs the stdio MCP server
117
+ sheepit-mcp install # dry-run: show what would change
118
+ sheepit-mcp install --yes # apply: writes IDE config + .bak.<ms>.<pid>.<rand>
119
+ sheepit-mcp install --force # overwrite an existing sheepit entry
120
+ sheepit-mcp install --client=claude-desktop|cursor|codex
121
+ sheepit-mcp version
122
+ sheepit-mcp help
123
+ ```
124
+
125
+ `serve` reads `~/.sheepit/credentials.json`; falls back to
126
+ `SHEEPIT_API_KEY` / `SHEEPIT_PROFILE` env vars if the file isn't present.
127
+
128
+ `install` is idempotent (re-running with the same MCP entry already
129
+ present is a no-op) and conservative (it backs up existing configs to
130
+ `<path>.bak.<unix-ms>.<pid>.<rand>` mode 0600 before writing,
131
+ writes atomically via tmp+rename, and refuses to follow symlinks). It supports Claude Desktop,
132
+ Cursor, and Codex out of the box. When upgrading from a pre-1.0
133
+ `@goatech/mcp` install, the old `mcpServers.goatech` entry is replaced
134
+ in-place with the new `mcpServers.sheepit` entry on `--yes`.
135
+
136
+ ## Versioning
137
+
138
+ This package follows Sheepit product releases. Major-version bumps
139
+ signal either the MCP protocol moving, or a breaking change to the API
140
+ surface the tools wrap (or, as in `1.0.0`, an npm-scope rename).
141
+ Schemas are validated with Zod at request time so an out-of-date client
142
+ gets a structured error rather than silent drift.
143
+
144
+ ## License
145
+
146
+ MIT. Copyright (c) 2026 GoaTech AI LLC. See `LICENSE`.