@somosocta/tasker-mcp-server 1.0.1
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 +74 -0
- package/dist/api-client.d.ts +41 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +96 -0
- package/dist/api-client.js.map +1 -0
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +24 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +96 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/analytics.d.ts +15 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +262 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/backlog.d.ts +10 -0
- package/dist/tools/backlog.d.ts.map +1 -0
- package/dist/tools/backlog.js +165 -0
- package/dist/tools/backlog.js.map +1 -0
- package/dist/tools/clients.d.ts +9 -0
- package/dist/tools/clients.d.ts.map +1 -0
- package/dist/tools/clients.js +43 -0
- package/dist/tools/clients.js.map +1 -0
- package/dist/tools/epics.d.ts +10 -0
- package/dist/tools/epics.d.ts.map +1 -0
- package/dist/tools/epics.js +161 -0
- package/dist/tools/epics.js.map +1 -0
- package/dist/tools/planning.d.ts +11 -0
- package/dist/tools/planning.d.ts.map +1 -0
- package/dist/tools/planning.js +74 -0
- package/dist/tools/planning.js.map +1 -0
- package/dist/tools/projects.d.ts +10 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +87 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/sprints.d.ts +12 -0
- package/dist/tools/sprints.d.ts.map +1 -0
- package/dist/tools/sprints.js +196 -0
- package/dist/tools/sprints.js.map +1 -0
- package/dist/tools/stories.d.ts +10 -0
- package/dist/tools/stories.d.ts.map +1 -0
- package/dist/tools/stories.js +221 -0
- package/dist/tools/stories.js.map +1 -0
- package/dist/tools/tasks.d.ts +12 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +341 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/timesheets.d.ts +10 -0
- package/dist/tools/timesheets.d.ts.map +1 -0
- package/dist/tools/timesheets.js +140 -0
- package/dist/tools/timesheets.js.map +1 -0
- package/dist/tools/users.d.ts +9 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +45 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/types.d.ts +130 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools MCP para Sprints do Tasker.
|
|
3
|
+
* REQ-16.5: list_sprints — Lista sprints com filtros
|
|
4
|
+
* REQ-16.6: get_sprint — Detalhe de uma sprint com tarefas, burndown e métricas
|
|
5
|
+
* REQ-17.4: create_sprint — Cria uma nova sprint
|
|
6
|
+
* REQ-17.5: update_sprint — Atualiza uma sprint existente
|
|
7
|
+
*/
|
|
8
|
+
import type { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
9
|
+
import type { TaskerApiClient } from "../api-client.js";
|
|
10
|
+
export declare const tools: Tool[];
|
|
11
|
+
export declare function handleTool(name: string, args: Record<string, unknown>, client: TaskerApiClient): Promise<string>;
|
|
12
|
+
//# sourceMappingURL=sprints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprints.d.ts","sourceRoot":"","sources":["../../src/tools/sprints.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,eAAO,MAAM,KAAK,EAAE,IAAI,EAyHvB,CAAC;AAEF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAgEjB"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools MCP para Sprints do Tasker.
|
|
3
|
+
* REQ-16.5: list_sprints — Lista sprints com filtros
|
|
4
|
+
* REQ-16.6: get_sprint — Detalhe de uma sprint com tarefas, burndown e métricas
|
|
5
|
+
* REQ-17.4: create_sprint — Cria uma nova sprint
|
|
6
|
+
* REQ-17.5: update_sprint — Atualiza uma sprint existente
|
|
7
|
+
*/
|
|
8
|
+
export const tools = [
|
|
9
|
+
{
|
|
10
|
+
name: "list_sprints",
|
|
11
|
+
description: "Lista sprints do Tasker com filtros opcionais. " +
|
|
12
|
+
"Use para ver sprints de um projeto ou filtrar por situação. " +
|
|
13
|
+
"Retorna: id, titulo, projeto, data_inicio, data_fim, situacao, versao. " +
|
|
14
|
+
"Situações possíveis: Planejando, Iniciada, Fechada.",
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: "object",
|
|
17
|
+
properties: {
|
|
18
|
+
project_id: {
|
|
19
|
+
type: "number",
|
|
20
|
+
description: "Filtrar por ID do projeto",
|
|
21
|
+
},
|
|
22
|
+
situacao: {
|
|
23
|
+
type: "string",
|
|
24
|
+
enum: ["Planejando", "Iniciada", "Fechada"],
|
|
25
|
+
description: "Filtrar por situação da sprint",
|
|
26
|
+
},
|
|
27
|
+
page: {
|
|
28
|
+
type: "number",
|
|
29
|
+
description: "Número da página (default: 1)",
|
|
30
|
+
},
|
|
31
|
+
limit: {
|
|
32
|
+
type: "number",
|
|
33
|
+
description: "Itens por página (default: 50, max: 200)",
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: "get_sprint",
|
|
40
|
+
description: "Retorna detalhes completos de uma sprint específica, incluindo tarefas vinculadas, " +
|
|
41
|
+
"dados de burndown e métricas (horas previstas vs realizadas, tarefas planejadas vs concluídas). " +
|
|
42
|
+
"Use para analisar o progresso de uma sprint ou verificar seu status.",
|
|
43
|
+
inputSchema: {
|
|
44
|
+
type: "object",
|
|
45
|
+
properties: {
|
|
46
|
+
sprint_id: {
|
|
47
|
+
type: "number",
|
|
48
|
+
description: "ID da sprint",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
required: ["sprint_id"],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "create_sprint",
|
|
56
|
+
description: "Cria uma nova sprint no Tasker. Requer título, projeto, data de início e data de fim. " +
|
|
57
|
+
"Sprints são iterações de trabalho com duração fixa (geralmente 1-2 semanas). " +
|
|
58
|
+
"Após criar a sprint, use update_task para vincular tarefas a ela. " +
|
|
59
|
+
"Datas no formato YYYY-MM-DD. A sprint é criada com situação 'Planejando'.",
|
|
60
|
+
inputSchema: {
|
|
61
|
+
type: "object",
|
|
62
|
+
properties: {
|
|
63
|
+
titulo: {
|
|
64
|
+
type: "string",
|
|
65
|
+
description: "Título da sprint (obrigatório, ex: 'Sprint 15 - Login Social')",
|
|
66
|
+
},
|
|
67
|
+
projeto_id: {
|
|
68
|
+
type: "number",
|
|
69
|
+
description: "ID do projeto ao qual a sprint pertence (obrigatório)",
|
|
70
|
+
},
|
|
71
|
+
data_inicio: {
|
|
72
|
+
type: "string",
|
|
73
|
+
description: "Data de início da sprint no formato YYYY-MM-DD (obrigatório)",
|
|
74
|
+
},
|
|
75
|
+
data_fim: {
|
|
76
|
+
type: "string",
|
|
77
|
+
description: "Data de fim da sprint no formato YYYY-MM-DD (obrigatório)",
|
|
78
|
+
},
|
|
79
|
+
objetivo: {
|
|
80
|
+
type: "string",
|
|
81
|
+
description: "Objetivo da sprint (o que se espera entregar)",
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
required: ["titulo", "projeto_id", "data_inicio", "data_fim"],
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: "update_sprint",
|
|
89
|
+
description: "Atualiza uma sprint existente no Tasker. Informe o ID da sprint e os campos a alterar. " +
|
|
90
|
+
"Use para alterar título, datas, objetivo ou situação da sprint. " +
|
|
91
|
+
"Situações possíveis: Planejando, Iniciada, Fechada. " +
|
|
92
|
+
"Ao fechar uma sprint, tarefas não concluídas são desvinculadas automaticamente.",
|
|
93
|
+
inputSchema: {
|
|
94
|
+
type: "object",
|
|
95
|
+
properties: {
|
|
96
|
+
sprint_id: {
|
|
97
|
+
type: "number",
|
|
98
|
+
description: "ID da sprint a atualizar (obrigatório)",
|
|
99
|
+
},
|
|
100
|
+
titulo: {
|
|
101
|
+
type: "string",
|
|
102
|
+
description: "Novo título da sprint",
|
|
103
|
+
},
|
|
104
|
+
objetivo: {
|
|
105
|
+
type: "string",
|
|
106
|
+
description: "Novo objetivo da sprint",
|
|
107
|
+
},
|
|
108
|
+
data_inicio: {
|
|
109
|
+
type: "string",
|
|
110
|
+
description: "Nova data de início (formato YYYY-MM-DD)",
|
|
111
|
+
},
|
|
112
|
+
data_fim: {
|
|
113
|
+
type: "string",
|
|
114
|
+
description: "Nova data de fim (formato YYYY-MM-DD)",
|
|
115
|
+
},
|
|
116
|
+
situacao: {
|
|
117
|
+
type: "string",
|
|
118
|
+
enum: ["Planejando", "Iniciada", "Fechada"],
|
|
119
|
+
description: "Nova situação da sprint",
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
required: ["sprint_id"],
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
];
|
|
126
|
+
export async function handleTool(name, args, client) {
|
|
127
|
+
switch (name) {
|
|
128
|
+
case "list_sprints": {
|
|
129
|
+
const params = {};
|
|
130
|
+
if (args.project_id)
|
|
131
|
+
params.projeto_id = String(args.project_id);
|
|
132
|
+
if (args.situacao)
|
|
133
|
+
params.situacao = String(args.situacao);
|
|
134
|
+
if (args.page)
|
|
135
|
+
params.page = String(args.page);
|
|
136
|
+
if (args.limit)
|
|
137
|
+
params.limit = String(args.limit);
|
|
138
|
+
const data = await client.get("/sprints", params);
|
|
139
|
+
return JSON.stringify(data, null, 2);
|
|
140
|
+
}
|
|
141
|
+
case "get_sprint": {
|
|
142
|
+
const sprintId = args.sprint_id;
|
|
143
|
+
if (!sprintId) {
|
|
144
|
+
throw new Error("sprint_id é obrigatório");
|
|
145
|
+
}
|
|
146
|
+
const data = await client.get(`/sprints/${sprintId}`);
|
|
147
|
+
return JSON.stringify(data, null, 2);
|
|
148
|
+
}
|
|
149
|
+
case "create_sprint": {
|
|
150
|
+
const titulo = args.titulo;
|
|
151
|
+
const projetoId = args.projeto_id;
|
|
152
|
+
const dataInicio = args.data_inicio;
|
|
153
|
+
const dataFim = args.data_fim;
|
|
154
|
+
if (!titulo)
|
|
155
|
+
throw new Error("titulo é obrigatório");
|
|
156
|
+
if (!projetoId)
|
|
157
|
+
throw new Error("projeto_id é obrigatório");
|
|
158
|
+
if (!dataInicio)
|
|
159
|
+
throw new Error("data_inicio é obrigatório");
|
|
160
|
+
if (!dataFim)
|
|
161
|
+
throw new Error("data_fim é obrigatório");
|
|
162
|
+
const body = {
|
|
163
|
+
titulo,
|
|
164
|
+
projeto_id: projetoId,
|
|
165
|
+
data_inicio: dataInicio,
|
|
166
|
+
data_fim: dataFim,
|
|
167
|
+
};
|
|
168
|
+
if (args.objetivo)
|
|
169
|
+
body.objetivo = args.objetivo;
|
|
170
|
+
const data = await client.post("/sprints", body);
|
|
171
|
+
return JSON.stringify(data, null, 2);
|
|
172
|
+
}
|
|
173
|
+
case "update_sprint": {
|
|
174
|
+
const sprintId = args.sprint_id;
|
|
175
|
+
if (!sprintId) {
|
|
176
|
+
throw new Error("sprint_id é obrigatório");
|
|
177
|
+
}
|
|
178
|
+
const body = {};
|
|
179
|
+
if (args.titulo !== undefined)
|
|
180
|
+
body.titulo = args.titulo;
|
|
181
|
+
if (args.objetivo !== undefined)
|
|
182
|
+
body.objetivo = args.objetivo;
|
|
183
|
+
if (args.data_inicio !== undefined)
|
|
184
|
+
body.data_inicio = args.data_inicio;
|
|
185
|
+
if (args.data_fim !== undefined)
|
|
186
|
+
body.data_fim = args.data_fim;
|
|
187
|
+
if (args.situacao !== undefined)
|
|
188
|
+
body.situacao = args.situacao;
|
|
189
|
+
const data = await client.put(`/sprints/${sprintId}`, body);
|
|
190
|
+
return JSON.stringify(data, null, 2);
|
|
191
|
+
}
|
|
192
|
+
default:
|
|
193
|
+
throw new Error(`Tool não encontrada: ${name}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=sprints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprints.js","sourceRoot":"","sources":["../../src/tools/sprints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools MCP para Histórias de Usuário do Tasker.
|
|
3
|
+
* REQ-16.8: list_stories — Lista histórias de usuário com filtros
|
|
4
|
+
* REQ-17.7: create_story — Cria uma nova história de usuário
|
|
5
|
+
*/
|
|
6
|
+
import type { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
7
|
+
import type { TaskerApiClient } from "../api-client.js";
|
|
8
|
+
export declare const tools: Tool[];
|
|
9
|
+
export declare function handleTool(name: string, args: Record<string, unknown>, client: TaskerApiClient): Promise<string>;
|
|
10
|
+
//# sourceMappingURL=stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stories.d.ts","sourceRoot":"","sources":["../../src/tools/stories.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,eAAO,MAAM,KAAK,EAAE,IAAI,EAgJvB,CAAC;AAEF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CA0DjB"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools MCP para Histórias de Usuário do Tasker.
|
|
3
|
+
* REQ-16.8: list_stories — Lista histórias de usuário com filtros
|
|
4
|
+
* REQ-17.7: create_story — Cria uma nova história de usuário
|
|
5
|
+
*/
|
|
6
|
+
export const tools = [
|
|
7
|
+
{
|
|
8
|
+
name: "list_stories",
|
|
9
|
+
description: "Lista histórias de usuário (user stories) do Tasker com filtros opcionais. " +
|
|
10
|
+
"Histórias de usuário representam funcionalidades do ponto de vista do usuário, " +
|
|
11
|
+
"com estimativa de esforço e valor orçado para o cliente. " +
|
|
12
|
+
"Use para ver o backlog de um projeto ou épico. " +
|
|
13
|
+
"Retorna: id, titulo, estimativa, valor_orcado, situacao. " +
|
|
14
|
+
"Situações: Backlog, Para Fazer, Executando, Concluída.",
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: "object",
|
|
17
|
+
properties: {
|
|
18
|
+
project_id: {
|
|
19
|
+
type: "number",
|
|
20
|
+
description: "Filtrar por ID do projeto",
|
|
21
|
+
},
|
|
22
|
+
epic_id: {
|
|
23
|
+
type: "number",
|
|
24
|
+
description: "Filtrar por ID do épico",
|
|
25
|
+
},
|
|
26
|
+
situacao: {
|
|
27
|
+
type: "string",
|
|
28
|
+
enum: ["Backlog", "Para Fazer", "Executando", "Concluída"],
|
|
29
|
+
description: "Filtrar por situação da história",
|
|
30
|
+
},
|
|
31
|
+
page: {
|
|
32
|
+
type: "number",
|
|
33
|
+
description: "Número da página (default: 1)",
|
|
34
|
+
},
|
|
35
|
+
limit: {
|
|
36
|
+
type: "number",
|
|
37
|
+
description: "Itens por página (default: 50, max: 200)",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "create_story",
|
|
44
|
+
description: "Cria uma nova história de usuário (user story) no Tasker. " +
|
|
45
|
+
"Histórias representam funcionalidades do ponto de vista do usuário final. " +
|
|
46
|
+
"Requer título e projeto. Opcionalmente pode vincular a um épico, " +
|
|
47
|
+
"definir estimativa de horas, valor orçado e datas. " +
|
|
48
|
+
"A história é criada com situação 'Backlog' por padrão.",
|
|
49
|
+
inputSchema: {
|
|
50
|
+
type: "object",
|
|
51
|
+
properties: {
|
|
52
|
+
titulo: {
|
|
53
|
+
type: "string",
|
|
54
|
+
description: "Título da história (obrigatório, ex: 'Como usuário, quero fazer login com Google')",
|
|
55
|
+
},
|
|
56
|
+
projeto_id: {
|
|
57
|
+
type: "number",
|
|
58
|
+
description: "ID do projeto ao qual a história pertence (obrigatório)",
|
|
59
|
+
},
|
|
60
|
+
epico_id: {
|
|
61
|
+
type: "number",
|
|
62
|
+
description: "ID do épico ao qual a história pertence",
|
|
63
|
+
},
|
|
64
|
+
estimativa: {
|
|
65
|
+
type: "number",
|
|
66
|
+
description: "Estimativa de horas para implementação completa",
|
|
67
|
+
},
|
|
68
|
+
valor_orcado: {
|
|
69
|
+
type: "number",
|
|
70
|
+
description: "Valor orçado para o cliente em reais (ex: 5000 para R$ 5.000,00)",
|
|
71
|
+
},
|
|
72
|
+
descricao: {
|
|
73
|
+
type: "string",
|
|
74
|
+
description: "Descrição detalhada da história",
|
|
75
|
+
},
|
|
76
|
+
data_prev_inicio: {
|
|
77
|
+
type: "string",
|
|
78
|
+
description: "Data prevista de início (formato YYYY-MM-DD)",
|
|
79
|
+
},
|
|
80
|
+
data_inicio: {
|
|
81
|
+
type: "string",
|
|
82
|
+
description: "Data real de início (formato YYYY-MM-DD)",
|
|
83
|
+
},
|
|
84
|
+
data_conclusao: {
|
|
85
|
+
type: "string",
|
|
86
|
+
description: "Data de conclusão (formato YYYY-MM-DD)",
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
required: ["titulo", "projeto_id"],
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: "update_story",
|
|
94
|
+
description: "Atualiza uma história de usuário existente no Tasker. " +
|
|
95
|
+
"Informe o ID da história e os campos a alterar. " +
|
|
96
|
+
"Pode atualizar título, descrição, estimativa, valor orçado, situação, datas e épico.",
|
|
97
|
+
inputSchema: {
|
|
98
|
+
type: "object",
|
|
99
|
+
properties: {
|
|
100
|
+
story_id: {
|
|
101
|
+
type: "number",
|
|
102
|
+
description: "ID da história a atualizar (obrigatório)",
|
|
103
|
+
},
|
|
104
|
+
titulo: {
|
|
105
|
+
type: "string",
|
|
106
|
+
description: "Novo título da história",
|
|
107
|
+
},
|
|
108
|
+
descricao: {
|
|
109
|
+
type: "string",
|
|
110
|
+
description: "Nova descrição da história",
|
|
111
|
+
},
|
|
112
|
+
epico_id: {
|
|
113
|
+
type: "number",
|
|
114
|
+
description: "ID do novo épico",
|
|
115
|
+
},
|
|
116
|
+
estimativa: {
|
|
117
|
+
type: "number",
|
|
118
|
+
description: "Nova estimativa de horas",
|
|
119
|
+
},
|
|
120
|
+
valor_orcado: {
|
|
121
|
+
type: "number",
|
|
122
|
+
description: "Novo valor orçado para o cliente",
|
|
123
|
+
},
|
|
124
|
+
situacao: {
|
|
125
|
+
type: "string",
|
|
126
|
+
enum: ["Backlog", "Para Fazer", "Executando", "Concluída"],
|
|
127
|
+
description: "Nova situação da história",
|
|
128
|
+
},
|
|
129
|
+
data_prev_inicio: {
|
|
130
|
+
type: "string",
|
|
131
|
+
description: "Nova data prevista de início (formato YYYY-MM-DD)",
|
|
132
|
+
},
|
|
133
|
+
data_inicio: {
|
|
134
|
+
type: "string",
|
|
135
|
+
description: "Nova data real de início (formato YYYY-MM-DD)",
|
|
136
|
+
},
|
|
137
|
+
data_conclusao: {
|
|
138
|
+
type: "string",
|
|
139
|
+
description: "Nova data de conclusão (formato YYYY-MM-DD)",
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
required: ["story_id"],
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
];
|
|
146
|
+
export async function handleTool(name, args, client) {
|
|
147
|
+
switch (name) {
|
|
148
|
+
case "list_stories": {
|
|
149
|
+
const params = {};
|
|
150
|
+
if (args.project_id)
|
|
151
|
+
params.projeto_id = String(args.project_id);
|
|
152
|
+
if (args.epic_id)
|
|
153
|
+
params.epico_id = String(args.epic_id);
|
|
154
|
+
if (args.situacao)
|
|
155
|
+
params.situacao = String(args.situacao);
|
|
156
|
+
if (args.page)
|
|
157
|
+
params.page = String(args.page);
|
|
158
|
+
if (args.limit)
|
|
159
|
+
params.limit = String(args.limit);
|
|
160
|
+
const data = await client.get("/stories", params);
|
|
161
|
+
return JSON.stringify(data, null, 2);
|
|
162
|
+
}
|
|
163
|
+
case "create_story": {
|
|
164
|
+
const titulo = args.titulo;
|
|
165
|
+
const projetoId = args.projeto_id;
|
|
166
|
+
if (!titulo)
|
|
167
|
+
throw new Error("titulo é obrigatório");
|
|
168
|
+
if (!projetoId)
|
|
169
|
+
throw new Error("projeto_id é obrigatório");
|
|
170
|
+
const body = {
|
|
171
|
+
titulo,
|
|
172
|
+
projeto_id: projetoId,
|
|
173
|
+
};
|
|
174
|
+
if (args.epico_id)
|
|
175
|
+
body.epico_id = args.epico_id;
|
|
176
|
+
if (args.estimativa)
|
|
177
|
+
body.estimativa = args.estimativa;
|
|
178
|
+
if (args.valor_orcado)
|
|
179
|
+
body.valor_orcado = args.valor_orcado;
|
|
180
|
+
if (args.descricao)
|
|
181
|
+
body.descricao = args.descricao;
|
|
182
|
+
if (args.data_prev_inicio)
|
|
183
|
+
body.data_prev_inicio = args.data_prev_inicio;
|
|
184
|
+
if (args.data_inicio)
|
|
185
|
+
body.data_inicio = args.data_inicio;
|
|
186
|
+
if (args.data_conclusao)
|
|
187
|
+
body.data_conclusao = args.data_conclusao;
|
|
188
|
+
const data = await client.post("/stories", body);
|
|
189
|
+
return JSON.stringify(data, null, 2);
|
|
190
|
+
}
|
|
191
|
+
case "update_story": {
|
|
192
|
+
const storyId = args.story_id;
|
|
193
|
+
if (!storyId)
|
|
194
|
+
throw new Error("story_id é obrigatório");
|
|
195
|
+
const body = {};
|
|
196
|
+
if (args.titulo !== undefined)
|
|
197
|
+
body.titulo = args.titulo;
|
|
198
|
+
if (args.descricao !== undefined)
|
|
199
|
+
body.descricao = args.descricao;
|
|
200
|
+
if (args.epico_id !== undefined)
|
|
201
|
+
body.epico_id = args.epico_id;
|
|
202
|
+
if (args.estimativa !== undefined)
|
|
203
|
+
body.estimativa = args.estimativa;
|
|
204
|
+
if (args.valor_orcado !== undefined)
|
|
205
|
+
body.valor_orcado = args.valor_orcado;
|
|
206
|
+
if (args.situacao !== undefined)
|
|
207
|
+
body.situacao = args.situacao;
|
|
208
|
+
if (args.data_prev_inicio !== undefined)
|
|
209
|
+
body.data_prev_inicio = args.data_prev_inicio;
|
|
210
|
+
if (args.data_inicio !== undefined)
|
|
211
|
+
body.data_inicio = args.data_inicio;
|
|
212
|
+
if (args.data_conclusao !== undefined)
|
|
213
|
+
body.data_conclusao = args.data_conclusao;
|
|
214
|
+
const data = await client.put(`/stories/${storyId}`, body);
|
|
215
|
+
return JSON.stringify(data, null, 2);
|
|
216
|
+
}
|
|
217
|
+
default:
|
|
218
|
+
throw new Error(`Tool não encontrada: ${name}`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stories.js","sourceRoot":"","sources":["../../src/tools/stories.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,6EAA6E;YAC7E,iFAAiF;YACjF,2DAA2D;YAC3D,iDAAiD;YACjD,2DAA2D;YAC3D,wDAAwD;QAC1D,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACvC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC;oBAC1D,WAAW,EAAE,kCAAkC;iBAChD;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,4DAA4D;YAC5D,4EAA4E;YAC5E,mEAAmE;YACnE,qDAAqD;YACrD,wDAAwD;QAC1D,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,oFAAoF;iBACvF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yDAAyD;iBACvE;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yCAAyC;iBACvD;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,kEAAkE;iBACrE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8CAA8C;iBAC5D;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;SACnC;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,wDAAwD;YACxD,kDAAkD;YAClD,sFAAsF;QACxF,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACvC;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4BAA4B;iBAC1C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kBAAkB;iBAChC;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;iBACxC;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;iBAChD;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC;oBAC1D,WAAW,EAAE,2BAA2B;iBACzC;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mDAAmD;iBACjE;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6CAA6C;iBAC3D;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,IAA6B,EAC7B,MAAuB;IAEvB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,UAAU;gBAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,OAAO;gBAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YAElC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAE5D,MAAM,IAAI,GAA4B;gBACpC,MAAM;gBACN,UAAU,EAAE,SAAS;aACtB,CAAC;YACF,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjD,IAAI,IAAI,CAAC,UAAU;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACvD,IAAI,IAAI,CAAC,YAAY;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,IAAI,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACpD,IAAI,IAAI,CAAC,gBAAgB;gBAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACzE,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1D,IAAI,IAAI,CAAC,cAAc;gBAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAEnE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAExD,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAClE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/D,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACrE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3E,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/D,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;gBAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACvF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACxE,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;gBAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAEjF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools MCP para Tarefas do Tasker.
|
|
3
|
+
* REQ-16.3: list_tasks — Lista tarefas com filtros
|
|
4
|
+
* REQ-16.4: get_task — Detalhe de uma tarefa com subtarefas, horas e comentários
|
|
5
|
+
* REQ-17.1: create_task — Cria uma nova tarefa
|
|
6
|
+
* REQ-17.2: update_task — Atualiza uma tarefa existente
|
|
7
|
+
*/
|
|
8
|
+
import type { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
9
|
+
import type { TaskerApiClient } from "../api-client.js";
|
|
10
|
+
export declare const tools: Tool[];
|
|
11
|
+
export declare function handleTool(name: string, args: Record<string, unknown>, client: TaskerApiClient): Promise<string>;
|
|
12
|
+
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,eAAO,MAAM,KAAK,EAAE,IAAI,EA0OvB,CAAC;AAEF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAmFjB"}
|