@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.
Files changed (2) hide show
  1. package/dist/index.js +64 -94
  2. 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 = z.enum(HORIZONS);
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 = z.enum(ROADMAP_STATUSES);
67
+ var roadmapStatusSchema = z2.enum(ROADMAP_STATUSES);
50
68
  var EFFORT_SIZES = ["xs", "s", "m", "l", "xl"];
51
- var effortSchema = z.enum(EFFORT_SIZES);
69
+ var effortSchema = z2.enum(EFFORT_SIZES);
52
70
  var DATE_GRANULARITIES = ["day", "month", "quarter", "half-year", "year"];
53
- var dateGranularitySchema = z.enum(DATE_GRANULARITIES);
71
+ var dateGranularitySchema = z2.enum(DATE_GRANULARITIES);
54
72
  var PRD_STATUSES = ["draft", "completed"];
55
- var prdStatusSchema = z.enum(PRD_STATUSES);
73
+ var prdStatusSchema = z2.enum(PRD_STATUSES);
56
74
  var IDEA_STATUSES = ["new", "under-review", "planned", "declined", "done"];
57
- var ideaStatusSchema = z.enum(IDEA_STATUSES);
75
+ var ideaStatusSchema = z2.enum(IDEA_STATUSES);
58
76
  var FEATURE_TYPES = ["area", "feature"];
59
- var featureTypeSchema = z.enum(FEATURE_TYPES);
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 = z.enum(PRODUCT_TYPES);
86
+ var productTypeSchema = z2.enum(PRODUCT_TYPES);
69
87
  var AUDIENCE_TYPES = ["stakeholder", "user_persona"];
70
- var audienceTypeSchema = z.enum(AUDIENCE_TYPES);
88
+ var audienceTypeSchema = z2.enum(AUDIENCE_TYPES);
71
89
  var BRAINSTORM_MEDIA_TYPES = ["image", "video"];
72
- var brainstormMediaTypeSchema = z.enum(BRAINSTORM_MEDIA_TYPES);
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 - either a stakeholder or user persona. Audiences represent who the product serves.",
2250
+ description: "Create a new audience member. Audiences represent who the product serves.",
2254
2251
  inputSchema: {
2255
- type: audienceTypeSchema2.describe("Type of audience - stakeholder or user_persona"),
2256
- role: z11.string().describe('Role or title of the audience (e.g., "Product Manager", "End User")'),
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
- type,
2263
- role,
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
- type,
2271
- role,
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
- type: audience2.type,
2285
- role: audience2.role,
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
- type: audienceTypeSchema2.optional().describe("New type"),
2302
- role: z11.string().optional().describe("New role"),
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
- type,
2310
- role,
2311
- likes,
2312
- dislikes,
2313
- priorities
2291
+ name,
2292
+ description
2314
2293
  }) => {
2315
2294
  const client2 = getApiClient();
2316
2295
  const updates = {};
2317
- if (type !== undefined)
2318
- updates.type = type;
2319
- if (role !== undefined)
2320
- updates.role = role;
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
- type: audience2.type,
2337
- role: audience2.role,
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ourroadmaps/mcp",
3
- "version": "0.19.0",
3
+ "version": "0.20.0",
4
4
  "description": "MCP server for OurRoadmaps - manage roadmaps, features, and ideas from Claude Code",
5
5
  "type": "module",
6
6
  "bin": {