@damper/mcp 0.1.6 → 0.1.7
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/README.md +4 -1
- package/dist/index.js +38 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -76,6 +76,7 @@ The AI will see tools from both servers and can distinguish between them:
|
|
|
76
76
|
| `create_task` | Create task with type (bug, feature, improvement, task) |
|
|
77
77
|
| `start_task` | Lock and start task (use `force` to take over) |
|
|
78
78
|
| `add_note` | Add progress note |
|
|
79
|
+
| `create_subtask` | Add subtask to a task |
|
|
79
80
|
| `update_subtask` | Mark subtask done/undone |
|
|
80
81
|
| `complete_task` | Mark done, release lock |
|
|
81
82
|
| `abandon_task` | Release lock, return to planned |
|
|
@@ -113,9 +114,11 @@ Tasks can have subtasks for tracking incremental progress. Use `get_task` to see
|
|
|
113
114
|
- [ ] Implement API endpoints (id: def456)
|
|
114
115
|
```
|
|
115
116
|
|
|
116
|
-
|
|
117
|
+
Create and update subtasks as you work:
|
|
117
118
|
|
|
118
119
|
```
|
|
120
|
+
> Add a subtask "Write unit tests" to this task
|
|
121
|
+
> Create subtask for database migrations
|
|
119
122
|
> Mark the database schema subtask as done
|
|
120
123
|
> Update subtask def456 to done
|
|
121
124
|
```
|
package/dist/index.js
CHANGED
|
@@ -34,7 +34,7 @@ async function api(method, path, body) {
|
|
|
34
34
|
// Server
|
|
35
35
|
const server = new McpServer({
|
|
36
36
|
name: 'damper',
|
|
37
|
-
version: '0.1.
|
|
37
|
+
version: '0.1.7',
|
|
38
38
|
});
|
|
39
39
|
// Output schemas
|
|
40
40
|
const SubtaskProgressSchema = z.object({
|
|
@@ -62,9 +62,9 @@ const SubtaskSchema = z.object({
|
|
|
62
62
|
const TaskDetailSchema = z.object({
|
|
63
63
|
id: z.string(),
|
|
64
64
|
title: z.string(),
|
|
65
|
-
description: z.string().optional(),
|
|
65
|
+
description: z.string().nullable().optional(),
|
|
66
66
|
type: z.string(),
|
|
67
|
-
implementationPlan: z.string().optional(),
|
|
67
|
+
implementationPlan: z.string().nullable().optional(),
|
|
68
68
|
status: z.string(),
|
|
69
69
|
priority: z.string().nullable().optional(),
|
|
70
70
|
effort: z.string().nullable().optional(),
|
|
@@ -72,7 +72,7 @@ const TaskDetailSchema = z.object({
|
|
|
72
72
|
dueDate: z.string().nullable().optional(),
|
|
73
73
|
voteScore: z.number(),
|
|
74
74
|
subtasks: z.array(SubtaskSchema).optional(),
|
|
75
|
-
agentNotes: z.string().optional(),
|
|
75
|
+
agentNotes: z.string().nullable().optional(),
|
|
76
76
|
feedback: z.array(z.object({
|
|
77
77
|
id: z.string(),
|
|
78
78
|
title: z.string(),
|
|
@@ -310,6 +310,40 @@ server.registerTool('add_note', {
|
|
|
310
310
|
structuredContent: { taskId, success: true },
|
|
311
311
|
};
|
|
312
312
|
});
|
|
313
|
+
// Tool: Create subtask
|
|
314
|
+
server.registerTool('create_subtask', {
|
|
315
|
+
title: 'Create Subtask',
|
|
316
|
+
description: 'Add a new subtask to a task. Useful for breaking down work into smaller steps.',
|
|
317
|
+
inputSchema: z.object({
|
|
318
|
+
taskId: z.string().describe('Task ID'),
|
|
319
|
+
title: z.string().describe('Subtask title'),
|
|
320
|
+
}),
|
|
321
|
+
outputSchema: z.object({
|
|
322
|
+
taskId: z.string(),
|
|
323
|
+
subtask: z.object({
|
|
324
|
+
id: z.string(),
|
|
325
|
+
title: z.string(),
|
|
326
|
+
done: z.boolean(),
|
|
327
|
+
}),
|
|
328
|
+
totalSubtasks: z.number(),
|
|
329
|
+
}),
|
|
330
|
+
annotations: {
|
|
331
|
+
readOnlyHint: false,
|
|
332
|
+
destructiveHint: false,
|
|
333
|
+
idempotentHint: false,
|
|
334
|
+
openWorldHint: false,
|
|
335
|
+
},
|
|
336
|
+
}, async ({ taskId, title }) => {
|
|
337
|
+
const result = await api('POST', `/api/agent/tasks/${taskId}/subtasks`, { title });
|
|
338
|
+
return {
|
|
339
|
+
content: [{ type: 'text', text: `➕ Created subtask: "${result.subtask.title}" (${result.totalSubtasks} total)` }],
|
|
340
|
+
structuredContent: {
|
|
341
|
+
taskId,
|
|
342
|
+
subtask: result.subtask,
|
|
343
|
+
totalSubtasks: result.totalSubtasks,
|
|
344
|
+
},
|
|
345
|
+
};
|
|
346
|
+
});
|
|
313
347
|
// Tool: Update subtask
|
|
314
348
|
server.registerTool('update_subtask', {
|
|
315
349
|
title: 'Update Subtask',
|