@ourroadmaps/mcp 0.19.0 → 0.20.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/dist/index.js +64 -94
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -22,10 +22,28 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
|
22
22
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
23
23
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
24
24
|
// ../../packages/shared/src/schemas/audience.ts
|
|
25
|
-
import { z as z2 } from "zod";
|
|
26
|
-
|
|
27
|
-
// ../../packages/shared/src/schemas/constants.ts
|
|
28
25
|
import { z } from "zod";
|
|
26
|
+
var audienceSchema = z.object({
|
|
27
|
+
id: z.string().uuid(),
|
|
28
|
+
organizationId: z.string(),
|
|
29
|
+
name: z.string(),
|
|
30
|
+
description: z.string().nullable(),
|
|
31
|
+
order: z.number().int(),
|
|
32
|
+
createdAt: z.string(),
|
|
33
|
+
updatedAt: z.string().nullable()
|
|
34
|
+
});
|
|
35
|
+
var createAudienceSchema = z.object({
|
|
36
|
+
name: z.string().min(1),
|
|
37
|
+
description: z.string().nullable().optional()
|
|
38
|
+
});
|
|
39
|
+
var updateAudienceSchema = z.object({
|
|
40
|
+
name: z.string().min(1).optional(),
|
|
41
|
+
description: z.string().nullable().optional(),
|
|
42
|
+
order: z.number().int().optional()
|
|
43
|
+
});
|
|
44
|
+
var audienceListSchema = z.array(audienceSchema);
|
|
45
|
+
// ../../packages/shared/src/schemas/constants.ts
|
|
46
|
+
import { z as z2 } from "zod";
|
|
29
47
|
var HORIZONS = [
|
|
30
48
|
"inbox",
|
|
31
49
|
"now",
|
|
@@ -36,7 +54,7 @@ var HORIZONS = [
|
|
|
36
54
|
"done",
|
|
37
55
|
"cancelled"
|
|
38
56
|
];
|
|
39
|
-
var horizonSchema =
|
|
57
|
+
var horizonSchema = z2.enum(HORIZONS);
|
|
40
58
|
var ROADMAP_STATUSES = [
|
|
41
59
|
"not_started",
|
|
42
60
|
"planning",
|
|
@@ -46,17 +64,17 @@ var ROADMAP_STATUSES = [
|
|
|
46
64
|
"done",
|
|
47
65
|
"cancelled"
|
|
48
66
|
];
|
|
49
|
-
var roadmapStatusSchema =
|
|
67
|
+
var roadmapStatusSchema = z2.enum(ROADMAP_STATUSES);
|
|
50
68
|
var EFFORT_SIZES = ["xs", "s", "m", "l", "xl"];
|
|
51
|
-
var effortSchema =
|
|
69
|
+
var effortSchema = z2.enum(EFFORT_SIZES);
|
|
52
70
|
var DATE_GRANULARITIES = ["day", "month", "quarter", "half-year", "year"];
|
|
53
|
-
var dateGranularitySchema =
|
|
71
|
+
var dateGranularitySchema = z2.enum(DATE_GRANULARITIES);
|
|
54
72
|
var PRD_STATUSES = ["draft", "completed"];
|
|
55
|
-
var prdStatusSchema =
|
|
73
|
+
var prdStatusSchema = z2.enum(PRD_STATUSES);
|
|
56
74
|
var IDEA_STATUSES = ["new", "under-review", "planned", "declined", "done"];
|
|
57
|
-
var ideaStatusSchema =
|
|
75
|
+
var ideaStatusSchema = z2.enum(IDEA_STATUSES);
|
|
58
76
|
var FEATURE_TYPES = ["area", "feature"];
|
|
59
|
-
var featureTypeSchema =
|
|
77
|
+
var featureTypeSchema = z2.enum(FEATURE_TYPES);
|
|
60
78
|
var PRODUCT_TYPES = [
|
|
61
79
|
"brand",
|
|
62
80
|
"product",
|
|
@@ -65,41 +83,11 @@ var PRODUCT_TYPES = [
|
|
|
65
83
|
"landing_page",
|
|
66
84
|
"service"
|
|
67
85
|
];
|
|
68
|
-
var productTypeSchema =
|
|
86
|
+
var productTypeSchema = z2.enum(PRODUCT_TYPES);
|
|
69
87
|
var AUDIENCE_TYPES = ["stakeholder", "user_persona"];
|
|
70
|
-
var audienceTypeSchema =
|
|
88
|
+
var audienceTypeSchema = z2.enum(AUDIENCE_TYPES);
|
|
71
89
|
var BRAINSTORM_MEDIA_TYPES = ["image", "video"];
|
|
72
|
-
var brainstormMediaTypeSchema =
|
|
73
|
-
|
|
74
|
-
// ../../packages/shared/src/schemas/audience.ts
|
|
75
|
-
var audienceSchema = z2.object({
|
|
76
|
-
id: z2.string().uuid(),
|
|
77
|
-
organizationId: z2.string(),
|
|
78
|
-
type: audienceTypeSchema,
|
|
79
|
-
role: z2.string().nullable(),
|
|
80
|
-
likes: z2.string().nullable(),
|
|
81
|
-
dislikes: z2.string().nullable(),
|
|
82
|
-
priorities: z2.string().nullable(),
|
|
83
|
-
order: z2.number().int(),
|
|
84
|
-
deletedAt: z2.string().nullable(),
|
|
85
|
-
createdAt: z2.string()
|
|
86
|
-
});
|
|
87
|
-
var createAudienceSchema = z2.object({
|
|
88
|
-
type: audienceTypeSchema,
|
|
89
|
-
role: z2.string().min(1),
|
|
90
|
-
likes: z2.string().nullable().optional(),
|
|
91
|
-
dislikes: z2.string().nullable().optional(),
|
|
92
|
-
priorities: z2.string().nullable().optional()
|
|
93
|
-
});
|
|
94
|
-
var updateAudienceSchema = z2.object({
|
|
95
|
-
type: audienceTypeSchema.optional(),
|
|
96
|
-
role: z2.string().min(1).optional(),
|
|
97
|
-
likes: z2.string().nullable().optional(),
|
|
98
|
-
dislikes: z2.string().nullable().optional(),
|
|
99
|
-
priorities: z2.string().nullable().optional(),
|
|
100
|
-
order: z2.number().int().optional()
|
|
101
|
-
});
|
|
102
|
-
var audienceListSchema = z2.array(audienceSchema);
|
|
90
|
+
var brainstormMediaTypeSchema = z2.enum(BRAINSTORM_MEDIA_TYPES);
|
|
103
91
|
// ../../packages/shared/src/schemas/context.ts
|
|
104
92
|
import { z as z3 } from "zod";
|
|
105
93
|
var domainContextSchema = z3.object({
|
|
@@ -1421,7 +1409,7 @@ function registerCreateRoadmapItem(server) {
|
|
|
1421
1409
|
var effortSizeSchema = z11.enum(["xs", "s", "m", "l", "xl"]);
|
|
1422
1410
|
function registerUpdateRoadmapItem(server) {
|
|
1423
1411
|
server.registerTool("update_roadmap_item", {
|
|
1424
|
-
description: "Update an existing roadmap item. Can update title, status, horizon, value, effort, order, prompt, initiative link, or brainstorm notes.",
|
|
1412
|
+
description: "Update an existing roadmap item. Can update title, status, horizon, value, effort, order, prompt, initiative link, target date, or brainstorm notes.",
|
|
1425
1413
|
inputSchema: {
|
|
1426
1414
|
id: z11.string().describe("The UUID of the roadmap item to update"),
|
|
1427
1415
|
title: z11.string().optional().describe("New title"),
|
|
@@ -1435,7 +1423,9 @@ function registerUpdateRoadmapItem(server) {
|
|
|
1435
1423
|
planDescription: z11.string().nullable().optional().describe("Description for the Planning phase"),
|
|
1436
1424
|
buildDescription: z11.string().nullable().optional().describe("Description for the Build phase"),
|
|
1437
1425
|
releaseDescription: z11.string().nullable().optional().describe("Description for the Release phase"),
|
|
1438
|
-
prompt: z11.string().nullable().optional().describe("Build prompt for the roadmap item")
|
|
1426
|
+
prompt: z11.string().nullable().optional().describe("Build prompt for the roadmap item"),
|
|
1427
|
+
dateGranularity: dateGranularitySchema2.nullable().optional().describe("Target date granularity: day, month, quarter, half_year, or year"),
|
|
1428
|
+
dateValue: z11.string().nullable().optional().describe('Target date value matching granularity (e.g., "2024-03-15" for day, "2024-Q1" for quarter)')
|
|
1439
1429
|
}
|
|
1440
1430
|
}, async ({
|
|
1441
1431
|
id,
|
|
@@ -1450,7 +1440,9 @@ function registerUpdateRoadmapItem(server) {
|
|
|
1450
1440
|
planDescription,
|
|
1451
1441
|
buildDescription,
|
|
1452
1442
|
releaseDescription,
|
|
1453
|
-
prompt
|
|
1443
|
+
prompt,
|
|
1444
|
+
dateGranularity,
|
|
1445
|
+
dateValue
|
|
1454
1446
|
}) => {
|
|
1455
1447
|
const client2 = getApiClient();
|
|
1456
1448
|
const updates = {};
|
|
@@ -1468,6 +1460,10 @@ function registerUpdateRoadmapItem(server) {
|
|
|
1468
1460
|
updates.order = order;
|
|
1469
1461
|
if (initiativeId !== undefined)
|
|
1470
1462
|
updates.initiativeId = initiativeId;
|
|
1463
|
+
if (dateGranularity !== undefined)
|
|
1464
|
+
updates.dateGranularity = dateGranularity;
|
|
1465
|
+
if (dateValue !== undefined)
|
|
1466
|
+
updates.dateValue = dateValue;
|
|
1471
1467
|
const roadmap2 = Object.keys(updates).length > 0 ? await client2.updateRoadmap(id, updates) : await client2.getRoadmap(id);
|
|
1472
1468
|
const phaseUpdates = {};
|
|
1473
1469
|
if (designDescription !== undefined) {
|
|
@@ -1507,7 +1503,9 @@ function registerUpdateRoadmapItem(server) {
|
|
|
1507
1503
|
horizon: roadmap2.horizon,
|
|
1508
1504
|
value: roadmap2.value,
|
|
1509
1505
|
effort: roadmap2.effort,
|
|
1510
|
-
order: roadmap2.order
|
|
1506
|
+
order: roadmap2.order,
|
|
1507
|
+
dateGranularity: roadmap2.dateGranularity,
|
|
1508
|
+
dateValue: roadmap2.dateValue
|
|
1511
1509
|
},
|
|
1512
1510
|
phaseDescriptionsUpdated: phaseUpdates
|
|
1513
1511
|
}, null, 2)
|
|
@@ -2247,31 +2245,21 @@ function registerUpdateProductDocumentation(server) {
|
|
|
2247
2245
|
};
|
|
2248
2246
|
});
|
|
2249
2247
|
}
|
|
2250
|
-
var audienceTypeSchema2 = z11.enum(["stakeholder", "user_persona"]);
|
|
2251
2248
|
function registerCreateAudience(server) {
|
|
2252
2249
|
server.registerTool("create_audience", {
|
|
2253
|
-
description: "Create a new audience member
|
|
2250
|
+
description: "Create a new audience member. Audiences represent who the product serves.",
|
|
2254
2251
|
inputSchema: {
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
likes: z11.string().nullable().optional().describe("What this audience likes or values"),
|
|
2258
|
-
dislikes: z11.string().nullable().optional().describe("What this audience dislikes or avoids"),
|
|
2259
|
-
priorities: z11.string().nullable().optional().describe("Key priorities for this audience")
|
|
2252
|
+
name: z11.string().describe('Name of the audience (e.g., "Product Manager", "End User")'),
|
|
2253
|
+
description: z11.string().nullable().optional().describe("Description of the audience")
|
|
2260
2254
|
}
|
|
2261
2255
|
}, async ({
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
likes,
|
|
2265
|
-
dislikes,
|
|
2266
|
-
priorities
|
|
2256
|
+
name,
|
|
2257
|
+
description
|
|
2267
2258
|
}) => {
|
|
2268
2259
|
const client2 = getApiClient();
|
|
2269
2260
|
const audience2 = await client2.createAudience({
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
likes: likes ?? null,
|
|
2273
|
-
dislikes: dislikes ?? null,
|
|
2274
|
-
priorities: priorities ?? null
|
|
2261
|
+
name,
|
|
2262
|
+
description: description ?? null
|
|
2275
2263
|
});
|
|
2276
2264
|
return {
|
|
2277
2265
|
content: [
|
|
@@ -2281,11 +2269,8 @@ function registerCreateAudience(server) {
|
|
|
2281
2269
|
success: true,
|
|
2282
2270
|
audience: {
|
|
2283
2271
|
id: audience2.id,
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
likes: audience2.likes,
|
|
2287
|
-
dislikes: audience2.dislikes,
|
|
2288
|
-
priorities: audience2.priorities
|
|
2272
|
+
name: audience2.name,
|
|
2273
|
+
description: audience2.description
|
|
2289
2274
|
}
|
|
2290
2275
|
}, null, 2)
|
|
2291
2276
|
}
|
|
@@ -2298,32 +2283,20 @@ function registerUpdateAudience(server) {
|
|
|
2298
2283
|
description: "Update an existing audience member.",
|
|
2299
2284
|
inputSchema: {
|
|
2300
2285
|
id: z11.string().describe("The UUID of the audience to update"),
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
likes: z11.string().nullable().optional().describe("New likes"),
|
|
2304
|
-
dislikes: z11.string().nullable().optional().describe("New dislikes"),
|
|
2305
|
-
priorities: z11.string().nullable().optional().describe("New priorities")
|
|
2286
|
+
name: z11.string().optional().describe("New name"),
|
|
2287
|
+
description: z11.string().nullable().optional().describe("New description")
|
|
2306
2288
|
}
|
|
2307
2289
|
}, async ({
|
|
2308
2290
|
id,
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
likes,
|
|
2312
|
-
dislikes,
|
|
2313
|
-
priorities
|
|
2291
|
+
name,
|
|
2292
|
+
description
|
|
2314
2293
|
}) => {
|
|
2315
2294
|
const client2 = getApiClient();
|
|
2316
2295
|
const updates = {};
|
|
2317
|
-
if (
|
|
2318
|
-
updates.
|
|
2319
|
-
if (
|
|
2320
|
-
updates.
|
|
2321
|
-
if (likes !== undefined)
|
|
2322
|
-
updates.likes = likes;
|
|
2323
|
-
if (dislikes !== undefined)
|
|
2324
|
-
updates.dislikes = dislikes;
|
|
2325
|
-
if (priorities !== undefined)
|
|
2326
|
-
updates.priorities = priorities;
|
|
2296
|
+
if (name !== undefined)
|
|
2297
|
+
updates.name = name;
|
|
2298
|
+
if (description !== undefined)
|
|
2299
|
+
updates.description = description;
|
|
2327
2300
|
const audience2 = await client2.updateAudience(id, updates);
|
|
2328
2301
|
return {
|
|
2329
2302
|
content: [
|
|
@@ -2333,11 +2306,8 @@ function registerUpdateAudience(server) {
|
|
|
2333
2306
|
success: true,
|
|
2334
2307
|
audience: {
|
|
2335
2308
|
id: audience2.id,
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
likes: audience2.likes,
|
|
2339
|
-
dislikes: audience2.dislikes,
|
|
2340
|
-
priorities: audience2.priorities
|
|
2309
|
+
name: audience2.name,
|
|
2310
|
+
description: audience2.description
|
|
2341
2311
|
}
|
|
2342
2312
|
}, null, 2)
|
|
2343
2313
|
}
|