@ourroadmaps/mcp 0.3.0 → 0.4.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 +123 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -24033,6 +24033,28 @@ class ApiClient {
|
|
|
24033
24033
|
method: "DELETE"
|
|
24034
24034
|
});
|
|
24035
24035
|
}
|
|
24036
|
+
async listStatusUpdates() {
|
|
24037
|
+
const response = await this.request("/v1/status-updates");
|
|
24038
|
+
return response.data;
|
|
24039
|
+
}
|
|
24040
|
+
async createStatusUpdate(data) {
|
|
24041
|
+
const response = await this.request("/v1/status-updates", {
|
|
24042
|
+
method: "POST",
|
|
24043
|
+
body: JSON.stringify(data)
|
|
24044
|
+
});
|
|
24045
|
+
return response.data;
|
|
24046
|
+
}
|
|
24047
|
+
async getHistory(params) {
|
|
24048
|
+
const searchParams = new URLSearchParams({
|
|
24049
|
+
startDate: params.startDate,
|
|
24050
|
+
endDate: params.endDate
|
|
24051
|
+
});
|
|
24052
|
+
if (params.entityType) {
|
|
24053
|
+
searchParams.set("entityType", params.entityType);
|
|
24054
|
+
}
|
|
24055
|
+
const response = await this.request(`/v1/history?${searchParams.toString()}`);
|
|
24056
|
+
return response.data;
|
|
24057
|
+
}
|
|
24036
24058
|
}
|
|
24037
24059
|
var client = null;
|
|
24038
24060
|
function getApiClient() {
|
|
@@ -24074,6 +24096,9 @@ function registerAllTools(server) {
|
|
|
24074
24096
|
registerCreateAudience(server);
|
|
24075
24097
|
registerUpdateAudience(server);
|
|
24076
24098
|
registerDeleteAudience(server);
|
|
24099
|
+
registerListStatusUpdates(server);
|
|
24100
|
+
registerGetHistory(server);
|
|
24101
|
+
registerCreateStatusUpdate(server);
|
|
24077
24102
|
}
|
|
24078
24103
|
function registerSearchRoadmaps(server) {
|
|
24079
24104
|
server.registerTool("search_roadmaps", {
|
|
@@ -25135,6 +25160,104 @@ function registerDeleteAudience(server) {
|
|
|
25135
25160
|
};
|
|
25136
25161
|
});
|
|
25137
25162
|
}
|
|
25163
|
+
function registerListStatusUpdates(server) {
|
|
25164
|
+
server.registerTool("list_status_updates", {
|
|
25165
|
+
description: "List all status reports for the organization. Use this to find when the last report ended to auto-detect start date for a new report.",
|
|
25166
|
+
inputSchema: {}
|
|
25167
|
+
}, async () => {
|
|
25168
|
+
const client2 = getApiClient();
|
|
25169
|
+
const updates = await client2.listStatusUpdates();
|
|
25170
|
+
return {
|
|
25171
|
+
content: [
|
|
25172
|
+
{
|
|
25173
|
+
type: "text",
|
|
25174
|
+
text: JSON.stringify(updates.map((u) => ({
|
|
25175
|
+
id: u.id,
|
|
25176
|
+
title: u.title,
|
|
25177
|
+
startDate: u.startDate,
|
|
25178
|
+
endDate: u.endDate,
|
|
25179
|
+
createdAt: u.createdAt
|
|
25180
|
+
})), null, 2)
|
|
25181
|
+
}
|
|
25182
|
+
]
|
|
25183
|
+
};
|
|
25184
|
+
});
|
|
25185
|
+
}
|
|
25186
|
+
function registerGetHistory(server) {
|
|
25187
|
+
server.registerTool("get_history", {
|
|
25188
|
+
description: "Get history events for a date range. Returns all changes (created, updated, deleted) to roadmaps, features, ideas, etc. Use this to gather data for generating status reports.",
|
|
25189
|
+
inputSchema: {
|
|
25190
|
+
startDate: exports_external.string().regex(/^\d{4}-\d{2}-\d{2}$/).describe("Start date in YYYY-MM-DD format"),
|
|
25191
|
+
endDate: exports_external.string().regex(/^\d{4}-\d{2}-\d{2}$/).describe("End date in YYYY-MM-DD format"),
|
|
25192
|
+
entityType: exports_external.enum([
|
|
25193
|
+
"roadmap",
|
|
25194
|
+
"feature",
|
|
25195
|
+
"idea",
|
|
25196
|
+
"prd",
|
|
25197
|
+
"wireframe",
|
|
25198
|
+
"product",
|
|
25199
|
+
"audience",
|
|
25200
|
+
"scenario"
|
|
25201
|
+
]).optional().describe("Filter to specific entity type")
|
|
25202
|
+
}
|
|
25203
|
+
}, async ({
|
|
25204
|
+
startDate,
|
|
25205
|
+
endDate,
|
|
25206
|
+
entityType
|
|
25207
|
+
}) => {
|
|
25208
|
+
const client2 = getApiClient();
|
|
25209
|
+
const events = await client2.getHistory({ startDate, endDate, entityType });
|
|
25210
|
+
return {
|
|
25211
|
+
content: [
|
|
25212
|
+
{
|
|
25213
|
+
type: "text",
|
|
25214
|
+
text: JSON.stringify(events, null, 2)
|
|
25215
|
+
}
|
|
25216
|
+
]
|
|
25217
|
+
};
|
|
25218
|
+
});
|
|
25219
|
+
}
|
|
25220
|
+
function registerCreateStatusUpdate(server) {
|
|
25221
|
+
server.registerTool("create_status_update", {
|
|
25222
|
+
description: "Create a new status report. Use this after generating the report content from history events.",
|
|
25223
|
+
inputSchema: {
|
|
25224
|
+
startDate: exports_external.string().regex(/^\d{4}-\d{2}-\d{2}$/).describe("Report period start date in YYYY-MM-DD format"),
|
|
25225
|
+
endDate: exports_external.string().regex(/^\d{4}-\d{2}-\d{2}$/).describe("Report period end date in YYYY-MM-DD format"),
|
|
25226
|
+
content: exports_external.string().describe("The markdown content of the status report"),
|
|
25227
|
+
title: exports_external.string().optional().describe("Optional title for the report")
|
|
25228
|
+
}
|
|
25229
|
+
}, async ({
|
|
25230
|
+
startDate,
|
|
25231
|
+
endDate,
|
|
25232
|
+
content,
|
|
25233
|
+
title
|
|
25234
|
+
}) => {
|
|
25235
|
+
const client2 = getApiClient();
|
|
25236
|
+
const update = await client2.createStatusUpdate({
|
|
25237
|
+
startDate,
|
|
25238
|
+
endDate,
|
|
25239
|
+
content,
|
|
25240
|
+
title
|
|
25241
|
+
});
|
|
25242
|
+
return {
|
|
25243
|
+
content: [
|
|
25244
|
+
{
|
|
25245
|
+
type: "text",
|
|
25246
|
+
text: JSON.stringify({
|
|
25247
|
+
success: true,
|
|
25248
|
+
statusUpdate: {
|
|
25249
|
+
id: update.id,
|
|
25250
|
+
title: update.title,
|
|
25251
|
+
startDate: update.startDate,
|
|
25252
|
+
endDate: update.endDate,
|
|
25253
|
+
createdAt: update.createdAt
|
|
25254
|
+
}
|
|
25255
|
+
}, null, 2)
|
|
25256
|
+
}
|
|
25257
|
+
]
|
|
25258
|
+
};
|
|
25259
|
+
});
|
|
25260
|
+
}
|
|
25138
25261
|
|
|
25139
25262
|
// src/index.ts
|
|
25140
25263
|
async function main() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ourroadmaps/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "MCP server for OurRoadmaps - manage roadmaps, features, and ideas from Claude Code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
35
|
+
"@modelcontextprotocol/sdk": "^1.24.3",
|
|
36
36
|
"@ourroadmaps/shared": "*",
|
|
37
37
|
"zod": "^3.23.0"
|
|
38
38
|
},
|