@limeadelabs/launchpad-mcp 1.2.1 → 1.2.3
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 +24 -7
- package/package.json +8 -2
package/dist/index.js
CHANGED
|
@@ -394,14 +394,16 @@ import { z as z7 } from "zod";
|
|
|
394
394
|
function registerPageTools(server2, client2) {
|
|
395
395
|
server2.tool(
|
|
396
396
|
"lp_list_pages",
|
|
397
|
-
"List spec/doc pages for a project",
|
|
397
|
+
"List spec/doc pages for a project (titles and IDs only \u2014 use lp_get_page to fetch full content)",
|
|
398
398
|
{
|
|
399
399
|
project_id: z7.coerce.number().describe("Project ID")
|
|
400
400
|
},
|
|
401
401
|
async (params) => {
|
|
402
402
|
try {
|
|
403
403
|
const result = await client2.listPages(params.project_id);
|
|
404
|
-
|
|
404
|
+
const pages = result.pages ?? result;
|
|
405
|
+
const summary = Array.isArray(pages) ? pages.map(({ id, title, project, author, created_at, updated_at }) => ({ id, title, project_id: project?.id, project_name: project?.name, author, created_at, updated_at })) : pages;
|
|
406
|
+
return { content: [{ type: "text", text: JSON.stringify(summary, null, 2) }] };
|
|
405
407
|
} catch (error) {
|
|
406
408
|
return handleError(error, client2.timeoutMs);
|
|
407
409
|
}
|
|
@@ -409,15 +411,30 @@ function registerPageTools(server2, client2) {
|
|
|
409
411
|
);
|
|
410
412
|
server2.tool(
|
|
411
413
|
"lp_get_page",
|
|
412
|
-
"Get a page's full content",
|
|
414
|
+
"Get a page's full content. Accepts page_id or id. project_id is optional \u2014 if omitted, it will be inferred automatically.",
|
|
413
415
|
{
|
|
414
|
-
project_id: z7.coerce.number().describe("Project ID"),
|
|
415
|
-
page_id: z7.coerce.number().describe("Page ID")
|
|
416
|
+
project_id: z7.coerce.number().optional().describe("Project ID (optional \u2014 inferred if omitted)"),
|
|
417
|
+
page_id: z7.coerce.number().optional().describe("Page ID"),
|
|
418
|
+
id: z7.coerce.number().optional().describe("Page ID (alias for page_id)")
|
|
416
419
|
},
|
|
417
420
|
async (params) => {
|
|
418
421
|
try {
|
|
419
|
-
const
|
|
420
|
-
|
|
422
|
+
const pageId = params.page_id ?? params.id;
|
|
423
|
+
if (!pageId) throw new Error("page_id or id is required");
|
|
424
|
+
if (params.project_id) {
|
|
425
|
+
const result = await client2.getPage(params.project_id, pageId);
|
|
426
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
427
|
+
}
|
|
428
|
+
const projectsResult = await client2.listProjects();
|
|
429
|
+
const projects = projectsResult.projects ?? projectsResult;
|
|
430
|
+
for (const proj of Array.isArray(projects) ? projects : []) {
|
|
431
|
+
try {
|
|
432
|
+
const result = await client2.getPage(proj.id, pageId);
|
|
433
|
+
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
434
|
+
} catch {
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
throw new Error(`Page ${pageId} not found in any accessible project`);
|
|
421
438
|
} catch (error) {
|
|
422
439
|
return handleError(error, client2.timeoutMs);
|
|
423
440
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@limeadelabs/launchpad-mcp",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "LaunchPad MCP server for Claude Code — AI-native project management integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -29,7 +29,13 @@
|
|
|
29
29
|
"engines": {
|
|
30
30
|
"node": ">=18.0.0"
|
|
31
31
|
},
|
|
32
|
-
"keywords": [
|
|
32
|
+
"keywords": [
|
|
33
|
+
"mcp",
|
|
34
|
+
"launchpad",
|
|
35
|
+
"claude",
|
|
36
|
+
"project-management",
|
|
37
|
+
"ai-agents"
|
|
38
|
+
],
|
|
33
39
|
"license": "MIT",
|
|
34
40
|
"publishConfig": {
|
|
35
41
|
"access": "public"
|