@damper/mcp 0.3.7 → 0.3.8

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 +13 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -216,7 +216,7 @@ server.registerTool('get_task', {
216
216
  // Tool: Update task
217
217
  server.registerTool('update_task', {
218
218
  title: 'Update Task',
219
- description: 'Update task fields like description, implementation plan, priority, effort, quarter, or labels. ' +
219
+ description: 'Update task fields like description, implementation plan, priority, effort, quarter, labels, or visibility. ' +
220
220
  'Useful for refining task details as you learn more about the work.',
221
221
  inputSchema: z.object({
222
222
  taskId: z.string().describe('Task ID'),
@@ -226,6 +226,7 @@ server.registerTool('update_task', {
226
226
  effort: z.enum(['xs', 's', 'm', 'l', 'xl']).nullable().optional().describe('Estimated effort'),
227
227
  quarter: z.string().nullable().optional().describe('Target quarter (e.g., "Q1 2025", "Q2 2025")'),
228
228
  labels: z.array(z.string()).optional().describe('Labels/tags'),
229
+ isPublic: z.boolean().optional().describe('Whether task is visible on public roadmap'),
229
230
  }),
230
231
  outputSchema: z.object({
231
232
  id: z.string(),
@@ -236,6 +237,7 @@ server.registerTool('update_task', {
236
237
  effort: z.string().nullable().optional(),
237
238
  quarter: z.string().nullable().optional(),
238
239
  labels: z.array(z.string()).optional(),
240
+ isPublic: z.boolean().optional(),
239
241
  }),
240
242
  annotations: {
241
243
  readOnlyHint: false,
@@ -243,7 +245,7 @@ server.registerTool('update_task', {
243
245
  idempotentHint: true,
244
246
  openWorldHint: false,
245
247
  },
246
- }, async ({ taskId, description, implementationPlan, priority, effort, quarter, labels }) => {
248
+ }, async ({ taskId, description, implementationPlan, priority, effort, quarter, labels, isPublic }) => {
247
249
  const body = {};
248
250
  if (description !== undefined)
249
251
  body.description = description;
@@ -257,6 +259,8 @@ server.registerTool('update_task', {
257
259
  body.quarter = quarter;
258
260
  if (labels !== undefined)
259
261
  body.labels = labels;
262
+ if (isPublic !== undefined)
263
+ body.isPublic = isPublic;
260
264
  const result = await api('PATCH', `/api/agent/tasks/${taskId}`, body);
261
265
  const updates = [];
262
266
  if (description !== undefined)
@@ -271,6 +275,8 @@ server.registerTool('update_task', {
271
275
  updates.push(`quarter=${quarter || 'none'}`);
272
276
  if (labels !== undefined)
273
277
  updates.push(`labels=[${labels.join(', ')}]`);
278
+ if (isPublic !== undefined)
279
+ updates.push(`isPublic=${isPublic}`);
274
280
  return {
275
281
  content: [{ type: 'text', text: `📝 Updated ${result.title}: ${updates.join(', ')}` }],
276
282
  structuredContent: {
@@ -282,6 +288,7 @@ server.registerTool('update_task', {
282
288
  effort: result.effort,
283
289
  quarter: result.quarter,
284
290
  labels: result.labels,
291
+ isPublic: result.isPublic,
285
292
  },
286
293
  };
287
294
  });
@@ -295,12 +302,14 @@ server.registerTool('create_task', {
295
302
  type: z.enum(['bug', 'feature', 'improvement', 'task']).optional().describe('Task type (default: feature)'),
296
303
  status: z.enum(['planned', 'in_progress']).optional(),
297
304
  implementationPlan: z.string().optional(),
305
+ isPublic: z.boolean().optional().describe('Whether task is visible on public roadmap (default: true)'),
298
306
  }),
299
307
  outputSchema: z.object({
300
308
  id: z.string(),
301
309
  title: z.string(),
302
310
  type: z.string(),
303
311
  status: z.string(),
312
+ isPublic: z.boolean().optional(),
304
313
  }),
305
314
  annotations: {
306
315
  readOnlyHint: false,
@@ -311,8 +320,9 @@ server.registerTool('create_task', {
311
320
  }, async (args) => {
312
321
  const result = await api('POST', '/api/agent/tasks', args);
313
322
  const typeIcon = result.type === 'bug' ? '🐛' : result.type === 'feature' ? '✨' : result.type === 'improvement' ? '💡' : '📌';
323
+ const visibilityIcon = result.isPublic ? '' : ' 🔒';
314
324
  return {
315
- content: [{ type: 'text', text: `Created: ${result.id} ${typeIcon} "${result.title}" [${result.status}]` }],
325
+ content: [{ type: 'text', text: `Created: ${result.id} ${typeIcon} "${result.title}" [${result.status}]${visibilityIcon}` }],
316
326
  structuredContent: result,
317
327
  };
318
328
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@damper/mcp",
3
- "version": "0.3.7",
3
+ "version": "0.3.8",
4
4
  "description": "MCP server for Damper task management",
5
5
  "author": "Damper <hello@usedamper.com>",
6
6
  "repository": {