@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 +21 -0
- package/README.md +146 -0
- package/dist/index.js +6435 -0
- package/dist/index.js.map +1 -0
- package/package.json +68 -0
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`.
|