@vibekiln/cutline-mcp-cli 0.13.0 → 0.15.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/README.md +15 -0
- package/dist/auth/callback.d.ts +1 -1
- package/dist/auth/callback.js +9 -1
- package/dist/commands/login.js +4 -1
- package/dist/commands/serve.d.ts +4 -0
- package/dist/commands/serve.js +19 -6
- package/dist/commands/setup.js +17 -8
- package/dist/index.js +4 -2
- package/dist/servers/{chunk-RUCYK3TR.js → chunk-FHWY2TYO.js} +349 -89
- package/dist/servers/chunk-Q5V4VTF5.js +3180 -0
- package/dist/servers/{chunk-KMUSQOTJ.js → chunk-WTLGBZBN.js} +15 -1
- package/dist/servers/cutline-server.js +1218 -4011
- package/dist/servers/{data-client-RY2DCLME.js → data-client-3OADPXXN.js} +45 -3
- package/dist/servers/exploration-server.js +1 -1
- package/dist/servers/integrations-server.js +2 -2
- package/dist/servers/output-server.js +1 -1
- package/dist/servers/premortem-server.js +30 -65
- package/dist/servers/slopburn-server.js +10069 -0
- package/dist/servers/tools-server.js +67 -6
- package/package.json +5 -3
- package/server.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
isWriteTool
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-WTLGBZBN.js";
|
|
5
5
|
import {
|
|
6
6
|
guardBoundary,
|
|
7
7
|
guardOutput,
|
|
@@ -16,12 +16,13 @@ import {
|
|
|
16
16
|
cfSaveWikiMarkdown,
|
|
17
17
|
getPersona,
|
|
18
18
|
getPodcastIntroductions,
|
|
19
|
+
getProductAgenda,
|
|
19
20
|
listPersonas,
|
|
20
21
|
mapErrorToMcp,
|
|
21
22
|
requirePremiumWithAutoAuth,
|
|
22
23
|
validateAuth,
|
|
23
24
|
validateRequestSize
|
|
24
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-FHWY2TYO.js";
|
|
25
26
|
|
|
26
27
|
// ../mcp/dist/mcp/src/tools-server.js
|
|
27
28
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
@@ -108,7 +109,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
108
109
|
productId: { type: "string", description: "Optional product ID to filter personas" },
|
|
109
110
|
auth_token: { type: "string" }
|
|
110
111
|
},
|
|
111
|
-
required: [
|
|
112
|
+
required: []
|
|
112
113
|
}
|
|
113
114
|
},
|
|
114
115
|
{
|
|
@@ -120,7 +121,51 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
120
121
|
personaId: { type: "string" },
|
|
121
122
|
auth_token: { type: "string" }
|
|
122
123
|
},
|
|
123
|
-
required: ["personaId"
|
|
124
|
+
required: ["personaId"]
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
name: "journey_product_agenda",
|
|
129
|
+
description: "Build a Markdown product agenda from Cutline Journeys (Human Discoverability audit + optional query playground today; more sections later). Returns markdown, agenda_items, agenda_version, sections_included, and mcp_arguments_hint.",
|
|
130
|
+
inputSchema: {
|
|
131
|
+
type: "object",
|
|
132
|
+
properties: {
|
|
133
|
+
personaId: { type: "string", description: "Persona whose Journey runs to pull from" },
|
|
134
|
+
audit_id: { type: "string", description: "answerAudits doc id (optional)" },
|
|
135
|
+
playground_id: { type: "string", description: "queryPlaygrounds doc id (optional)" },
|
|
136
|
+
include_latest_audit: {
|
|
137
|
+
type: "boolean",
|
|
138
|
+
description: "If audit_id omitted, use latest completed audit (default true)"
|
|
139
|
+
},
|
|
140
|
+
include_latest_playground: {
|
|
141
|
+
type: "boolean",
|
|
142
|
+
description: "Merge latest completed playground when true"
|
|
143
|
+
},
|
|
144
|
+
auth_token: { type: "string" }
|
|
145
|
+
},
|
|
146
|
+
required: ["personaId"]
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: "journey_discoverability_agenda",
|
|
151
|
+
description: "Deprecated \u2014 use journey_product_agenda. Same behavior: Markdown agenda from Human Discoverability (audit + optional playground).",
|
|
152
|
+
inputSchema: {
|
|
153
|
+
type: "object",
|
|
154
|
+
properties: {
|
|
155
|
+
personaId: { type: "string", description: "Persona whose Journey runs to pull from" },
|
|
156
|
+
audit_id: { type: "string", description: "answerAudits doc id (optional)" },
|
|
157
|
+
playground_id: { type: "string", description: "queryPlaygrounds doc id (optional)" },
|
|
158
|
+
include_latest_audit: {
|
|
159
|
+
type: "boolean",
|
|
160
|
+
description: "If audit_id omitted, use latest completed audit (default true)"
|
|
161
|
+
},
|
|
162
|
+
include_latest_playground: {
|
|
163
|
+
type: "boolean",
|
|
164
|
+
description: "Merge latest completed playground when true"
|
|
165
|
+
},
|
|
166
|
+
auth_token: { type: "string" }
|
|
167
|
+
},
|
|
168
|
+
required: ["personaId"]
|
|
124
169
|
}
|
|
125
170
|
},
|
|
126
171
|
{
|
|
@@ -151,7 +196,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
151
196
|
},
|
|
152
197
|
auth_token: { type: "string" }
|
|
153
198
|
},
|
|
154
|
-
required: ["persona", "userMessage"
|
|
199
|
+
required: ["persona", "userMessage"]
|
|
155
200
|
}
|
|
156
201
|
},
|
|
157
202
|
{
|
|
@@ -168,7 +213,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
168
213
|
},
|
|
169
214
|
auth_token: { type: "string" }
|
|
170
215
|
},
|
|
171
|
-
required: ["productId"
|
|
216
|
+
required: ["productId"]
|
|
172
217
|
}
|
|
173
218
|
}
|
|
174
219
|
]
|
|
@@ -249,6 +294,22 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
249
294
|
content: [{ type: "text", text: JSON.stringify({ persona }) }]
|
|
250
295
|
};
|
|
251
296
|
}
|
|
297
|
+
case "journey_product_agenda":
|
|
298
|
+
case "journey_discoverability_agenda": {
|
|
299
|
+
const { personaId, audit_id, playground_id, include_latest_audit, include_latest_playground, auth_token } = args;
|
|
300
|
+
const normalizedAuthToken = auth_token && auth_token !== "auto" && auth_token.trim() !== "" ? auth_token : void 0;
|
|
301
|
+
await requirePremiumWithAutoAuth(normalizedAuthToken);
|
|
302
|
+
const agenda = await getProductAgenda({
|
|
303
|
+
personaId,
|
|
304
|
+
audit_id,
|
|
305
|
+
playground_id,
|
|
306
|
+
include_latest_audit,
|
|
307
|
+
include_latest_playground
|
|
308
|
+
});
|
|
309
|
+
return {
|
|
310
|
+
content: [{ type: "text", text: JSON.stringify(agenda) }]
|
|
311
|
+
};
|
|
312
|
+
}
|
|
252
313
|
case "personas_chat": {
|
|
253
314
|
const { persona, userMessage, product, conversationHistory, auth_token } = args;
|
|
254
315
|
const normalizedAuthToken = auth_token && auth_token !== "auto" && auth_token.trim() !== "" ? auth_token : void 0;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibekiln/cutline-mcp-cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "CLI and MCP servers for Cutline
|
|
3
|
+
"version": "0.15.0",
|
|
4
|
+
"description": "CLI and MCP servers for Cutline, including SlopBurn: a product quality engineering roguelike RPG for vibecoding workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"build": "npm run build:cli && npm run build:servers",
|
|
22
22
|
"build:mcpb": "bash scripts/build-mcpb.sh",
|
|
23
23
|
"dev": "tsc --watch",
|
|
24
|
+
"test": "vitest run",
|
|
24
25
|
"start": "node dist/index.js",
|
|
25
26
|
"prepublishOnly": "npm run build"
|
|
26
27
|
},
|
|
@@ -65,7 +66,8 @@
|
|
|
65
66
|
"@types/express": "^4.17.21",
|
|
66
67
|
"@types/node": "^20.0.0",
|
|
67
68
|
"esbuild": "^0.25.0",
|
|
68
|
-
"typescript": "^5.3.0"
|
|
69
|
+
"typescript": "^5.3.0",
|
|
70
|
+
"vitest": "^4.0.18"
|
|
69
71
|
},
|
|
70
72
|
"engines": {
|
|
71
73
|
"node": ">=18.0.0"
|
package/server.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
3
|
"name": "ai.thecutline/cutline-mcp",
|
|
4
4
|
"title": "Cutline — Engineering Guardrails for Vibecoding",
|
|
5
|
-
"description": "Security, reliability, and scalability constraints for your coding agent
|
|
5
|
+
"description": "Security, reliability, and scalability constraints for your coding agent, plus SlopBurn: a product quality engineering roguelike RPG for vibecoding workflows.",
|
|
6
6
|
"version": "0.5.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"url": "https://github.com/kylewadegrove/cutline",
|