@opentask/taskin-task-server-mcp 0.3.0 → 0.5.0

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
@@ -98,6 +98,8 @@ console.log('MCP server running');
98
98
  ## MCP Tools
99
99
 
100
100
  - `list_tasks` - List tasks as JSON, without the markdown body. Filters:
101
+ - `prioritize_tasks` - Give every task a priority number, once and on purpose
102
+ - `list_groups` - List the task groups, each with its id and name
101
103
  `status`, `type`, `assignee`, `open`, `closed`, `text`
102
104
  - `start_task` - Start working on a task
103
105
  - `finish_task` - Mark task as complete
@@ -105,6 +107,22 @@ console.log('MCP server running');
105
107
  `get_task`, `pause_task` and `lint_tasks` appeared in this list before they
106
108
  existed, and still do not.
107
109
 
110
+ ### Parity with the CLI
111
+
112
+ `start_task` and `finish_task` are the same operation as `taskin start` and
113
+ `taskin finish` — including the side effects the project's `automation.level`
114
+ asks for. When the level auto-commits status changes (`assisted`, `autopilot`,
115
+ or a `commits.taskStatusChanges` override), both doors write the same
116
+ `docs(TASKS): task-… - atualiza status para …` commit; under `manual`, neither
117
+ does. This used to differ: the MCP path changed the status and committed
118
+ nothing, so the project history depended on which door you used (task-066).
119
+
120
+ This package stays git-agnostic — it only calls an optional `onStatusChange`
121
+ hook after a status-changing tool succeeds. The CLI wires that hook (see
122
+ `createMcpStatusCommitHook`); a plain programmatic embed can wire its own or
123
+ none. `list_tasks` is read-only and never triggers the hook, matching `taskin
124
+ list`, which also commits nothing.
125
+
108
126
  ## MCP Resources
109
127
 
110
128
  - `task://{taskId}` - Get full task context
@@ -14,7 +14,12 @@ import { TaskMCPServer } from './task-server-mcp.js';
14
14
  * item de lista nesses arquivos tem que existir no `listTools()`.
15
15
  */
16
16
  const RAIZ = join(import.meta.dirname, '..', '..', '..');
17
- const DOCUMENTOS = ['docs/MCP_CLAUDE_SETUP.md', 'docs/MCP_VSCODE_SETUP.md', 'packages/task-server-mcp/README.md'];
17
+ const DOCUMENTOS = [
18
+ 'docs/MCP_CLAUDE_SETUP.md',
19
+ 'docs/MCP_VSCODE_SETUP.md',
20
+ 'packages/task-server-mcp/README.md',
21
+ 'packages/cli/README.md',
22
+ ];
18
23
  /**
19
24
  * Nomes citados como ferramenta, e nao em qualquer lugar do texto.
20
25
  *
@@ -29,7 +34,13 @@ function ferramentasAnunciadas(markdown) {
29
34
  for (const linha of markdown.split('\n')) {
30
35
  for (const padrao of padroes) {
31
36
  const nome = linha.match(padrao)?.[1];
32
- if (nome?.endsWith('_task') || nome?.endsWith('_tasks'))
37
+ /*
38
+ * Qualquer nome em posicao de anuncio conta. A versao anterior exigia
39
+ * sufixo `_task`/`_tasks`, uma convencao que valia quando as tres
40
+ * ferramentas eram sobre tarefas — e que calou quando `list_groups`
41
+ * chegou, deixando a guarda cega para ela.
42
+ */
43
+ if (nome)
33
44
  nomes.add(nome);
34
45
  }
35
46
  }
@@ -45,7 +56,7 @@ describe('ferramentas documentadas', () => {
45
56
  const inexistentes = anunciadas.filter((nome) => !implementadas.has(nome));
46
57
  expect(inexistentes).toEqual([]);
47
58
  });
