snboard-mcp 1.0.2 → 1.0.4
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 +38 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -86,6 +86,7 @@ var kanbanApi = {
|
|
|
86
86
|
if (params.boardId) searchParams.set("boardId", params.boardId);
|
|
87
87
|
if (params.columnId) searchParams.set("columnId", params.columnId);
|
|
88
88
|
if (params.epicId) searchParams.set("epicId", params.epicId);
|
|
89
|
+
if (params.featureId) searchParams.set("featureId", params.featureId);
|
|
89
90
|
if (params.hasEpic !== void 0) searchParams.set("hasEpic", params.hasEpic.toString());
|
|
90
91
|
if (params.status) searchParams.set("status", params.status);
|
|
91
92
|
if (params.tagIds?.length) searchParams.set("tagIds", params.tagIds.join(","));
|
|
@@ -95,6 +96,14 @@ var kanbanApi = {
|
|
|
95
96
|
},
|
|
96
97
|
// Comments
|
|
97
98
|
addComment: (cardId, content) => api("/api/comments", { method: "POST", body: JSON.stringify({ cardId, content }) }),
|
|
99
|
+
// Checklists
|
|
100
|
+
createChecklist: (data) => api("/api/checklists", { method: "POST", body: JSON.stringify(data) }),
|
|
101
|
+
updateChecklist: (id, data) => api(`/api/checklists/${id}`, { method: "PUT", body: JSON.stringify(data) }),
|
|
102
|
+
deleteChecklist: (id) => api(`/api/checklists/${id}`, { method: "DELETE" }),
|
|
103
|
+
// Checklist Items
|
|
104
|
+
createChecklistItem: (data) => api("/api/checklist-items", { method: "POST", body: JSON.stringify(data) }),
|
|
105
|
+
updateChecklistItem: (id, data) => api(`/api/checklist-items/${id}`, { method: "PUT", body: JSON.stringify(data) }),
|
|
106
|
+
deleteChecklistItem: (id) => api(`/api/checklist-items/${id}`, { method: "DELETE" }),
|
|
98
107
|
// Tags
|
|
99
108
|
listTags: () => api("/api/tags"),
|
|
100
109
|
createTag: (data) => api("/api/tags", { method: "POST", body: JSON.stringify(data) }),
|
|
@@ -165,13 +174,20 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
165
174
|
{ name: "update_column", description: "Update a column (name, emoji)", inputSchema: { type: "object", properties: { columnId: { type: "string", description: "Column ID" }, name: { type: "string" }, emoji: { type: "string" } }, required: ["columnId"] } },
|
|
166
175
|
{ name: "delete_column", description: "Delete a column and all its cards", inputSchema: { type: "object", properties: { columnId: { type: "string", description: "Column ID" } }, required: ["columnId"] } },
|
|
167
176
|
// CARDS
|
|
168
|
-
{ name: "create_card", description:
|
|
169
|
-
{ name: "update_card", description: "Update an existing card", inputSchema: { type: "object", properties: { cardId: { type: "string", description: "Card ID" }, title: { type: "string" }, description: { type: "string" } }, required: ["cardId"] } },
|
|
177
|
+
{ name: "create_card", description: 'Create a new card in a column. Supports auto-assign to epic if title starts with [SLUG] or SLUG -. Use featureId for multi-project features (e.g., "AUTH", "PAYMENT").', inputSchema: { type: "object", properties: { columnId: { type: "string", description: "Column ID" }, title: { type: "string", description: "Card title" }, description: { type: "string" }, priority: { type: "string", enum: ["P1", "P2", "P3"] }, featureId: { type: "string", description: 'Shared feature ID for multi-project features (e.g., "AUTH", "PAYMENT")' }, dueDate: { type: "string" }, epicId: { type: "string" }, tagIds: { type: "array", items: { type: "string" } }, linkedCardIds: { type: "array", items: { type: "string" } }, linkLabel: { type: "string" } }, required: ["columnId", "title"] } },
|
|
178
|
+
{ name: "update_card", description: "Update an existing card (title, description, priority, featureId, dueDate)", inputSchema: { type: "object", properties: { cardId: { type: "string", description: "Card ID" }, title: { type: "string" }, description: { type: "string" }, priority: { type: "string", enum: ["P1", "P2", "P3"] }, featureId: { type: "string", description: 'Shared feature ID for multi-project features (e.g., "AUTH", "PAYMENT")' }, dueDate: { type: "string" } }, required: ["cardId"] } },
|
|
170
179
|
{ name: "delete_card", description: "Delete a card", inputSchema: { type: "object", properties: { cardId: { type: "string", description: "Card ID" } }, required: ["cardId"] } },
|
|
171
180
|
{ name: "move_card", description: "Move a card to a different column", inputSchema: { type: "object", properties: { cardId: { type: "string", description: "Card ID" }, targetColumnId: { type: "string", description: "Target column ID" } }, required: ["cardId", "targetColumnId"] } },
|
|
172
181
|
{ name: "add_comment", description: "Add a comment to a card", inputSchema: { type: "object", properties: { cardId: { type: "string", description: "Card ID" }, content: { type: "string", description: "Comment content" } }, required: ["cardId", "content"] } },
|
|
182
|
+
// CHECKLISTS
|
|
183
|
+
{ name: "create_checklist", description: "Create a new checklist on a card", inputSchema: { type: "object", properties: { cardId: { type: "string", description: "Card ID" }, title: { type: "string", description: "Checklist title" } }, required: ["cardId", "title"] } },
|
|
184
|
+
{ name: "update_checklist", description: "Update a checklist title", inputSchema: { type: "object", properties: { checklistId: { type: "string", description: "Checklist ID" }, title: { type: "string", description: "New title" } }, required: ["checklistId", "title"] } },
|
|
185
|
+
{ name: "delete_checklist", description: "Delete a checklist and all its items", inputSchema: { type: "object", properties: { checklistId: { type: "string", description: "Checklist ID" } }, required: ["checklistId"] } },
|
|
186
|
+
{ name: "create_checklist_item", description: "Add an item to a checklist", inputSchema: { type: "object", properties: { checklistId: { type: "string", description: "Checklist ID" }, content: { type: "string", description: "Item content" } }, required: ["checklistId", "content"] } },
|
|
187
|
+
{ name: "update_checklist_item", description: "Update a checklist item (content or completed status)", inputSchema: { type: "object", properties: { itemId: { type: "string", description: "Checklist item ID" }, content: { type: "string", description: "New content" }, completed: { type: "boolean", description: "Completed status" } }, required: ["itemId"] } },
|
|
188
|
+
{ name: "delete_checklist_item", description: "Delete a checklist item", inputSchema: { type: "object", properties: { itemId: { type: "string", description: "Checklist item ID" } }, required: ["itemId"] } },
|
|
173
189
|
{ name: "get_branch_name", description: "Generate a GitHub branch name for a card", inputSchema: { type: "object", properties: { cardId: { type: "string", description: "Card ID" }, type: { type: "string", enum: ["feature", "fix", "chore", "refactor", "docs"], description: "Branch type" } }, required: ["cardId"] } },
|
|
174
|
-
{ name: "search_cards", description: "Search cards by title or description with filters to reduce token usage", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query" }, projectId: { type: "string" }, boardId: { type: "string" }, columnId: { type: "string" }, epicId: { type: "string" }, hasEpic: { type: "boolean" }, status: { type: "string", enum: ["todo", "in_progress", "done"] }, tagIds: { type: "array", items: { type: "string" } }, limit: { type: "number" }, compact: { type: "boolean" } }, required: ["query"] } },
|
|
190
|
+
{ name: "search_cards", description: "Search cards by title or description with filters to reduce token usage", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query" }, projectId: { type: "string" }, boardId: { type: "string" }, columnId: { type: "string" }, epicId: { type: "string" }, featureId: { type: "string", description: "Filter by featureId (multi-project feature)" }, hasEpic: { type: "boolean" }, status: { type: "string", enum: ["todo", "in_progress", "done"] }, tagIds: { type: "array", items: { type: "string" } }, limit: { type: "number" }, compact: { type: "boolean" } }, required: ["query"] } },
|
|
175
191
|
// TAGS
|
|
176
192
|
{ name: "list_tags", description: "List all available tags", inputSchema: { type: "object", properties: {} } },
|
|
177
193
|
{ name: "create_tag", description: "Create a new tag", inputSchema: { type: "object", properties: { name: { type: "string", description: "Tag name" }, color: { type: "string", description: "Tag color hex" } }, required: ["name", "color"] } },
|
|
@@ -285,6 +301,25 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
285
301
|
case "add_comment":
|
|
286
302
|
result = await kanbanApi.addComment(args.cardId, args.content);
|
|
287
303
|
break;
|
|
304
|
+
// CHECKLISTS
|
|
305
|
+
case "create_checklist":
|
|
306
|
+
result = await kanbanApi.createChecklist({ cardId: args.cardId, title: args.title });
|
|
307
|
+
break;
|
|
308
|
+
case "update_checklist":
|
|
309
|
+
result = await kanbanApi.updateChecklist(args.checklistId, { title: args.title });
|
|
310
|
+
break;
|
|
311
|
+
case "delete_checklist":
|
|
312
|
+
result = await kanbanApi.deleteChecklist(args.checklistId);
|
|
313
|
+
break;
|
|
314
|
+
case "create_checklist_item":
|
|
315
|
+
result = await kanbanApi.createChecklistItem({ checklistId: args.checklistId, content: args.content });
|
|
316
|
+
break;
|
|
317
|
+
case "update_checklist_item":
|
|
318
|
+
result = await kanbanApi.updateChecklistItem(args.itemId, { content: args.content, completed: args.completed });
|
|
319
|
+
break;
|
|
320
|
+
case "delete_checklist_item":
|
|
321
|
+
result = await kanbanApi.deleteChecklistItem(args.itemId);
|
|
322
|
+
break;
|
|
288
323
|
case "get_branch_name":
|
|
289
324
|
result = await kanbanApi.getBranchName(args.cardId, args.type || "feature");
|
|
290
325
|
break;
|