@korso/shepherd 0.6.1 → 0.6.3
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/README.md +42 -16
- package/dist/index.js +3 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Shepherd's stdio MCP server. Gives any MCP-capable agent (Claude Code, Codex, etc.) four advisory coordination tools backed by the shared hub: `work`, `done`, `announce`, and `sync`. The agent **joins the workspace automatically** on startup (no `join` tool), and the server ships standing instructions so the agent self-coordinates without the user prompting it.
|
|
4
4
|
|
|
5
|
-
> **New here?** The [developer quickstart](https://github.com/
|
|
5
|
+
> **New here?** The [developer quickstart](https://github.com/Korso-AI/shepherd/blob/main/docs/shepherd-mcp-quickstart.md) is the fastest path. TL;DR: `npx -y --package=@korso/shepherd shepherd-mcp` with the env vars below.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -20,7 +20,7 @@ The server is published to npm and runs via `npx` — no clone or build required
|
|
|
20
20
|
(Node 18+):
|
|
21
21
|
|
|
22
22
|
```sh
|
|
23
|
-
npx -y
|
|
23
|
+
npx -y --package=@korso/shepherd shepherd-mcp
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
You won't normally run that by hand; you put it in your MCP client config (below)
|
|
@@ -45,14 +45,14 @@ Missing either causes an immediate startup failure with a clear error on stderr
|
|
|
45
45
|
listing which vars are absent. (No other var triggers this.)
|
|
46
46
|
|
|
47
47
|
**Everything else is optional** — each identity field is resolved at startup as
|
|
48
|
-
**env var → git detection → fallback**, so a plain `npx -y
|
|
48
|
+
**env var → git detection → fallback**, so a plain `npx -y --package=@korso/shepherd shepherd-mcp` with
|
|
49
49
|
just the two required vars produces a valid, fully-identified session. Set an
|
|
50
50
|
override only to replace what's detected:
|
|
51
51
|
|
|
52
52
|
| Variable | If omitted | Example |
|
|
53
53
|
|---|---|---|
|
|
54
54
|
| `WORKSPACE` | defaults to `default` (**must match hub's `ALLOWED_WORKSPACE` if overridden**) | `shepherd` |
|
|
55
|
-
| `REPO` | `git remote origin` → `owner/repo`, else repo folder name, else `unknown-repo` | `
|
|
55
|
+
| `REPO` | `git remote origin` → `owner/repo`, else repo folder name, else `unknown-repo` | `Korso-AI/shepherd` |
|
|
56
56
|
| `BRANCH` | `git rev-parse --abbrev-ref HEAD`, else `HEAD` | `main` |
|
|
57
57
|
| `BASE_BRANCH` | `origin/HEAD`, else `origin/main` / `origin/master` (used for the change-awareness heads-up) | `origin/main` |
|
|
58
58
|
| `HUMAN` | git `user.name`, else local-part of `user.email`, else this device's **cached** last-detected name, else a generated name | `daichi` |
|
|
@@ -110,7 +110,7 @@ uses (override both with `SHEPHERD_INBOX_DIR` if you relocated it):
|
|
|
110
110
|
"mcpServers": {
|
|
111
111
|
"shepherd": {
|
|
112
112
|
"command": "npx",
|
|
113
|
-
"args": ["-y", "
|
|
113
|
+
"args": ["-y", "--package=@korso/shepherd", "shepherd-mcp"],
|
|
114
114
|
"env": {
|
|
115
115
|
"HUB_URL": "https://shepherd.example.com",
|
|
116
116
|
"TEAM_TOKEN": "tok_abc123"
|
|
@@ -122,7 +122,7 @@ uses (override both with `SHEPHERD_INBOX_DIR` if you relocated it):
|
|
|
122
122
|
{
|
|
123
123
|
"matcher": "*",
|
|
124
124
|
"hooks": [
|
|
125
|
-
{ "type": "command", "command": "npx -y
|
|
125
|
+
{ "type": "command", "command": "npx -y --package=@korso/shepherd shepherd-inbox-hook" }
|
|
126
126
|
]
|
|
127
127
|
}
|
|
128
128
|
]
|
|
@@ -143,9 +143,9 @@ or MCP calls. Hooks must be enabled with `features.hooks = true`. In
|
|
|
143
143
|
hooks = true
|
|
144
144
|
|
|
145
145
|
[[hooks.UserPromptSubmit]]
|
|
146
|
-
command = ["npx", "-y", "
|
|
146
|
+
command = ["npx", "-y", "--package=@korso/shepherd", "shepherd-inbox-hook"]
|
|
147
147
|
# On Windows use command_windows instead:
|
|
148
|
-
# command_windows = ["cmd", "/c", "npx -y
|
|
148
|
+
# command_windows = ["cmd", "/c", "npx -y --package=@korso/shepherd shepherd-inbox-hook"]
|
|
149
149
|
```
|
|
150
150
|
|
|
151
151
|
### Pi — extension
|
|
@@ -191,7 +191,7 @@ line-continuation does not work). Minimal: just the two required vars (identity
|
|
|
191
191
|
is auto-detected from git):
|
|
192
192
|
|
|
193
193
|
```powershell
|
|
194
|
-
claude mcp add shepherd -s user -e HUB_URL=https://shepherd.example.com -e TEAM_TOKEN=tok_abc123 -- npx -y
|
|
194
|
+
claude mcp add shepherd -s user -e HUB_URL=https://shepherd.example.com -e TEAM_TOKEN=tok_abc123 -- npx -y --package=@korso/shepherd shepherd-mcp
|
|
195
195
|
```
|
|
196
196
|
|
|
197
197
|
Add any optional overrides from §2 with extra `-e` flags (e.g. `-e MODEL=claude-sonnet-4-6 -e HUMAN=daichi`).
|
|
@@ -204,7 +204,7 @@ Alternative — a `.mcp.json` at the **root of the repo you're working in**
|
|
|
204
204
|
"mcpServers": {
|
|
205
205
|
"shepherd": {
|
|
206
206
|
"command": "npx",
|
|
207
|
-
"args": ["-y", "
|
|
207
|
+
"args": ["-y", "--package=@korso/shepherd", "shepherd-mcp"],
|
|
208
208
|
"env": {
|
|
209
209
|
"HUB_URL": "https://shepherd.example.com",
|
|
210
210
|
"TEAM_TOKEN": "tok_abc123",
|
|
@@ -228,7 +228,7 @@ The table is `mcp_servers` with an **underscore** (`mcp-servers`/`mcpServers` ar
|
|
|
228
228
|
silently ignored). Either run `codex mcp add`:
|
|
229
229
|
|
|
230
230
|
```sh
|
|
231
|
-
codex mcp add shepherd --env HUB_URL=https://shepherd.example.com --env TEAM_TOKEN=tok_abc123 --env PROGRAM=codex -- npx -y
|
|
231
|
+
codex mcp add shepherd --env HUB_URL=https://shepherd.example.com --env TEAM_TOKEN=tok_abc123 --env PROGRAM=codex -- npx -y --package=@korso/shepherd shepherd-mcp
|
|
232
232
|
```
|
|
233
233
|
|
|
234
234
|
…or add the table directly:
|
|
@@ -236,7 +236,7 @@ codex mcp add shepherd --env HUB_URL=https://shepherd.example.com --env TEAM_TOK
|
|
|
236
236
|
```toml
|
|
237
237
|
[mcp_servers.shepherd]
|
|
238
238
|
command = "npx"
|
|
239
|
-
args = ["-y", "
|
|
239
|
+
args = ["-y", "--package=@korso/shepherd", "shepherd-mcp"]
|
|
240
240
|
env = { HUB_URL = "https://shepherd.example.com", TEAM_TOKEN = "tok_abc123", PROGRAM = "codex", MODEL = "o4-mini" }
|
|
241
241
|
```
|
|
242
242
|
|
|
@@ -249,7 +249,7 @@ Pi uses a JSON `mcpServers` block (project config overrides global):
|
|
|
249
249
|
"mcpServers": {
|
|
250
250
|
"shepherd": {
|
|
251
251
|
"command": "npx",
|
|
252
|
-
"args": ["-y", "
|
|
252
|
+
"args": ["-y", "--package=@korso/shepherd", "shepherd-mcp"],
|
|
253
253
|
"env": {
|
|
254
254
|
"HUB_URL": "https://shepherd.example.com",
|
|
255
255
|
"TEAM_TOKEN": "tok_abc123",
|
|
@@ -260,6 +260,32 @@ Pi uses a JSON `mcpServers` block (project config overrides global):
|
|
|
260
260
|
}
|
|
261
261
|
```
|
|
262
262
|
|
|
263
|
+
### Cursor (`~/.cursor/mcp.json` or `.cursor/mcp.json`)
|
|
264
|
+
|
|
265
|
+
Cursor reads the same JSON `mcpServers` shape — global at `~/.cursor/mcp.json`,
|
|
266
|
+
or per-project at `.cursor/mcp.json`:
|
|
267
|
+
|
|
268
|
+
```json
|
|
269
|
+
{
|
|
270
|
+
"mcpServers": {
|
|
271
|
+
"shepherd": {
|
|
272
|
+
"command": "npx",
|
|
273
|
+
"args": ["-y", "--package=@korso/shepherd", "shepherd-mcp"],
|
|
274
|
+
"env": {
|
|
275
|
+
"HUB_URL": "https://shepherd.example.com",
|
|
276
|
+
"TEAM_TOKEN": "tok_abc123",
|
|
277
|
+
"PROGRAM": "cursor"
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Confirm under **Settings → MCP** that `shepherd` is listed with its tools.
|
|
285
|
+
Announcement push: Cursor has no hook equivalent (see the hooks above for
|
|
286
|
+
Claude Code/Codex/Pi), so announcements arrive via the universal drainer — on
|
|
287
|
+
the agent's next Shepherd tool call — rather than pushed between calls.
|
|
288
|
+
|
|
263
289
|
---
|
|
264
290
|
|
|
265
291
|
## 4. Verify the server starts (quick smoke test)
|
|
@@ -270,10 +296,10 @@ PowerShell (set env vars, then run):
|
|
|
270
296
|
```powershell
|
|
271
297
|
$env:HUB_URL = "https://shepherd.example.com"
|
|
272
298
|
$env:TEAM_TOKEN = "tok_abc123"
|
|
273
|
-
npx -y
|
|
299
|
+
npx -y --package=@korso/shepherd shepherd-mcp
|
|
274
300
|
```
|
|
275
301
|
|
|
276
|
-
bash/zsh: `HUB_URL=https://shepherd.example.com TEAM_TOKEN=tok_abc123 npx -y
|
|
302
|
+
bash/zsh: `HUB_URL=https://shepherd.example.com TEAM_TOKEN=tok_abc123 npx -y --package=@korso/shepherd shepherd-mcp`
|
|
277
303
|
|
|
278
304
|
No stderr output and the process blocking on stdin = healthy. Press Ctrl+C to exit.
|
|
279
305
|
|
|
@@ -298,7 +324,7 @@ Only needed if you're changing the MCP server itself. Clone the monorepo and
|
|
|
298
324
|
point your client at a local build instead of npx:
|
|
299
325
|
|
|
300
326
|
```sh
|
|
301
|
-
git clone https://github.com/
|
|
327
|
+
git clone https://github.com/Korso-AI/shepherd.git
|
|
302
328
|
cd shepherd
|
|
303
329
|
npm install
|
|
304
330
|
npm run build # tsc -b — compiles the workspace for dev + tests
|
package/dist/index.js
CHANGED
|
@@ -537,6 +537,9 @@ var CreateWorkspaceRequest = z2.object({
|
|
|
537
537
|
var ListWorkspacesResponse = z2.object({
|
|
538
538
|
workspaces: z2.array(WorkspaceSummary)
|
|
539
539
|
});
|
|
540
|
+
var DeleteWorkspaceResponse = z2.object({
|
|
541
|
+
deleted: z2.literal(true)
|
|
542
|
+
});
|
|
540
543
|
var MintTokenRequest = z2.object({
|
|
541
544
|
name: z2.string().min(1).optional()
|
|
542
545
|
});
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@korso/shepherd",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "Shepherd MCP server — gives any MCP-capable agent (Claude Code, Codex, etc.) four advisory cross-session coordination tools (work/done/announce/sync) backed by the shared Shepherd hub. Joins the workspace automatically and ships standing instructions so the agent self-coordinates.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
|
+
"shepherd": "dist/index.js",
|
|
8
9
|
"shepherd-mcp": "dist/index.js",
|
|
9
10
|
"shepherd-inbox-hook": "dist/inboxHook.js"
|
|
10
11
|
},
|