@damper/mcp 0.3.1 ā 0.3.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 +54 -6
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -331,7 +331,8 @@ server.registerTool('start_task', {
|
|
|
331
331
|
title: 'Start Task',
|
|
332
332
|
description: 'Lock and start a task. Fails if locked by another agent unless force=true. ' +
|
|
333
333
|
'Use force=true to take over a task from another agent (e.g., if they abandoned it). ' +
|
|
334
|
-
'Returns project context index with relevant sections for the task.'
|
|
334
|
+
'Returns project context index with relevant sections for the task. ' +
|
|
335
|
+
'Use add_note for session start/end and commits.',
|
|
335
336
|
inputSchema: z.object({
|
|
336
337
|
taskId: z.string(),
|
|
337
338
|
force: z.boolean().optional().describe('Take over lock from another agent'),
|
|
@@ -371,6 +372,7 @@ server.registerTool('start_task', {
|
|
|
371
372
|
}
|
|
372
373
|
}
|
|
373
374
|
}
|
|
375
|
+
lines.push('\nš” Use add_note to log session start, commits, and session end with next steps.');
|
|
374
376
|
return {
|
|
375
377
|
content: [{ type: 'text', text: lines.join('\n') }],
|
|
376
378
|
structuredContent: result,
|
|
@@ -404,7 +406,8 @@ server.registerTool('start_task', {
|
|
|
404
406
|
// Tool: Add note
|
|
405
407
|
server.registerTool('add_note', {
|
|
406
408
|
title: 'Add Note',
|
|
407
|
-
description: 'Add progress note to task.'
|
|
409
|
+
description: 'Add progress note to task. Log session start, commits (with hashes), decisions, ' +
|
|
410
|
+
'and session end with next steps. Notes help future agents continue your work.',
|
|
408
411
|
inputSchema: z.object({
|
|
409
412
|
taskId: z.string(),
|
|
410
413
|
note: z.string(),
|
|
@@ -506,7 +509,8 @@ const DocumentationSchema = z.object({
|
|
|
506
509
|
// Tool: Complete task
|
|
507
510
|
server.registerTool('complete_task', {
|
|
508
511
|
title: 'Complete Task',
|
|
509
|
-
description: 'Mark task done with summary.
|
|
512
|
+
description: 'Mark task done with summary. Include commit hashes and any follow-up work. ' +
|
|
513
|
+
'Returns documentation update suggestions.',
|
|
510
514
|
inputSchema: z.object({
|
|
511
515
|
taskId: z.string(),
|
|
512
516
|
summary: z.string().describe('What was implemented'),
|
|
@@ -537,9 +541,10 @@ server.registerTool('complete_task', {
|
|
|
537
541
|
server.registerTool('abandon_task', {
|
|
538
542
|
title: 'Abandon Task',
|
|
539
543
|
description: 'Release lock and return task to planned status. Use when you cannot complete the task ' +
|
|
540
|
-
'or need to stop working on it.',
|
|
544
|
+
'or need to stop working on it. Optionally provide summary (what done, what remains, blockers) for handoff.',
|
|
541
545
|
inputSchema: z.object({
|
|
542
546
|
taskId: z.string(),
|
|
547
|
+
summary: z.string().optional().describe('Handoff summary: what was done, what remains, any blockers'),
|
|
543
548
|
}),
|
|
544
549
|
outputSchema: z.object({
|
|
545
550
|
id: z.string(),
|
|
@@ -552,8 +557,8 @@ server.registerTool('abandon_task', {
|
|
|
552
557
|
idempotentHint: true,
|
|
553
558
|
openWorldHint: false,
|
|
554
559
|
},
|
|
555
|
-
}, async ({ taskId }) => {
|
|
556
|
-
const result = await api('POST', `/api/agent/tasks/${taskId}/abandon
|
|
560
|
+
}, async ({ taskId, summary }) => {
|
|
561
|
+
const result = await api('POST', `/api/agent/tasks/${taskId}/abandon`, summary ? { summary } : undefined);
|
|
557
562
|
return {
|
|
558
563
|
content: [{ type: 'text', text: `Abandoned ${result.id}: ${result.message}` }],
|
|
559
564
|
structuredContent: result,
|
|
@@ -872,6 +877,49 @@ server.registerTool('get_feedback', {
|
|
|
872
877
|
structuredContent: f,
|
|
873
878
|
};
|
|
874
879
|
});
|
|
880
|
+
// ==================== Issue Reporting ====================
|
|
881
|
+
// Tool: Report issue
|
|
882
|
+
server.registerTool('report_issue', {
|
|
883
|
+
title: 'Report Issue',
|
|
884
|
+
description: 'Report an error, bug, or feature request. Use when encountering issues with MCP tools or to suggest improvements.',
|
|
885
|
+
inputSchema: z.object({
|
|
886
|
+
category: z.enum(['error', 'feature_request', 'improvement']).describe('Type of report'),
|
|
887
|
+
title: z.string().describe('Brief summary of the issue'),
|
|
888
|
+
description: z.string().describe('Detailed description'),
|
|
889
|
+
context: z.object({
|
|
890
|
+
toolName: z.string().optional().describe('MCP tool that encountered the issue'),
|
|
891
|
+
errorMessage: z.string().optional().describe('Error message if applicable'),
|
|
892
|
+
taskId: z.string().optional().describe('Related task ID if applicable'),
|
|
893
|
+
}).optional(),
|
|
894
|
+
}),
|
|
895
|
+
outputSchema: z.object({
|
|
896
|
+
id: z.string(),
|
|
897
|
+
title: z.string(),
|
|
898
|
+
type: z.string(),
|
|
899
|
+
status: z.string(),
|
|
900
|
+
isDuplicate: z.boolean(),
|
|
901
|
+
existingIssueId: z.string().nullable(),
|
|
902
|
+
}),
|
|
903
|
+
annotations: {
|
|
904
|
+
readOnlyHint: false,
|
|
905
|
+
destructiveHint: false,
|
|
906
|
+
idempotentHint: false,
|
|
907
|
+
openWorldHint: false,
|
|
908
|
+
},
|
|
909
|
+
}, async ({ category, title, description, context }) => {
|
|
910
|
+
const result = await api('POST', '/api/agent/reports', { category, title, description, context });
|
|
911
|
+
const typeIcon = result.type === 'bug' ? 'š' : result.type === 'feature' ? 'āØ' : 'š”';
|
|
912
|
+
if (result.isDuplicate) {
|
|
913
|
+
return {
|
|
914
|
+
content: [{ type: 'text', text: `ā ļø Similar issue already reported: ${result.existingIssueId} ${typeIcon} "${result.title}"` }],
|
|
915
|
+
structuredContent: result,
|
|
916
|
+
};
|
|
917
|
+
}
|
|
918
|
+
return {
|
|
919
|
+
content: [{ type: 'text', text: `ā
Reported: ${result.id} ${typeIcon} "${result.title}" [${result.status}]` }],
|
|
920
|
+
structuredContent: result,
|
|
921
|
+
};
|
|
922
|
+
});
|
|
875
923
|
// ==================== Template Tools ====================
|
|
876
924
|
// Tool: List templates
|
|
877
925
|
server.registerTool('list_templates', {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@damper/mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "MCP server for Damper task management",
|
|
5
5
|
"author": "Damper <hello@usedamper.com>",
|
|
6
6
|
"repository": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@modelcontextprotocol/sdk": "^1.25.0",
|
|
28
|
-
"zod": "^3.
|
|
28
|
+
"zod": "^3.25.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^22.0.0",
|