@damper/mcp 0.3.18 → 0.3.19

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.
Files changed (2) hide show
  1. package/dist/index.js +49 -9
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -244,6 +244,7 @@ server.registerTool('update_task', {
244
244
  'Useful for refining task details as you learn more about the work.',
245
245
  inputSchema: z.object({
246
246
  taskId: z.string().describe('Task ID'),
247
+ title: z.string().optional().describe('Task title'),
247
248
  description: z.string().optional().describe('Task description'),
248
249
  implementationPlan: z.string().optional().describe('Implementation plan (markdown)'),
249
250
  priority: z.enum(['high', 'medium', 'low']).nullable().optional().describe('Task priority'),
@@ -269,8 +270,10 @@ server.registerTool('update_task', {
269
270
  idempotentHint: true,
270
271
  openWorldHint: false,
271
272
  },
272
- }, async ({ taskId, description, implementationPlan, priority, effort, quarter, labels, isPublic }) => {
273
+ }, async ({ taskId, title, description, implementationPlan, priority, effort, quarter, labels, isPublic }) => {
273
274
  const body = {};
275
+ if (title !== undefined)
276
+ body.title = title;
274
277
  if (description !== undefined)
275
278
  body.description = description;
276
279
  if (implementationPlan !== undefined)
@@ -287,6 +290,8 @@ server.registerTool('update_task', {
287
290
  body.isPublic = isPublic;
288
291
  const result = await api('PATCH', `/api/agent/tasks/${taskId}`, body);
289
292
  const updates = [];
293
+ if (title !== undefined)
294
+ updates.push(`title="${title}"`);
290
295
  if (description !== undefined)
291
296
  updates.push('description');
292
297
  if (implementationPlan !== undefined)
@@ -324,7 +329,8 @@ server.registerTool('create_task', {
324
329
  title: z.string(),
325
330
  description: z.string().optional(),
326
331
  type: z.enum(['bug', 'feature', 'improvement', 'task']).optional().describe('Task type (default: feature)'),
327
- status: z.enum(['planned', 'in_progress']).optional(),
332
+ status: z.enum(['planned', 'in_progress', 'done']).optional(),
333
+ priority: z.enum(['high', 'medium', 'low']).optional().describe('Task priority'),
328
334
  implementationPlan: z.string().optional(),
329
335
  isPublic: z.boolean().optional().describe('Whether task is visible on public roadmap (default: true)'),
330
336
  }),
@@ -1160,6 +1166,40 @@ server.registerTool('get_feedback', {
1160
1166
  structuredContent: f,
1161
1167
  };
1162
1168
  });
1169
+ // Tool: Update feedback
1170
+ server.registerTool('update_feedback', {
1171
+ title: 'Update Feedback',
1172
+ description: 'Update feedback status. Use to triage, close, or mark feedback as done.',
1173
+ inputSchema: z.object({
1174
+ feedbackId: z.string().describe('Feedback ID'),
1175
+ status: z
1176
+ .enum(['new', 'under_review', 'planned', 'in_progress', 'done', 'closed'])
1177
+ .describe('New status'),
1178
+ }),
1179
+ outputSchema: z.object({
1180
+ id: z.string(),
1181
+ title: z.string(),
1182
+ status: z.string(),
1183
+ type: z.string(),
1184
+ }),
1185
+ annotations: {
1186
+ readOnlyHint: false,
1187
+ destructiveHint: false,
1188
+ idempotentHint: true,
1189
+ openWorldHint: false,
1190
+ },
1191
+ }, async ({ feedbackId, status }) => {
1192
+ const result = await api('PATCH', `/api/agent/feedback/${feedbackId}`, { status });
1193
+ return {
1194
+ content: [
1195
+ {
1196
+ type: 'text',
1197
+ text: `Updated feedback "${result.title}" → ${result.status}`,
1198
+ },
1199
+ ],
1200
+ structuredContent: result,
1201
+ };
1202
+ });
1163
1203
  // ==================== Issue Reporting ====================
1164
1204
  // Tool: Report issue
1165
1205
  server.registerTool('report_issue', {
@@ -1658,16 +1698,16 @@ server.registerTool('update_changelog', {
1658
1698
  structuredContent: result,
1659
1699
  };
1660
1700
  });
1661
- // Tool: Add roadmap items to changelog
1701
+ // Tool: Add tasks to changelog
1662
1702
  server.registerTool('add_to_changelog', {
1663
1703
  title: 'Add to Changelog',
1664
- description: 'Add completed roadmap items to a changelog. Links the items and appends formatted entries to content.\n\n' +
1704
+ description: 'Add completed tasks to a changelog. Links the tasks and appends formatted entries to content.\n\n' +
1665
1705
  '**When to use:**\n' +
1666
- '- After completing multiple items that should be in one release\n' +
1667
- '- To manually add items to a draft changelog',
1706
+ '- After completing multiple tasks that should be in one release\n' +
1707
+ '- To manually add tasks to a draft changelog',
1668
1708
  inputSchema: z.object({
1669
1709
  changelogId: z.string().describe('Changelog ID'),
1670
- roadmapItemIds: z.array(z.string()).describe('Roadmap item IDs to add'),
1710
+ taskIds: z.array(z.string()).describe('Task IDs to add'),
1671
1711
  }),
1672
1712
  outputSchema: z.object({
1673
1713
  id: z.string(),
@@ -1684,8 +1724,8 @@ server.registerTool('add_to_changelog', {
1684
1724
  idempotentHint: true,
1685
1725
  openWorldHint: false,
1686
1726
  },
1687
- }, async ({ changelogId, roadmapItemIds }) => {
1688
- const result = await api('POST', `/api/agent/changelogs/${changelogId}/items`, { roadmapItemIds });
1727
+ }, async ({ changelogId, taskIds }) => {
1728
+ const result = await api('POST', `/api/agent/changelogs/${changelogId}/items`, { roadmapItemIds: taskIds });
1689
1729
  const addedTitles = result.addedItems.map((i) => i.title).join(', ');
1690
1730
  return {
1691
1731
  content: [{ type: 'text', text: `📋 Added ${result.addedItems.length} items to "${result.title}": ${addedTitles}` }],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@damper/mcp",
3
- "version": "0.3.18",
3
+ "version": "0.3.19",
4
4
  "description": "MCP server for Damper task management",
5
5
  "author": "Damper <hello@usedamper.com>",
6
6
  "repository": {