@ourroadmaps/mcp 0.28.0 → 0.28.1

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 +55 -0
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1162,6 +1162,10 @@ class ApiClient {
1162
1162
  });
1163
1163
  return response.data;
1164
1164
  }
1165
+ async listPrototypes(roadmapId) {
1166
+ const response = await this.request(`/v1/roadmaps/${roadmapId}/prototypes`);
1167
+ return response.data;
1168
+ }
1165
1169
  async uploadFile(uploadUrl, content, contentType) {
1166
1170
  const response = await fetch(uploadUrl, {
1167
1171
  method: "PUT",
@@ -1441,6 +1445,7 @@ function registerAllTools(server) {
1441
1445
  registerUploadDesignWalkthrough(server);
1442
1446
  registerUploadReleaseWalkthrough(server);
1443
1447
  registerPublishPrototype(server);
1448
+ registerListPrototypes(server);
1444
1449
  registerCreateFeedbackSession(server);
1445
1450
  registerListFeedbackSessions(server);
1446
1451
  registerGetFeedbackSummary(server);
@@ -3574,6 +3579,8 @@ function registerPublishPrototype(server) {
3574
3579
  type: "text",
3575
3580
  text: `Published ${uploaded} files!
3576
3581
 
3582
+ Prototype ID: ${prototype.id}
3583
+
3577
3584
  Share this link:
3578
3585
  ${prototype.publicUrl}
3579
3586
 
@@ -3583,6 +3590,54 @@ Expires: ${expiryDate}`
3583
3590
  };
3584
3591
  });
3585
3592
  }
3593
+ function registerListPrototypes(server) {
3594
+ server.registerTool("list_prototypes", {
3595
+ description: "List published prototypes for a roadmap item. Returns prototype IDs needed for creating feedback sessions.",
3596
+ inputSchema: {
3597
+ roadmapId: z15.string().uuid().describe("The UUID of the roadmap item")
3598
+ }
3599
+ }, async ({ roadmapId }) => {
3600
+ const client2 = getApiClient();
3601
+ const prototypes = await client2.listPrototypes(roadmapId);
3602
+ if (prototypes.length === 0) {
3603
+ return {
3604
+ content: [
3605
+ {
3606
+ type: "text",
3607
+ text: "No prototypes found for this roadmap item."
3608
+ }
3609
+ ]
3610
+ };
3611
+ }
3612
+ const lines = prototypes.map((p) => {
3613
+ const expiryDate = new Date(p.expiresAt).toLocaleDateString("en-US", {
3614
+ month: "long",
3615
+ day: "numeric",
3616
+ year: "numeric"
3617
+ });
3618
+ const createdDate = new Date(p.createdAt).toLocaleDateString("en-US", {
3619
+ month: "long",
3620
+ day: "numeric",
3621
+ year: "numeric"
3622
+ });
3623
+ return `ID: ${p.id}
3624
+ URL: ${p.publicUrl}
3625
+ Files: ${p.fileCount} | Created: ${createdDate} | Expires: ${expiryDate}`;
3626
+ });
3627
+ return {
3628
+ content: [
3629
+ {
3630
+ type: "text",
3631
+ text: `Found ${prototypes.length} prototype(s):
3632
+
3633
+ ${lines.join(`
3634
+
3635
+ `)}`
3636
+ }
3637
+ ]
3638
+ };
3639
+ });
3640
+ }
3586
3641
  var dateGranularitySchema2 = z15.enum(["day", "month", "quarter", "half-year", "year"]);
3587
3642
  function registerSearchInitiatives(server) {
3588
3643
  server.registerTool("search_initiatives", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ourroadmaps/mcp",
3
- "version": "0.28.0",
3
+ "version": "0.28.1",
4
4
  "description": "MCP server for OurRoadmaps - manage roadmaps, features, and ideas from Claude Code",
5
5
  "type": "module",
6
6
  "bin": {