@damper/mcp 0.1.12 → 0.1.13

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 CHANGED
@@ -71,7 +71,7 @@ The AI will see tools from both servers and can distinguish between them:
71
71
 
72
72
  | Tool | Description |
73
73
  |------|-------------|
74
- | `list_tasks` | Get roadmap tasks (filter by `status`, `type`, `quarter`) |
74
+ | `list_tasks` | Get roadmap tasks (filter by `status`, `type`, `quarter`, sort by `importance`/`newest`/`votes`) |
75
75
  | `get_task` | Task details + subtasks + linked feedback |
76
76
  | `create_task` | Create task with type (bug, feature, improvement, task) |
77
77
  | `update_task` | Update description, plan, priority, effort, quarter, labels |
@@ -96,6 +96,19 @@ Filter tasks by type to prioritize work:
96
96
 
97
97
  Types: `bug` 🐛, `feature` ✨, `improvement` 💡, `task` 📌
98
98
 
99
+ ### Sorting
100
+
101
+ Tasks are sorted by **weighted importance** by default (priority weight + vote score), so high-priority items surface first even without votes. Override with `sort`:
102
+
103
+ - `importance` (default) - priority weight (high=100, medium=50, low=10) + votes
104
+ - `newest` - most recently created first
105
+ - `votes` - highest vote score first
106
+
107
+ ```
108
+ > List tasks sorted by newest
109
+ > Show me the most voted features
110
+ ```
111
+
99
112
  ### Task Metadata
100
113
 
101
114
  Tasks include project management fields visible in `list_tasks` and `get_task`:
package/dist/index.js CHANGED
@@ -109,6 +109,7 @@ server.registerTool('list_tasks', {
109
109
  status: z.enum(['planned', 'in_progress', 'done', 'all']).optional(),
110
110
  type: z.enum(['bug', 'feature', 'improvement', 'task']).optional().describe('Filter by task type'),
111
111
  quarter: z.string().optional().describe('Filter by quarter (e.g., "Q1 2025") or "none" for unscheduled'),
112
+ sort: z.enum(['importance', 'newest', 'votes']).optional().describe('Sort order: importance (priority+votes, default), newest, or votes'),
112
113
  limit: z.number().optional(),
113
114
  }),
114
115
  outputSchema: z.object({
@@ -121,7 +122,7 @@ server.registerTool('list_tasks', {
121
122
  idempotentHint: true,
122
123
  openWorldHint: false,
123
124
  },
124
- }, async ({ status, type, quarter, limit }) => {
125
+ }, async ({ status, type, quarter, sort, limit }) => {
125
126
  const params = new URLSearchParams();
126
127
  if (status)
127
128
  params.set('status', status);
@@ -129,6 +130,8 @@ server.registerTool('list_tasks', {
129
130
  params.set('type', type);
130
131
  if (quarter)
131
132
  params.set('quarter', quarter);
133
+ if (sort)
134
+ params.set('sort', sort);
132
135
  if (limit)
133
136
  params.set('limit', String(limit));
134
137
  const query = params.toString();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@damper/mcp",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "MCP server for Damper task management",
5
5
  "author": "Damper <hello@usedamper.com>",
6
6
  "repository": {