48
- it('as tres ferramentas do servidor estao documentadas em algum lugar', () => {
59
+ it('todas as ferramentas do servidor estao documentadas em algum lugar', () => {
49
60
  const documentadas = new Set(DOCUMENTOS.flatMap((caminho) => [...ferramentasAnunciadas(readFileSync(join(RAIZ, caminho), 'utf-8'))]));
50
61
  const ausentes = [...implementadas].filter((nome) => !documentadas.has(nome));
51
62
  expect(ausentes).toEqual([]);
@@ -1 +1 @@
1
- {"version":3,"file":"documented-tools.test.js","sourceRoot":"","sources":["../src/documented-tools.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documented-tools.test.js","sourceRoot":"","sources":["../src/documented-tools.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEzD,MAAM,UAAU,GAAG;IACjB,0BAA0B;IAC1B,0BAA0B;IAC1B,oCAAoC;IACpC,wBAAwB;CACzB,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,0BAA0B,EAAE,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;IAE/F,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtC;;;;;eAKG;YACH,IAAI,IAAI;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC;QACjC,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,EAA6B;KAC/E,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7E,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,0CAA0C,EAAE,CAAC,OAAO,EAAE,EAAE;QAC1E,MAAM,UAAU,GAAG,CAAC,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1F,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3E,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CACxG,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,9 +1,16 @@
1
- import type { ITaskManager } from '@opentask/taskin-task-manager';
1
+ import { type ITaskManager } from '@opentask/taskin-task-manager';
2
2
  import type { ITaskMCPServer, MCPConnectionOptions, MCPPrompt, MCPPromptGetParams, MCPPromptGetResult, MCPResourceListResult, MCPResourceReadParams, MCPServerConfig, MCPTool, MCPToolCallParams, MCPToolCallResult } from './task-server-mcp.types.js';
3
3
  export declare class TaskMCPServer implements ITaskMCPServer {
4
4
  private server;
5
5
  private taskManager;
6
6
  private config;
7
+ /**
8
+ * Injected side effect for status-changing tools. Undefined when the host
9
+ * wires no automation (e.g. a plain programmatic embed), in which case
10
+ * `start_task`/`finish_task` change status and nothing else — the pre-hook
11
+ * behavior.
12
+ */
13
+ private onStatusChange?;
7
14
  constructor(config: MCPServerConfig);
8
15
  /**
9
16
  * Setup MCP request handlers
@@ -11,8 +18,12 @@ export declare class TaskMCPServer implements ITaskMCPServer {
11
18
  private setupHandlers;
12
19
  /**
13
20
  * Connect to MCP transport
21
+ *
22
+ * `MCPTransportType` tem um valor so, entao nao ha o que despachar. O ramo
23
+ * que existia aqui aceitava `'sse'` pelo tipo e recusava em tempo de
24
+ * execucao, ja com o provider inicializado.
14
25
  */
15
- connect(options: MCPConnectionOptions): Promise<void>;
26
+ connect(_options: MCPConnectionOptions): Promise<void>;
16
27
  /**
17
28
  * Get server information
18
29
  */
@@ -44,6 +55,16 @@ export declare class TaskMCPServer implements ITaskMCPServer {
44
55
  * Handle finish_task tool
45
56
  */
46
57
  private handleFinishTask;
58
+ /**
59
+ * Run the injected status-change hook, if any.
60
+ *
61
+ * Best-effort on purpose: the task's status was already persisted by the
62
+ * manager, so a hook that throws (a git problem, say) must not turn a
63
+ * successful `start_task`/`finish_task` into a failed tool call. The failure
64
+ * is logged and the tool still reports success — same posture the CLI takes,
65
+ * where a failed auto-commit only drops the "Auto-committed" line.
66
+ */
67
+ private notifyStatusChange;
47
68
  /**
48
69
  * List available prompts
49
70
  */
@@ -62,8 +83,20 @@ export declare class TaskMCPServer implements ITaskMCPServer {
62
83
  * houve duas filtragens discordando no repositorio.
63
84
  */
64
85
  private selecionarTarefas;
65
- /** Converte os argumentos crus da chamada MCP no criterio tipado. */
66
- private static criterioDe;
86
+ /**
87
+ * Numeracao inicial de prioridade.
88
+ *
89
+ * Delega a mesma funcao que a CLI usa (`numerarPrioridade`), para as duas
90
+ * superficies nao divergirem na regra.
91
+ */
92
+ /**
93
+ * Os grupos, quando o provider tem o conceito.
94
+ *
95
+ * Um provider sem grupos nao expoe o registro, e a ferramenta diz isso em vez
96
+ * de falhar — a ausencia e informacao, e nao erro.
97
+ */
98
+ private handleListGroups;
99
+ private handlePrioritizeTasks;
67
100
  private handleListTasks;
68
101
  /**
69
102
  * List available resources
@@ -1 +1 @@
1
- {"version":3,"file":"task-server-mcp.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AA4BpC,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,MAAM,CAA4B;gBAE9B,MAAM,EAAE,eAAe;IA4BnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAsErB;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D;;OAEG;IACH,aAAa;;;;;;;;;;IAab;;OAEG;IACH,SAAS,IAAI;QAAE,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE;IAoDjC;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,iBAAiB;IA2CxC;;OAEG;YACW,eAAe;IA0B7B;;OAEG;YACW,gBAAgB;IA0B9B;;OAEG;IACH,WAAW,IAAI;QAAE,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE;IAwCvC;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsFxE;;;;;;OAMG;YACW,iBAAiB;IAK/B,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,UAAU;YAWX,eAAe;IAS7B;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAarD;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,qBAAqB;;;;;;;IAsBhD;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACjC,OAAO,CAAC,aAAa,CAAC,CAUxB"}
1
+ {"version":3,"file":"task-server-mcp.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,YAAY,EAOlB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EAElB,MAAM,4BAA4B,CAAC;AA4BpC,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,MAAM,CAAoD;IAClE;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAAC,CAAuB;gBAElC,MAAM,EAAE,eAAe;IA6BnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAsErB;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;OAEG;IACH,aAAa;;;;;;;;;;IAab;;OAEG;IACH,SAAS,IAAI;QAAE,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE;IA6EjC;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,iBAAiB;IAiDxC;;OAEG;YACW,eAAe;IA2B7B;;OAEG;YACW,gBAAgB;IAyC9B;;;;;;;;OAQG;YACW,kBAAkB;IAUhC;;OAEG;IACH,WAAW,IAAI;QAAE,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE;IAwCvC;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsFxE;;;;;;OAMG;YACW,iBAAiB;IAS/B;;;;;OAKG;IACH;;;;;OAKG;YACW,gBAAgB;YAiBhB,qBAAqB;YASrB,eAAe;IAU7B;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAarD;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,qBAAqB;;;;;;;IAsBhD;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,YAAY,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACjC,OAAO,CAAC,aAAa,CAAC,CAUxB"}
@@ -1,7 +1,7 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { CallToolRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
- import { filterTasks, summarizeTask } from '@opentask/taskin-task-manager';
4
+ import { filterCriteriaJsonSchema, filterTasks, ordenarTarefas, parseFilterCriteria, summarizeTask, } from '@opentask/taskin-task-manager';
5
5
  import { TaskIdSchema } from '@opentask/taskin-types';
6
6
  /**
7
7
  * MCP Server for task management integration with LLMs
@@ -32,8 +32,16 @@ export class TaskMCPServer {
32
32
  server;
33
33
  taskManager;
34
34
  config;
35
+ /**
36
+ * Injected side effect for status-changing tools. Undefined when the host
37
+ * wires no automation (e.g. a plain programmatic embed), in which case
38
+ * `start_task`/`finish_task` change status and nothing else — the pre-hook
39
+ * behavior.
40
+ */
41
+ onStatusChange;
35
42
  constructor(config) {
36
43
  this.taskManager = config.taskManager;
44
+ this.onStatusChange = config.onStatusChange;
37
45
  this.config = {
38
46
  name: 'taskin-mcp-server',
39
47
  version: '1.0.0',
@@ -120,16 +128,14 @@ export class TaskMCPServer {
120
128
  }
121
129
  /**
122
130
  * Connect to MCP transport
131
+ *
132
+ * `MCPTransportType` tem um valor so, entao nao ha o que despachar. O ramo
133
+ * que existia aqui aceitava `'sse'` pelo tipo e recusava em tempo de
134
+ * execucao, ja com o provider inicializado.
123
135
  */
124
- async connect(options) {
125
- if (options.transport === 'stdio') {
126
- const transport = new StdioServerTransport();
127
- await this.server.connect(transport);
128
- this.log('MCP Server connected via stdio');
129
- }
130
- else {
131
- throw new Error(`Transport ${options.transport} not yet implemented`);
132
- }
136
+ async connect(_options) {
137
+ await this.server.connect(new StdioServerTransport());
138
+ this.log('MCP Server connected via stdio');
133
139
  }
134
140
  /**
135
141
  * Get server information
@@ -151,20 +157,43 @@ export class TaskMCPServer {
151
157
  */
152
158
  listTools() {
153
159
  const tools = [
160
+ {
161
+ name: 'list_groups',
162
+ description: 'List the task groups in this project, each with its id and name. The name lives in one place — a task only carries the group id — so renaming a group touches no task file.',
163
+ inputSchema: { type: 'object', properties: {} },
164
+ },
165
+ {
166
+ name: 'prioritize_tasks',
167
+ description: 'Give every task in the project a priority number, once and on purpose. Tasks that already carry one keep it; the gaps around them are filled. Running it again changes nothing. Use it on a project where only some tasks are prioritised — there, moving a task rewrites every file before it, and this ends that state.',
168
+ inputSchema: {
169
+ type: 'object',
170
+ properties: {
171
+ dryRun: { type: 'boolean', description: 'Report how many would be numbered, without writing' },
172
+ },
173
+ },
174
+ },
154
175
  {
155
176
  name: 'list_tasks',
156
177
  description: 'List the tasks in the project. Returns a JSON array with what identifies each task — id, title, status, type, assignee — without the markdown body. Fetch a task body by id after choosing one.',
178
+ /*
179
+ * O schema JSON dos criterios sai do schema unico em `task-manager`, o
180
+ * mesmo que valida a chamada e gera as flags da CLI — nao de uma lista
181
+ * escrita a mao aqui.
182
+ */
157
183
  inputSchema: {
158
- type: 'object',
184
+ ...filterCriteriaJsonSchema(),
159
185
  properties: {
160
- status: { type: 'string', description: 'Exact status (pending, in-progress, done, ...)' },
161
- type: { type: 'string', description: 'Exact type (feat, fix, chore, ...)' },
162
- assignee: { type: 'string', description: 'Assignee id or name, whole or in part' },
163
- open: { type: 'boolean', description: 'Only tasks still open' },
164
- closed: { type: 'boolean', description: 'Only tasks already closed' },
165
- text: { type: 'string', description: 'Free text over id, title, status and assignee' },
186
+ ...filterCriteriaJsonSchema().properties,
187
+ /*
188
+ * `sort` nao vem do schema de criterios de proposito: ordenar nao
189
+ * restringe nada. Fica ao lado, com o mesmo vocabulario do quadro
190
+ * de priorizacao do dashboard.
191
+ */
192
+ sort: {
193
+ type: 'string',
194
+ description: 'Order: manual (priority), diff-asc or diff-desc. Defaults to manual.',
195
+ },
166
196
  },
167
- required: [],
168
197
  },
169
198
  },
170
199
  {
@@ -205,6 +234,10 @@ export class TaskMCPServer {
205
234
  try {
206
235
  this.log(`Calling tool: ${params.name}`, params.arguments);
207
236
  switch (params.name) {
237
+ case 'list_groups':
238
+ return await this.handleListGroups();
239
+ case 'prioritize_tasks':
240
+ return await this.handlePrioritizeTasks(params.arguments ?? {});
208
241
  case 'list_tasks':
209
242
  return await this.handleListTasks(params.arguments ?? {});
210
243
  case 'start_task': {
@@ -245,6 +278,7 @@ export class TaskMCPServer {
245
278
  */
246
279
  async handleStartTask(taskId) {
247
280
  const task = await this.taskManager.startTask(taskId);
281
+ await this.notifyStatusChange(task.id, task.status);
248
282
  return {
249
283
  content: [
250
284
  {
@@ -267,7 +301,14 @@ export class TaskMCPServer {
267
301
  * Handle finish_task tool
268
302
  */
269
303
  async handleFinishTask(taskId) {
270
- const task = await this.taskManager.finishTask(taskId);
304
+ /*
305
+ * O relato dos criterios em aberto viaja junto: um agente que fecha uma
306
+ * tarefa precisa ver o que ficou para tras tanto quanto uma pessoa — foi
307
+ * justamente um agente que fechou quatro tarefas com o checklist inteiro em
308
+ * aberto.
309
+ */
310
+ const { task, blockers } = await this.taskManager.finishTaskComRelato(taskId);
311
+ await this.notifyStatusChange(task.id, task.status);
271
312
  return {
272
313
  content: [
273
314
  {
@@ -281,11 +322,38 @@ export class TaskMCPServer {
281
322
  status: task.status,
282
323
  type: task.type,
283
324
  },
325
+ /*
326
+ * O que ficou em aberto viaja na resposta, e nao so no texto: um
327
+ * agente precisa poder **reagir** a isso, e nao apenas ler.
328
+ */
329
+ openCriteria: blockers,
330
+ ...(blockers.length > 0 && {
331
+ hint: 'Tick these in the task file, or say why they were dropped: "— adiado: <reason>".',
332
+ }),
284
333
  }, null, 2),
285
334
  },
286
335
  ],
287
336
  };
288
337
  }
338
+ /**
339
+ * Run the injected status-change hook, if any.
340
+ *
341
+ * Best-effort on purpose: the task's status was already persisted by the
342
+ * manager, so a hook that throws (a git problem, say) must not turn a
343
+ * successful `start_task`/`finish_task` into a failed tool call. The failure
344
+ * is logged and the tool still reports success — same posture the CLI takes,
345
+ * where a failed auto-commit only drops the "Auto-committed" line.
346
+ */
347
+ async notifyStatusChange(taskId, status) {
348
+ if (!this.onStatusChange)
349
+ return;
350
+ try {
351
+ await this.onStatusChange({ taskId, status });
352
+ }
353
+ catch (error) {
354
+ this.log('onStatusChange hook failed:', error);
355
+ }
356
+ }
289
357
  /**
290
358
  * List available prompts
291
359
  */
@@ -418,23 +486,50 @@ Let me start by marking the task as done using the finish_task tool.`,
418
486
  * que a resposta aqui e a de `taskin list --json` nao possam divergir — ja
419
487
  * houve duas filtragens discordando no repositorio.
420
488
  */
421
- async selecionarTarefas(criteria) {
489
+ async selecionarTarefas(criteria, modo = 'manual') {
422
490
  const tasks = await this.taskManager.getAllTasks();
423
- return filterTasks(tasks, criteria).map(summarizeTask);
491
+ /*
492
+ * Ordenar antes de resumir: o resumo expoe `priority`, e a ordenacao
493
+ * trabalha com `order` — a traducao acontece depois, e nao no meio.
494
+ */
495
+ return ordenarTarefas(filterTasks(tasks, criteria), modo).map(summarizeTask);
424
496
  }
425
- /** Converte os argumentos crus da chamada MCP no criterio tipado. */
426
- static criterioDe(args) {
497
+ /**
498
+ * Numeracao inicial de prioridade.
499
+ *
500
+ * Delega a mesma funcao que a CLI usa (`numerarPrioridade`), para as duas
501
+ * superficies nao divergirem na regra.
502
+ */
503
+ /**
504
+ * Os grupos, quando o provider tem o conceito.
505
+ *
506
+ * Um provider sem grupos nao expoe o registro, e a ferramenta diz isso em vez
507
+ * de falhar — a ausencia e informacao, e nao erro.
508
+ */
509
+ async handleListGroups() {
510
+ const registro = this.taskManager.groupRegistry;
511
+ if (!registro) {
512
+ return {
513
+ content: [{ type: 'text', text: JSON.stringify({ supported: false, groups: [] }, null, 2) }],
514
+ isError: false,
515
+ };
516
+ }
517
+ const grupos = await registro.listGroups();
427
518
  return {
428
- ...(typeof args.status === 'string' && { status: args.status }),
429
- ...(typeof args.type === 'string' && { type: args.type }),
430
- ...(typeof args.assignee === 'string' && { assignee: args.assignee }),
431
- ...(args.open === true && { open: true }),
432
- ...(args.closed === true && { closed: true }),
433
- ...(typeof args.text === 'string' && { text: args.text }),
519
+ content: [{ type: 'text', text: JSON.stringify({ supported: true, groups: grupos }, null, 2) }],
520
+ isError: false,
521
+ };
522
+ }
523
+ async handlePrioritizeTasks(args) {
524
+ const resultado = await this.taskManager.prioritizeAll({ dryRun: args.dryRun === true });
525
+ return {
526
+ content: [{ type: 'text', text: JSON.stringify(resultado, null, 2) }],
527
+ isError: false,
434
528
  };
435
529
  }
436
530
  async handleListTasks(args) {
437
- const tarefas = await this.selecionarTarefas(TaskMCPServer.criterioDe(args));
531
+ const modo = args.sort === 'diff-asc' || args.sort === 'diff-desc' ? args.sort : 'manual';
532
+ const tarefas = await this.selecionarTarefas(parseFilterCriteria(args), modo);
438
533
  return {
439
534
  content: [{ type: 'text', text: JSON.stringify(tarefas, null, 2) }],
440
535
  isError: false,
@@ -1 +1 @@
1
- {"version":3,"file":"task-server-mcp.js","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-server-mcp.js","sourceRoot":"","sources":["../src/task-server-mcp.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,15 @@ export declare class MockMCPTaskManager implements ITaskManager {
23
23
  * servidor MCP passou a listar tarefas, entao acompanha a assinatura real.
24
24
  */
25
25
  getAllTasks(): Promise<Task[]>;
26
+ finishTaskComRelato(taskId: TaskId): Promise<{
27
+ task: Task;
28
+ blockers: [];
29
+ }>;
30
+ prioritizeAll(): Promise<{
31
+ total: number;
32
+ withoutPriority: number;
33
+ changed: number;
34
+ }>;
26
35
  /**
27
36
  * Get task by ID (for testing)
28
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"task-server-mcp.mock.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACnH,OAAO,EAAe,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,KAAK,CAAgC;;IAuBvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAajE,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAUjC;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAIpC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;CAG1C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAQ/F;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;wBACJ,MAAM;;;;;;yBAKL,MAAM;;;;;;CAI5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;4BACL,MAAM;;;;;;6BAKL,MAAM;;;;;;0BAKT,MAAM;;;;;;CAI7B,CAAC"}
1
+ {"version":3,"file":"task-server-mcp.mock.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACnH,OAAO,EAAe,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,KAAK,CAAgC;;IAuBvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAajE,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAUjC;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAI9B,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,EAAE,CAAA;KAAE,CAAC;IAI1E,aAAa,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3F;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;CAG1C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAQ/F;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;wBACJ,MAAM;;;;;;yBAKL,MAAM;;;;;;CAI5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;4BACL,MAAM;;;;;;6BAKL,MAAM;;;;;;0BAKT,MAAM;;;;;;CAI7B,CAAC"}
@@ -104,6 +104,12 @@ export class MockMCPTaskManager {
104
104
  async getAllTasks() {
105
105
  return Array.from(this.tasks.values());
106
106
  }
107
+ async finishTaskComRelato(taskId) {
108
+ return { task: await this.finishTask(taskId), blockers: [] };
109
+ }
110
+ async prioritizeAll() {
111
+ return { total: this.tasks.size, withoutPriority: 0, changed: 0 };
112
+ }
107
113
  /**
108
114
  * Get task by ID (for testing)
109
115
  */
@@ -1 +1 @@
1
- {"version":3,"file":"task-server-mcp.mock.js","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-server-mcp.mock.js","sourceRoot":"","sources":["../src/task-server-mcp.mock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAA0B,MAAM,wBAAwB,CAAC;AAG7E;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IACrB,KAAK,GAAsB,IAAI,GAAG,EAAE,CAAC;IAE7C;QACE,sBAAsB;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YACjC,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC;YACtB,KAAK,EAAE,+BAA+B;YACtC,WAAW,EAAE,8BAA8B;YAC3C,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YACjC,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC;YACtB,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,4CAA4C;YACzD,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,yBAAyB,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA0B;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,GAAS;YACjB,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO;YACL,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc;QACtC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAoC;IAC5E,OAAO;QACL,WAAW,EAAE,IAAI,kBAAkB,EAAE;QACrC,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,IAAI;QACX,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,EAAE,MAAM,EAAE;KACtB,CAAC;IAEF,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,EAAE,MAAM,EAAE;KACtB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,aAAa,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,qBAAqB;QAC3B,SAAS,EAAE,EAAE,MAAM,EAAE;KACtB,CAAC;IAEF,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,sBAAsB;QAC5B,SAAS,EAAE,EAAE,MAAM,EAAE;KACtB,CAAC;IAEF,WAAW,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,EAAE,MAAM,EAAE;KACtB,CAAC;CACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=task-server-mcp.on-status-change.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-server-mcp.on-status-change.test.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.on-status-change.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import { parseTaskId } from '@opentask/taskin-types';
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ import { TaskMCPServer } from './task-server-mcp.js';
4
+ import { createMockMCPServerConfig, mockToolCalls } from './task-server-mcp.mock.js';
5
+ describe('TaskMCPServer — onStatusChange hook', () => {
6
+ it('invokes the hook with the resulting status after start_task', async () => {
7
+ const changes = [];
8
+ const server = new TaskMCPServer(createMockMCPServerConfig({ onStatusChange: (change) => void changes.push(change) }));
9
+ await server.callTool(mockToolCalls.startTask('001'));
10
+ expect(changes).toEqual([{ taskId: parseTaskId('001'), status: 'in-progress' }]);
11
+ });
12
+ it('invokes the hook with the resulting status after finish_task', async () => {
13
+ const changes = [];
14
+ const server = new TaskMCPServer(createMockMCPServerConfig({ onStatusChange: (change) => void changes.push(change) }));
15
+ await server.callTool(mockToolCalls.finishTask('001'));
16
+ expect(changes).toEqual([{ taskId: parseTaskId('001'), status: 'done' }]);
17
+ });
18
+ it('does not invoke the hook for the read-only list_tasks', async () => {
19
+ const onStatusChange = vi.fn();
20
+ const server = new TaskMCPServer(createMockMCPServerConfig({ onStatusChange }));
21
+ await server.callTool({ name: 'list_tasks', arguments: {} });
22
+ expect(onStatusChange).not.toHaveBeenCalled();
23
+ });
24
+ it('does not invoke the hook when the status change fails', async () => {
25
+ const onStatusChange = vi.fn();
26
+ const server = new TaskMCPServer(createMockMCPServerConfig({ onStatusChange }));
27
+ // 002 is already in-progress in the mock, so start_task throws.
28
+ const result = await server.callTool(mockToolCalls.startTask('002'));
29
+ expect(result.isError).toBe(true);
30
+ expect(onStatusChange).not.toHaveBeenCalled();
31
+ });
32
+ it('still succeeds when no hook is wired (pre-hook behavior)', async () => {
33
+ const server = new TaskMCPServer(createMockMCPServerConfig());
34
+ const result = await server.callTool(mockToolCalls.startTask('001'));
35
+ expect(result.isError).toBeFalsy();
36
+ });
37
+ it('reports success even if the hook throws — the status already changed', async () => {
38
+ const server = new TaskMCPServer(createMockMCPServerConfig({
39
+ onStatusChange: () => {
40
+ throw new Error('git exploded');
41
+ },
42
+ }));
43
+ const result = await server.callTool(mockToolCalls.startTask('001'));
44
+ expect(result.isError).toBeFalsy();
45
+ });
46
+ });
47
+ //# sourceMappingURL=task-server-mcp.on-status-change.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-server-mcp.on-status-change.test.js","sourceRoot":"","sources":["../src/task-server-mcp.on-status-change.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,25 @@
1
1
  import type { ITaskManager } from '@opentask/taskin-task-manager';
2
+ import type { TaskId, TaskStatus } from '@opentask/taskin-types';
3
+ /**
4
+ * A task status transition the MCP server just performed, handed to the
5
+ * `onStatusChange` hook so the host can mirror whatever side effect the CLI
6
+ * does for the same operation (e.g. the auto-commit of the status change).
7
+ */
8
+ export interface TaskStatusChange {
9
+ taskId: TaskId;
10
+ status: TaskStatus;
11
+ }
12
+ /**
13
+ * Called after `start_task`/`finish_task` change a task's status.
14
+ *
15
+ * The MCP package speaks only to `ITaskManager` and must stay agnostic of git
16
+ * and of the project's automation config — so the effect that the CLI performs
17
+ * (committing the status change when `automation.level` asks for it) is injected
18
+ * here by whoever wires the server, not implemented in this package. Kept
19
+ * best-effort by the server: a failing hook is logged, never turned into a
20
+ * failed tool call, because the status change itself already succeeded.
21
+ */
22
+ export type TaskStatusChangeHook = (change: TaskStatusChange) => Promise<void> | void;
2
23
  /**
3
24
  * MCP Server configuration
4
25
  */
@@ -7,6 +28,13 @@ export interface MCPServerConfig {
7
28
  * TaskManager instance to expose via MCP
8
29
  */
9
30
  taskManager: ITaskManager;
31
+ /**
32
+ * Optional hook invoked after a status-changing tool (`start_task`,
33
+ * `finish_task`) succeeds. This is the seam that lets the MCP path honor the
34
+ * project's `automation.level` without this package depending on git: the CLI
35
+ * wires a hook that commits the status change exactly as `taskin start` does.
36
+ */
37
+ onStatusChange?: TaskStatusChangeHook;
10
38
  /**
11
39
  * Server name
12
40
  * @default 'taskin-mcp-server'
@@ -241,8 +269,16 @@ export interface ITaskMCPServer {
241
269
  }
242
270
  /**
243
271
  * MCP Transport type
272
+ *
273
+ * Um so, e de proposito. O tipo dizia `'stdio' | 'sse'`, a CLI anunciava as
274
+ * duas, e `connect` respondia `Transport sse not yet implemented` — depois de
275
+ * ja ter inicializado o provider. Opcao exposta sem implementacao e defeito,
276
+ * nao detalhe: o tipo volta a modelar o que existe.
277
+ *
278
+ * Quando houver um segundo transporte, ele entra aqui **junto** com a sua
279
+ * implementacao, e nao antes.
244
280
  */
245
- export type MCPTransportType = 'stdio' | 'sse';
281
+ export type MCPTransportType = 'stdio';
246
282
  /**
247
283
  * MCP Connection options
248
284
  */
@@ -1 +1 @@
1
- {"version":3,"file":"task-server-mcp.types.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-server-mcp.types.d.ts","sourceRoot":"","sources":["../src/task-server-mcp.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentask/taskin-task-server-mcp",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Model Context Protocol (MCP) server for task management integration with LLMs",
5
5
  "motivation": "Enable LLMs to interact with task management systems",
6
6
  "solve": "Provides MCP server implementation for task operations",
@@ -18,9 +18,9 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@modelcontextprotocol/sdk": "^1.30.0",
21
- "@opentask/taskin-file-system-provider": "3.2.4",
22
- "@opentask/taskin-task-manager": "3.1.0",
23
- "@opentask/taskin-types": "2.2.0"
21
+ "@opentask/taskin-task-manager": "3.2.0",
22
+ "@opentask/taskin-types": "2.3.0",
23
+ "@opentask/taskin-file-system-provider": "3.3.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "^24.10.1",