@ourroadmaps/mcp 0.6.0 → 0.7.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 +121 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -23670,6 +23670,70 @@ var updateProductSchema = exports_external.object({
|
|
|
23670
23670
|
order: exports_external.number().int().optional()
|
|
23671
23671
|
});
|
|
23672
23672
|
var productListSchema = exports_external.array(productSchema);
|
|
23673
|
+
// ../../packages/shared/src/schemas/story.ts
|
|
23674
|
+
var epicSchema = exports_external.object({
|
|
23675
|
+
id: exports_external.string().uuid(),
|
|
23676
|
+
roadmapItemId: exports_external.string().uuid(),
|
|
23677
|
+
organizationId: exports_external.string(),
|
|
23678
|
+
title: exports_external.string(),
|
|
23679
|
+
description: exports_external.string().nullable(),
|
|
23680
|
+
order: exports_external.number().int(),
|
|
23681
|
+
createdAt: exports_external.string(),
|
|
23682
|
+
updatedAt: exports_external.string(),
|
|
23683
|
+
deletedAt: exports_external.string().nullable()
|
|
23684
|
+
});
|
|
23685
|
+
var storySchema = exports_external.object({
|
|
23686
|
+
id: exports_external.string().uuid(),
|
|
23687
|
+
roadmapItemId: exports_external.string().uuid(),
|
|
23688
|
+
epicId: exports_external.string().uuid().nullable(),
|
|
23689
|
+
organizationId: exports_external.string(),
|
|
23690
|
+
title: exports_external.string(),
|
|
23691
|
+
description: exports_external.string().nullable(),
|
|
23692
|
+
order: exports_external.number().int(),
|
|
23693
|
+
createdAt: exports_external.string(),
|
|
23694
|
+
updatedAt: exports_external.string(),
|
|
23695
|
+
deletedAt: exports_external.string().nullable()
|
|
23696
|
+
});
|
|
23697
|
+
var epicWithStoriesSchema = epicSchema.extend({
|
|
23698
|
+
stories: exports_external.array(storySchema)
|
|
23699
|
+
});
|
|
23700
|
+
var createEpicSchema = exports_external.object({
|
|
23701
|
+
title: exports_external.string().min(1),
|
|
23702
|
+
description: exports_external.string().nullable().optional()
|
|
23703
|
+
});
|
|
23704
|
+
var createStorySchema = exports_external.object({
|
|
23705
|
+
title: exports_external.string().min(1),
|
|
23706
|
+
description: exports_external.string().nullable().optional()
|
|
23707
|
+
});
|
|
23708
|
+
var saveStoriesInputSchema = exports_external.object({
|
|
23709
|
+
epics: exports_external.array(exports_external.object({
|
|
23710
|
+
title: exports_external.string().min(1),
|
|
23711
|
+
description: exports_external.string().nullable().optional(),
|
|
23712
|
+
stories: exports_external.array(exports_external.object({
|
|
23713
|
+
title: exports_external.string().min(1),
|
|
23714
|
+
description: exports_external.string().nullable().optional()
|
|
23715
|
+
})).optional().default([])
|
|
23716
|
+
})).optional().default([]),
|
|
23717
|
+
stories: exports_external.array(exports_external.object({
|
|
23718
|
+
title: exports_external.string().min(1),
|
|
23719
|
+
description: exports_external.string().nullable().optional()
|
|
23720
|
+
})).optional().default([])
|
|
23721
|
+
});
|
|
23722
|
+
var updateEpicSchema = exports_external.object({
|
|
23723
|
+
title: exports_external.string().min(1).optional(),
|
|
23724
|
+
description: exports_external.string().nullable().optional()
|
|
23725
|
+
});
|
|
23726
|
+
var updateStorySchema = exports_external.object({
|
|
23727
|
+
title: exports_external.string().min(1).optional(),
|
|
23728
|
+
description: exports_external.string().nullable().optional(),
|
|
23729
|
+
epicId: exports_external.string().uuid().nullable().optional()
|
|
23730
|
+
});
|
|
23731
|
+
var reorderStoriesSchema = exports_external.object({
|
|
23732
|
+
epicOrder: exports_external.array(exports_external.string().uuid()).optional(),
|
|
23733
|
+
storyOrder: exports_external.record(exports_external.string(), exports_external.array(exports_external.string().uuid())).optional(),
|
|
23734
|
+
standaloneOrder: exports_external.array(exports_external.string().uuid()).optional()
|
|
23735
|
+
});
|
|
23736
|
+
|
|
23673
23737
|
// ../../packages/shared/src/schemas/roadmap.ts
|
|
23674
23738
|
var flexibleDateSchema = exports_external.object({
|
|
23675
23739
|
value: exports_external.string(),
|
|
@@ -23782,7 +23846,9 @@ var roadmapDetailSchema = roadmapSchema.extend({
|
|
|
23782
23846
|
wireframes: exports_external.array(wireframeSchema),
|
|
23783
23847
|
brainstormMedia: exports_external.array(brainstormMediaSchema),
|
|
23784
23848
|
brainstormNotes: exports_external.string().nullable(),
|
|
23785
|
-
featureLinks: exports_external.array(featureLinkSchema)
|
|
23849
|
+
featureLinks: exports_external.array(featureLinkSchema),
|
|
23850
|
+
epics: exports_external.array(epicWithStoriesSchema),
|
|
23851
|
+
stories: exports_external.array(storySchema)
|
|
23786
23852
|
});
|
|
23787
23853
|
var roadmapListSchema = exports_external.array(roadmapSchema);
|
|
23788
23854
|
// ../../packages/shared/src/schemas/scenario.ts
|
|
@@ -24070,6 +24136,13 @@ class ApiClient {
|
|
|
24070
24136
|
const response = await this.request(`/v1/history?${searchParams.toString()}`);
|
|
24071
24137
|
return response.data;
|
|
24072
24138
|
}
|
|
24139
|
+
async saveStories(roadmapId, data) {
|
|
24140
|
+
const response = await this.request(`/v1/roadmaps/${roadmapId}/stories`, {
|
|
24141
|
+
method: "POST",
|
|
24142
|
+
body: JSON.stringify(data)
|
|
24143
|
+
});
|
|
24144
|
+
return response.data;
|
|
24145
|
+
}
|
|
24073
24146
|
}
|
|
24074
24147
|
var client = null;
|
|
24075
24148
|
function getApiClient() {
|
|
@@ -24118,6 +24191,7 @@ function registerAllTools(server) {
|
|
|
24118
24191
|
registerListStatusUpdates(server);
|
|
24119
24192
|
registerGetHistory(server);
|
|
24120
24193
|
registerCreateStatusUpdate(server);
|
|
24194
|
+
registerSaveStories(server);
|
|
24121
24195
|
}
|
|
24122
24196
|
function registerSearchRoadmaps(server) {
|
|
24123
24197
|
server.registerTool("search_roadmaps", {
|
|
@@ -24161,7 +24235,7 @@ function registerSearchRoadmaps(server) {
|
|
|
24161
24235
|
}
|
|
24162
24236
|
function registerGetRoadmap(server) {
|
|
24163
24237
|
server.registerTool("get_roadmap", {
|
|
24164
|
-
description: "Get full details of a roadmap item including PRD, wireframes, brainstorm media, linked features, and
|
|
24238
|
+
description: "Get full details of a roadmap item including PRD, wireframes, brainstorm media, linked features, epics, and stories.",
|
|
24165
24239
|
inputSchema: {
|
|
24166
24240
|
id: exports_external.string().describe("The UUID of the roadmap item")
|
|
24167
24241
|
}
|
|
@@ -24196,6 +24270,8 @@ function registerGetRoadmap(server) {
|
|
|
24196
24270
|
featureName: l.feature.name,
|
|
24197
24271
|
featureType: l.feature.type
|
|
24198
24272
|
})),
|
|
24273
|
+
epics: roadmap2.epics,
|
|
24274
|
+
stories: roadmap2.stories,
|
|
24199
24275
|
createdAt: roadmap2.createdAt
|
|
24200
24276
|
}, null, 2)
|
|
24201
24277
|
}
|
|
@@ -25416,6 +25492,49 @@ function registerCreateStatusUpdate(server) {
|
|
|
25416
25492
|
};
|
|
25417
25493
|
});
|
|
25418
25494
|
}
|
|
25495
|
+
function registerSaveStories(server) {
|
|
25496
|
+
server.registerTool("save_stories", {
|
|
25497
|
+
description: "Save epics and stories for a roadmap item. Replaces all existing epics/stories. Use this to set the complete list of epics and stories for a roadmap.",
|
|
25498
|
+
inputSchema: {
|
|
25499
|
+
roadmapId: exports_external.string().uuid().describe("The UUID of the roadmap item"),
|
|
25500
|
+
epics: exports_external.array(exports_external.object({
|
|
25501
|
+
title: exports_external.string().min(1).describe("Title of the epic"),
|
|
25502
|
+
description: exports_external.string().nullable().optional().describe("Description of the epic"),
|
|
25503
|
+
stories: exports_external.array(exports_external.object({
|
|
25504
|
+
title: exports_external.string().min(1).describe("Title of the story"),
|
|
25505
|
+
description: exports_external.string().nullable().optional().describe("Description of the story")
|
|
25506
|
+
})).optional().describe("Stories within this epic")
|
|
25507
|
+
})).optional().describe("List of epics with their nested stories"),
|
|
25508
|
+
stories: exports_external.array(exports_external.object({
|
|
25509
|
+
title: exports_external.string().min(1).describe("Title of the story"),
|
|
25510
|
+
description: exports_external.string().nullable().optional().describe("Description of the story")
|
|
25511
|
+
})).optional().describe("List of standalone stories (not part of any epic)")
|
|
25512
|
+
}
|
|
25513
|
+
}, async ({
|
|
25514
|
+
roadmapId,
|
|
25515
|
+
epics,
|
|
25516
|
+
stories
|
|
25517
|
+
}) => {
|
|
25518
|
+
const client2 = getApiClient();
|
|
25519
|
+
const result = await client2.saveStories(roadmapId, {
|
|
25520
|
+
epics: epics ?? [],
|
|
25521
|
+
stories: stories ?? []
|
|
25522
|
+
});
|
|
25523
|
+
return {
|
|
25524
|
+
content: [
|
|
25525
|
+
{
|
|
25526
|
+
type: "text",
|
|
25527
|
+
text: JSON.stringify({
|
|
25528
|
+
success: true,
|
|
25529
|
+
epicCount: result.epics.length,
|
|
25530
|
+
storyCount: result.stories.length,
|
|
25531
|
+
totalStories: result.stories.length + result.epics.reduce((sum, epic) => sum + (epic.stories?.length ?? 0), 0)
|
|
25532
|
+
}, null, 2)
|
|
25533
|
+
}
|
|
25534
|
+
]
|
|
25535
|
+
};
|
|
25536
|
+
});
|
|
25537
|
+
}
|
|
25419
25538
|
|
|
25420
25539
|
// src/index.ts
|
|
25421
25540
|
async function main() {
|