@doist/todoist-ai 4.4.0 → 4.5.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/dist/index.d.ts +160 -35
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -16
- package/dist/mcp-helpers.d.ts.map +1 -1
- package/dist/mcp-helpers.js +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +78 -17
- package/dist/tool-helpers.d.ts +4 -0
- package/dist/tool-helpers.d.ts.map +1 -1
- package/dist/tool-helpers.js +2 -0
- package/dist/tools/__tests__/add-projects.test.js +1 -1
- package/dist/tools/__tests__/add-sections.test.js +1 -1
- package/dist/tools/__tests__/add-tasks.test.js +52 -13
- package/dist/tools/__tests__/assignment-integration.test.d.ts +2 -0
- package/dist/tools/__tests__/assignment-integration.test.d.ts.map +1 -0
- package/dist/tools/__tests__/assignment-integration.test.js +415 -0
- package/dist/tools/__tests__/find-projects.test.js +1 -1
- package/dist/tools/__tests__/find-sections.test.js +1 -1
- package/dist/tools/__tests__/find-tasks-by-date.test.js +1 -1
- package/dist/tools/__tests__/find-tasks.test.js +3 -3
- package/dist/tools/__tests__/get-overview.test.js +1 -1
- package/dist/tools/__tests__/update-tasks.test.js +6 -6
- package/dist/tools/__tests__/user-info.test.js +1 -1
- package/dist/tools/add-comments.d.ts +3 -3
- package/dist/tools/add-comments.d.ts.map +1 -1
- package/dist/tools/add-comments.js +1 -1
- package/dist/tools/add-projects.d.ts.map +1 -1
- package/dist/tools/add-projects.js +1 -1
- package/dist/tools/add-sections.d.ts.map +1 -1
- package/dist/tools/add-sections.js +1 -1
- package/dist/tools/add-tasks.d.ts +13 -7
- package/dist/tools/add-tasks.d.ts.map +1 -1
- package/dist/tools/add-tasks.js +49 -3
- package/dist/tools/find-comments.d.ts +2 -2
- package/dist/tools/find-completed-tasks.d.ts +4 -2
- package/dist/tools/find-completed-tasks.d.ts.map +1 -1
- package/dist/tools/find-completed-tasks.js +2 -2
- package/dist/tools/find-project-collaborators.d.ts +64 -0
- package/dist/tools/find-project-collaborators.d.ts.map +1 -0
- package/dist/tools/find-project-collaborators.js +151 -0
- package/dist/tools/find-tasks-by-date.d.ts +2 -0
- package/dist/tools/find-tasks-by-date.d.ts.map +1 -1
- package/dist/tools/find-tasks-by-date.js +2 -2
- package/dist/tools/find-tasks.d.ts +7 -2
- package/dist/tools/find-tasks.d.ts.map +1 -1
- package/dist/tools/find-tasks.js +128 -33
- package/dist/tools/get-overview.d.ts +2 -2
- package/dist/tools/get-overview.d.ts.map +1 -1
- package/dist/tools/get-overview.js +1 -1
- package/dist/tools/manage-assignments.d.ts +52 -0
- package/dist/tools/manage-assignments.d.ts.map +1 -0
- package/dist/tools/manage-assignments.js +337 -0
- package/dist/tools/update-comments.d.ts.map +1 -1
- package/dist/tools/update-comments.js +1 -1
- package/dist/tools/update-sections.d.ts.map +1 -1
- package/dist/tools/update-sections.js +1 -1
- package/dist/tools/update-tasks.d.ts +13 -7
- package/dist/tools/update-tasks.d.ts.map +1 -1
- package/dist/tools/update-tasks.js +32 -9
- package/dist/utils/assignment-validator.d.ts +69 -0
- package/dist/utils/assignment-validator.d.ts.map +1 -0
- package/dist/utils/assignment-validator.js +253 -0
- package/dist/utils/duration-parser.d.ts +2 -2
- package/dist/utils/duration-parser.d.ts.map +1 -1
- package/dist/utils/priorities.d.ts +8 -0
- package/dist/utils/priorities.d.ts.map +1 -0
- package/dist/utils/priorities.js +15 -0
- package/dist/utils/response-builders.d.ts +2 -2
- package/dist/utils/response-builders.d.ts.map +1 -1
- package/dist/utils/response-builders.js +8 -1
- package/dist/utils/test-helpers.d.ts +2 -0
- package/dist/utils/test-helpers.d.ts.map +1 -1
- package/dist/utils/test-helpers.js +2 -0
- package/dist/utils/tool-names.d.ts +2 -0
- package/dist/utils/tool-names.d.ts.map +1 -1
- package/dist/utils/tool-names.js +3 -0
- package/dist/utils/user-resolver.d.ts +39 -0
- package/dist/utils/user-resolver.d.ts.map +1 -0
- package/dist/utils/user-resolver.js +179 -0
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { getMcpServer } from './mcp-server.js';
|
|
2
|
+
import { addComments } from './tools/add-comments.js';
|
|
3
|
+
import { addProjects } from './tools/add-projects.js';
|
|
4
|
+
import { addSections } from './tools/add-sections.js';
|
|
2
5
|
import { addTasks } from './tools/add-tasks.js';
|
|
3
6
|
import { completeTasks } from './tools/complete-tasks.js';
|
|
7
|
+
import { deleteObject } from './tools/delete-object.js';
|
|
8
|
+
import { findComments } from './tools/find-comments.js';
|
|
4
9
|
import { findCompletedTasks } from './tools/find-completed-tasks.js';
|
|
5
|
-
import {
|
|
6
|
-
import { findTasks } from './tools/find-tasks.js';
|
|
7
|
-
import { updateTasks } from './tools/update-tasks.js';
|
|
8
|
-
import { addProjects } from './tools/add-projects.js';
|
|
10
|
+
import { findProjectCollaborators } from './tools/find-project-collaborators.js';
|
|
9
11
|
import { findProjects } from './tools/find-projects.js';
|
|
10
|
-
import { updateProjects } from './tools/update-projects.js';
|
|
11
|
-
import { addSections } from './tools/add-sections.js';
|
|
12
12
|
import { findSections } from './tools/find-sections.js';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { findComments } from './tools/find-comments.js';
|
|
16
|
-
import { updateComments } from './tools/update-comments.js';
|
|
17
|
-
import { deleteObject } from './tools/delete-object.js';
|
|
13
|
+
import { findTasks } from './tools/find-tasks.js';
|
|
14
|
+
import { findTasksByDate } from './tools/find-tasks-by-date.js';
|
|
18
15
|
import { getOverview } from './tools/get-overview.js';
|
|
16
|
+
import { manageAssignments } from './tools/manage-assignments.js';
|
|
17
|
+
import { updateComments } from './tools/update-comments.js';
|
|
18
|
+
import { updateProjects } from './tools/update-projects.js';
|
|
19
|
+
import { updateSections } from './tools/update-sections.js';
|
|
20
|
+
import { updateTasks } from './tools/update-tasks.js';
|
|
19
21
|
import { userInfo } from './tools/user-info.js';
|
|
20
22
|
declare const tools: {
|
|
21
23
|
addTasks: {
|
|
@@ -25,42 +27,46 @@ declare const tools: {
|
|
|
25
27
|
tasks: import("zod").ZodArray<import("zod").ZodObject<{
|
|
26
28
|
content: import("zod").ZodString;
|
|
27
29
|
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
28
|
-
priority: import("zod").ZodOptional<import("zod").
|
|
30
|
+
priority: import("zod").ZodOptional<import("zod").ZodEnum<["p1", "p2", "p3", "p4"]>>;
|
|
29
31
|
dueString: import("zod").ZodOptional<import("zod").ZodString>;
|
|
30
32
|
duration: import("zod").ZodOptional<import("zod").ZodString>;
|
|
31
33
|
projectId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
32
34
|
sectionId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
33
35
|
parentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
36
|
+
responsibleUser: import("zod").ZodOptional<import("zod").ZodString>;
|
|
34
37
|
}, "strip", import("zod").ZodTypeAny, {
|
|
35
38
|
content: string;
|
|
36
39
|
description?: string | undefined;
|
|
37
|
-
parentId?: string | undefined;
|
|
38
40
|
projectId?: string | undefined;
|
|
41
|
+
parentId?: string | undefined;
|
|
39
42
|
sectionId?: string | undefined;
|
|
40
43
|
duration?: string | undefined;
|
|
41
|
-
priority?:
|
|
44
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
42
45
|
dueString?: string | undefined;
|
|
46
|
+
responsibleUser?: string | undefined;
|
|
43
47
|
}, {
|
|
44
48
|
content: string;
|
|
45
49
|
description?: string | undefined;
|
|
46
|
-
parentId?: string | undefined;
|
|
47
50
|
projectId?: string | undefined;
|
|
51
|
+
parentId?: string | undefined;
|
|
48
52
|
sectionId?: string | undefined;
|
|
49
53
|
duration?: string | undefined;
|
|
50
|
-
priority?:
|
|
54
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
51
55
|
dueString?: string | undefined;
|
|
56
|
+
responsibleUser?: string | undefined;
|
|
52
57
|
}>, "many">;
|
|
53
58
|
};
|
|
54
59
|
execute({ tasks }: {
|
|
55
60
|
tasks: {
|
|
56
61
|
content: string;
|
|
57
62
|
description?: string | undefined;
|
|
58
|
-
parentId?: string | undefined;
|
|
59
63
|
projectId?: string | undefined;
|
|
64
|
+
parentId?: string | undefined;
|
|
60
65
|
sectionId?: string | undefined;
|
|
61
66
|
duration?: string | undefined;
|
|
62
|
-
priority?:
|
|
67
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
63
68
|
dueString?: string | undefined;
|
|
69
|
+
responsibleUser?: string | undefined;
|
|
64
70
|
}[];
|
|
65
71
|
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
66
72
|
content: {
|
|
@@ -80,6 +86,8 @@ declare const tools: {
|
|
|
80
86
|
parentId: string | null;
|
|
81
87
|
labels: string[];
|
|
82
88
|
duration: string | null;
|
|
89
|
+
responsibleUid: string | null;
|
|
90
|
+
assignedByUid: string | null;
|
|
83
91
|
}[];
|
|
84
92
|
totalCount: number;
|
|
85
93
|
};
|
|
@@ -145,30 +153,33 @@ declare const tools: {
|
|
|
145
153
|
sectionId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
146
154
|
parentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
147
155
|
order: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
148
|
-
priority: import("zod").ZodOptional<import("zod").
|
|
156
|
+
priority: import("zod").ZodOptional<import("zod").ZodEnum<["p1", "p2", "p3", "p4"]>>;
|
|
149
157
|
dueString: import("zod").ZodOptional<import("zod").ZodString>;
|
|
150
158
|
duration: import("zod").ZodOptional<import("zod").ZodString>;
|
|
159
|
+
responsibleUser: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
151
160
|
}, "strip", import("zod").ZodTypeAny, {
|
|
152
161
|
id: string;
|
|
153
162
|
content?: string | undefined;
|
|
154
163
|
description?: string | undefined;
|
|
155
|
-
parentId?: string | undefined;
|
|
156
164
|
projectId?: string | undefined;
|
|
165
|
+
parentId?: string | undefined;
|
|
157
166
|
sectionId?: string | undefined;
|
|
158
167
|
duration?: string | undefined;
|
|
159
|
-
priority?:
|
|
168
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
160
169
|
dueString?: string | undefined;
|
|
170
|
+
responsibleUser?: string | null | undefined;
|
|
161
171
|
order?: number | undefined;
|
|
162
172
|
}, {
|
|
163
173
|
id: string;
|
|
164
174
|
content?: string | undefined;
|
|
165
175
|
description?: string | undefined;
|
|
166
|
-
parentId?: string | undefined;
|
|
167
176
|
projectId?: string | undefined;
|
|
177
|
+
parentId?: string | undefined;
|
|
168
178
|
sectionId?: string | undefined;
|
|
169
179
|
duration?: string | undefined;
|
|
170
|
-
priority?:
|
|
180
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
171
181
|
dueString?: string | undefined;
|
|
182
|
+
responsibleUser?: string | null | undefined;
|
|
172
183
|
order?: number | undefined;
|
|
173
184
|
}>, "many">;
|
|
174
185
|
};
|
|
@@ -177,12 +188,13 @@ declare const tools: {
|
|
|
177
188
|
id: string;
|
|
178
189
|
content?: string | undefined;
|
|
179
190
|
description?: string | undefined;
|
|
180
|
-
parentId?: string | undefined;
|
|
181
191
|
projectId?: string | undefined;
|
|
192
|
+
parentId?: string | undefined;
|
|
182
193
|
sectionId?: string | undefined;
|
|
183
194
|
duration?: string | undefined;
|
|
184
|
-
priority?:
|
|
195
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
185
196
|
dueString?: string | undefined;
|
|
197
|
+
responsibleUser?: string | null | undefined;
|
|
186
198
|
order?: number | undefined;
|
|
187
199
|
}[];
|
|
188
200
|
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
@@ -203,6 +215,8 @@ declare const tools: {
|
|
|
203
215
|
parentId: string | null;
|
|
204
216
|
labels: string[];
|
|
205
217
|
duration: string | null;
|
|
218
|
+
responsibleUid: string | null;
|
|
219
|
+
assignedByUid: string | null;
|
|
206
220
|
}[];
|
|
207
221
|
totalCount: number;
|
|
208
222
|
updatedTaskIds: string[];
|
|
@@ -234,16 +248,18 @@ declare const tools: {
|
|
|
234
248
|
projectId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
235
249
|
sectionId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
236
250
|
parentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
251
|
+
responsibleUser: import("zod").ZodOptional<import("zod").ZodString>;
|
|
237
252
|
limit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
238
253
|
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
239
254
|
};
|
|
240
255
|
execute(args: {
|
|
241
256
|
limit: number;
|
|
242
|
-
parentId?: string | undefined;
|
|
243
257
|
projectId?: string | undefined;
|
|
258
|
+
parentId?: string | undefined;
|
|
244
259
|
sectionId?: string | undefined;
|
|
245
260
|
labels?: string[] | undefined;
|
|
246
261
|
cursor?: string | undefined;
|
|
262
|
+
responsibleUser?: string | undefined;
|
|
247
263
|
labelsOperator?: "and" | "or" | undefined;
|
|
248
264
|
searchText?: string | undefined;
|
|
249
265
|
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
@@ -264,17 +280,20 @@ declare const tools: {
|
|
|
264
280
|
parentId: string | null;
|
|
265
281
|
labels: string[];
|
|
266
282
|
duration: string | null;
|
|
283
|
+
responsibleUid: string | null;
|
|
284
|
+
assignedByUid: string | null;
|
|
267
285
|
}[];
|
|
268
286
|
nextCursor: string | null;
|
|
269
287
|
totalCount: number;
|
|
270
288
|
hasMore: boolean;
|
|
271
289
|
appliedFilters: {
|
|
272
290
|
limit: number;
|
|
273
|
-
parentId?: string | undefined;
|
|
274
291
|
projectId?: string | undefined;
|
|
292
|
+
parentId?: string | undefined;
|
|
275
293
|
sectionId?: string | undefined;
|
|
276
294
|
labels?: string[] | undefined;
|
|
277
295
|
cursor?: string | undefined;
|
|
296
|
+
responsibleUser?: string | undefined;
|
|
278
297
|
labelsOperator?: "and" | "or" | undefined;
|
|
279
298
|
searchText?: string | undefined;
|
|
280
299
|
};
|
|
@@ -328,6 +347,8 @@ declare const tools: {
|
|
|
328
347
|
parentId: string | null;
|
|
329
348
|
labels: string[];
|
|
330
349
|
duration: string | null;
|
|
350
|
+
responsibleUid: string | null;
|
|
351
|
+
assignedByUid: string | null;
|
|
331
352
|
}[];
|
|
332
353
|
nextCursor: string | null;
|
|
333
354
|
totalCount: number;
|
|
@@ -375,9 +396,9 @@ declare const tools: {
|
|
|
375
396
|
getBy: "due" | "completion";
|
|
376
397
|
since: string;
|
|
377
398
|
until: string;
|
|
399
|
+
projectId?: string | undefined;
|
|
378
400
|
parentId?: string | undefined;
|
|
379
401
|
workspaceId?: string | undefined;
|
|
380
|
-
projectId?: string | undefined;
|
|
381
402
|
sectionId?: string | undefined;
|
|
382
403
|
labels?: string[] | undefined;
|
|
383
404
|
cursor?: string | undefined;
|
|
@@ -400,6 +421,8 @@ declare const tools: {
|
|
|
400
421
|
parentId: string | null;
|
|
401
422
|
labels: string[];
|
|
402
423
|
duration: string | null;
|
|
424
|
+
responsibleUid: string | null;
|
|
425
|
+
assignedByUid: string | null;
|
|
403
426
|
}[];
|
|
404
427
|
nextCursor: string | null;
|
|
405
428
|
totalCount: number;
|
|
@@ -409,9 +432,9 @@ declare const tools: {
|
|
|
409
432
|
getBy: "due" | "completion";
|
|
410
433
|
since: string;
|
|
411
434
|
until: string;
|
|
435
|
+
projectId?: string | undefined;
|
|
412
436
|
parentId?: string | undefined;
|
|
413
437
|
workspaceId?: string | undefined;
|
|
414
|
-
projectId?: string | undefined;
|
|
415
438
|
sectionId?: string | undefined;
|
|
416
439
|
labels?: string[] | undefined;
|
|
417
440
|
cursor?: string | undefined;
|
|
@@ -832,19 +855,19 @@ declare const tools: {
|
|
|
832
855
|
content: import("zod").ZodString;
|
|
833
856
|
}, "strip", import("zod").ZodTypeAny, {
|
|
834
857
|
content: string;
|
|
835
|
-
projectId?: string | undefined;
|
|
836
858
|
taskId?: string | undefined;
|
|
859
|
+
projectId?: string | undefined;
|
|
837
860
|
}, {
|
|
838
861
|
content: string;
|
|
839
|
-
projectId?: string | undefined;
|
|
840
862
|
taskId?: string | undefined;
|
|
863
|
+
projectId?: string | undefined;
|
|
841
864
|
}>, "many">;
|
|
842
865
|
};
|
|
843
866
|
execute(args: {
|
|
844
867
|
comments: {
|
|
845
868
|
content: string;
|
|
846
|
-
projectId?: string | undefined;
|
|
847
869
|
taskId?: string | undefined;
|
|
870
|
+
projectId?: string | undefined;
|
|
848
871
|
}[];
|
|
849
872
|
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
850
873
|
content: {
|
|
@@ -974,10 +997,10 @@ declare const tools: {
|
|
|
974
997
|
limit: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
975
998
|
};
|
|
976
999
|
execute(args: {
|
|
977
|
-
projectId?: string | undefined;
|
|
978
1000
|
limit?: number | undefined;
|
|
979
|
-
cursor?: string | undefined;
|
|
980
1001
|
taskId?: string | undefined;
|
|
1002
|
+
projectId?: string | undefined;
|
|
1003
|
+
cursor?: string | undefined;
|
|
981
1004
|
commentId?: string | undefined;
|
|
982
1005
|
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
983
1006
|
content: {
|
|
@@ -1114,7 +1137,109 @@ declare const tools: {
|
|
|
1114
1137
|
structuredContent?: undefined;
|
|
1115
1138
|
}>;
|
|
1116
1139
|
};
|
|
1140
|
+
findProjectCollaborators: {
|
|
1141
|
+
name: "find-project-collaborators";
|
|
1142
|
+
description: string;
|
|
1143
|
+
parameters: {
|
|
1144
|
+
projectId: import("zod").ZodString;
|
|
1145
|
+
searchTerm: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1146
|
+
};
|
|
1147
|
+
execute(args: {
|
|
1148
|
+
projectId: string;
|
|
1149
|
+
searchTerm?: string | undefined;
|
|
1150
|
+
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
1151
|
+
content: {
|
|
1152
|
+
type: "text";
|
|
1153
|
+
text: string;
|
|
1154
|
+
}[];
|
|
1155
|
+
structuredContent: {
|
|
1156
|
+
collaborators: never[];
|
|
1157
|
+
projectInfo: {
|
|
1158
|
+
id: string;
|
|
1159
|
+
name: string;
|
|
1160
|
+
isShared: boolean;
|
|
1161
|
+
};
|
|
1162
|
+
totalCount: number;
|
|
1163
|
+
appliedFilters: {
|
|
1164
|
+
projectId: string;
|
|
1165
|
+
searchTerm?: string | undefined;
|
|
1166
|
+
};
|
|
1167
|
+
};
|
|
1168
|
+
} | {
|
|
1169
|
+
content: ({
|
|
1170
|
+
type: "text";
|
|
1171
|
+
text: string;
|
|
1172
|
+
mimeType?: undefined;
|
|
1173
|
+
} | {
|
|
1174
|
+
type: "text";
|
|
1175
|
+
mimeType: string;
|
|
1176
|
+
text: string;
|
|
1177
|
+
})[];
|
|
1178
|
+
structuredContent?: undefined;
|
|
1179
|
+
} | {
|
|
1180
|
+
content: {
|
|
1181
|
+
type: "text";
|
|
1182
|
+
text: string;
|
|
1183
|
+
}[];
|
|
1184
|
+
structuredContent: {
|
|
1185
|
+
collaborators: import("./utils/user-resolver.js").ProjectCollaborator[];
|
|
1186
|
+
projectInfo: {
|
|
1187
|
+
id: string;
|
|
1188
|
+
name: string;
|
|
1189
|
+
isShared: boolean;
|
|
1190
|
+
};
|
|
1191
|
+
totalCount: number;
|
|
1192
|
+
totalAvailable: number;
|
|
1193
|
+
appliedFilters: {
|
|
1194
|
+
projectId: string;
|
|
1195
|
+
searchTerm?: string | undefined;
|
|
1196
|
+
};
|
|
1197
|
+
};
|
|
1198
|
+
}>;
|
|
1199
|
+
};
|
|
1200
|
+
manageAssignments: {
|
|
1201
|
+
name: "manage-assignments";
|
|
1202
|
+
description: string;
|
|
1203
|
+
parameters: {
|
|
1204
|
+
operation: import("zod").ZodEnum<["assign", "unassign", "reassign"]>;
|
|
1205
|
+
taskIds: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
1206
|
+
responsibleUser: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1207
|
+
fromAssigneeUser: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1208
|
+
dryRun: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
|
|
1209
|
+
};
|
|
1210
|
+
execute(args: {
|
|
1211
|
+
operation: "assign" | "unassign" | "reassign";
|
|
1212
|
+
taskIds: string[];
|
|
1213
|
+
dryRun: boolean;
|
|
1214
|
+
responsibleUser?: string | undefined;
|
|
1215
|
+
fromAssigneeUser?: string | undefined;
|
|
1216
|
+
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
1217
|
+
content: {
|
|
1218
|
+
type: "text";
|
|
1219
|
+
text: string;
|
|
1220
|
+
}[];
|
|
1221
|
+
structuredContent: {
|
|
1222
|
+
operation: "assign" | "unassign" | "reassign";
|
|
1223
|
+
results: import("./tools/manage-assignments.js").OperationResult[];
|
|
1224
|
+
totalRequested: number;
|
|
1225
|
+
successful: number;
|
|
1226
|
+
failed: number;
|
|
1227
|
+
dryRun: boolean;
|
|
1228
|
+
};
|
|
1229
|
+
} | {
|
|
1230
|
+
content: ({
|
|
1231
|
+
type: "text";
|
|
1232
|
+
text: string;
|
|
1233
|
+
mimeType?: undefined;
|
|
1234
|
+
} | {
|
|
1235
|
+
type: "text";
|
|
1236
|
+
mimeType: string;
|
|
1237
|
+
text: string;
|
|
1238
|
+
})[];
|
|
1239
|
+
structuredContent?: undefined;
|
|
1240
|
+
}>;
|
|
1241
|
+
};
|
|
1117
1242
|
};
|
|
1118
1243
|
export { tools, getMcpServer };
|
|
1119
|
-
export { addTasks, completeTasks, updateTasks, findTasks, findTasksByDate, findCompletedTasks, addProjects, updateProjects, findProjects, addSections, updateSections, findSections, addComments, updateComments, findComments, getOverview, deleteObject, userInfo, };
|
|
1244
|
+
export { addTasks, completeTasks, updateTasks, findTasks, findTasksByDate, findCompletedTasks, addProjects, updateProjects, findProjects, addSections, updateSections, findSections, addComments, updateComments, findComments, getOverview, deleteObject, userInfo, findProjectCollaborators, manageAssignments, };
|
|
1120
1245
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
import { getMcpServer } from './mcp-server.js';
|
|
2
|
-
//
|
|
3
|
-
import {
|
|
4
|
-
import { completeTasks } from './tools/complete-tasks.js';
|
|
5
|
-
import { findCompletedTasks } from './tools/find-completed-tasks.js';
|
|
6
|
-
import { findTasksByDate } from './tools/find-tasks-by-date.js';
|
|
7
|
-
import { findTasks } from './tools/find-tasks.js';
|
|
8
|
-
import { updateTasks } from './tools/update-tasks.js';
|
|
2
|
+
// Comment management tools
|
|
3
|
+
import { addComments } from './tools/add-comments.js';
|
|
9
4
|
// Project management tools
|
|
10
5
|
import { addProjects } from './tools/add-projects.js';
|
|
11
|
-
import { findProjects } from './tools/find-projects.js';
|
|
12
|
-
import { updateProjects } from './tools/update-projects.js';
|
|
13
6
|
// Section management tools
|
|
14
7
|
import { addSections } from './tools/add-sections.js';
|
|
15
|
-
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
import { addComments } from './tools/add-comments.js';
|
|
19
|
-
import { findComments } from './tools/find-comments.js';
|
|
20
|
-
import { updateComments } from './tools/update-comments.js';
|
|
8
|
+
// Task management tools
|
|
9
|
+
import { addTasks } from './tools/add-tasks.js';
|
|
10
|
+
import { completeTasks } from './tools/complete-tasks.js';
|
|
21
11
|
// General tools
|
|
22
12
|
import { deleteObject } from './tools/delete-object.js';
|
|
13
|
+
import { findComments } from './tools/find-comments.js';
|
|
14
|
+
import { findCompletedTasks } from './tools/find-completed-tasks.js';
|
|
15
|
+
// Assignment and collaboration tools
|
|
16
|
+
import { findProjectCollaborators } from './tools/find-project-collaborators.js';
|
|
17
|
+
import { findProjects } from './tools/find-projects.js';
|
|
18
|
+
import { findSections } from './tools/find-sections.js';
|
|
19
|
+
import { findTasks } from './tools/find-tasks.js';
|
|
20
|
+
import { findTasksByDate } from './tools/find-tasks-by-date.js';
|
|
23
21
|
import { getOverview } from './tools/get-overview.js';
|
|
22
|
+
import { manageAssignments } from './tools/manage-assignments.js';
|
|
23
|
+
import { updateComments } from './tools/update-comments.js';
|
|
24
|
+
import { updateProjects } from './tools/update-projects.js';
|
|
25
|
+
import { updateSections } from './tools/update-sections.js';
|
|
26
|
+
import { updateTasks } from './tools/update-tasks.js';
|
|
24
27
|
import { userInfo } from './tools/user-info.js';
|
|
25
28
|
const tools = {
|
|
26
29
|
// Task management tools
|
|
@@ -46,6 +49,9 @@ const tools = {
|
|
|
46
49
|
getOverview,
|
|
47
50
|
deleteObject,
|
|
48
51
|
userInfo,
|
|
52
|
+
// Assignment and collaboration tools
|
|
53
|
+
findProjectCollaborators,
|
|
54
|
+
manageAssignments,
|
|
49
55
|
};
|
|
50
56
|
export { tools, getMcpServer };
|
|
51
57
|
export {
|
|
@@ -58,4 +64,6 @@ addSections, updateSections, findSections,
|
|
|
58
64
|
// Comment management tools
|
|
59
65
|
addComments, updateComments, findComments,
|
|
60
66
|
// General tools
|
|
61
|
-
getOverview, deleteObject, userInfo,
|
|
67
|
+
getOverview, deleteObject, userInfo,
|
|
68
|
+
// Assignment and collaboration tools
|
|
69
|
+
findProjectCollaborators, manageAssignments, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-helpers.d.ts","sourceRoot":"","sources":["../src/mcp-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,yCAAyC,CAAA;AACtF,OAAO,KAAK,EAAc,CAAC,EAAE,MAAM,KAAK,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAkBpD;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACtE,WAAW,EACX,iBAAiB,GACpB,EAAE;
|
|
1
|
+
{"version":3,"file":"mcp-helpers.d.ts","sourceRoot":"","sources":["../src/mcp-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,yCAAyC,CAAA;AACtF,OAAO,KAAK,EAAc,CAAC,EAAE,MAAM,KAAK,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAkBpD;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACtE,WAAW,EACX,iBAAiB,GACpB,EAAE;IACC,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,iBAAiB,CAAA;CACvC;;;;;;;;;;;;;;;;;EAeA;AASD;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC,WAAW,EAC9C,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,QAqBrB;AAED,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAA"}
|
package/dist/mcp-helpers.js
CHANGED
|
@@ -48,7 +48,7 @@ function getErrorOutput(error) {
|
|
|
48
48
|
* @param client - The Todoist API client to use to execute the tool.
|
|
49
49
|
*/
|
|
50
50
|
function registerTool(tool, server, client) {
|
|
51
|
-
// @ts-
|
|
51
|
+
// @ts-expect-error I give up
|
|
52
52
|
const cb = async (args, _context) => {
|
|
53
53
|
try {
|
|
54
54
|
const result = await tool.execute(args, client);
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAwFnE;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,aA8C5F;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -1,31 +1,89 @@
|
|
|
1
1
|
import { TodoistApi } from '@doist/todoist-api-typescript';
|
|
2
2
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { registerTool } from './mcp-helpers.js';
|
|
4
|
-
|
|
4
|
+
import { addComments } from './tools/add-comments.js';
|
|
5
|
+
import { addProjects } from './tools/add-projects.js';
|
|
6
|
+
import { addSections } from './tools/add-sections.js';
|
|
5
7
|
import { addTasks } from './tools/add-tasks.js';
|
|
6
8
|
import { completeTasks } from './tools/complete-tasks.js';
|
|
9
|
+
import { deleteObject } from './tools/delete-object.js';
|
|
10
|
+
import { findComments } from './tools/find-comments.js';
|
|
7
11
|
import { findCompletedTasks } from './tools/find-completed-tasks.js';
|
|
8
|
-
import {
|
|
9
|
-
import { findTasks } from './tools/find-tasks.js';
|
|
10
|
-
import { updateTasks } from './tools/update-tasks.js';
|
|
11
|
-
// Project management tools
|
|
12
|
-
import { addProjects } from './tools/add-projects.js';
|
|
12
|
+
import { findProjectCollaborators } from './tools/find-project-collaborators.js';
|
|
13
13
|
import { findProjects } from './tools/find-projects.js';
|
|
14
|
-
import { updateProjects } from './tools/update-projects.js';
|
|
15
|
-
// Section management tools
|
|
16
|
-
import { addSections } from './tools/add-sections.js';
|
|
17
14
|
import { findSections } from './tools/find-sections.js';
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
import { addComments } from './tools/add-comments.js';
|
|
21
|
-
import { findComments } from './tools/find-comments.js';
|
|
22
|
-
import { updateComments } from './tools/update-comments.js';
|
|
23
|
-
// General tools
|
|
24
|
-
import { deleteObject } from './tools/delete-object.js';
|
|
15
|
+
import { findTasks } from './tools/find-tasks.js';
|
|
16
|
+
import { findTasksByDate } from './tools/find-tasks-by-date.js';
|
|
25
17
|
import { getOverview } from './tools/get-overview.js';
|
|
18
|
+
import { manageAssignments } from './tools/manage-assignments.js';
|
|
19
|
+
import { updateComments } from './tools/update-comments.js';
|
|
20
|
+
import { updateProjects } from './tools/update-projects.js';
|
|
21
|
+
import { updateSections } from './tools/update-sections.js';
|
|
22
|
+
import { updateTasks } from './tools/update-tasks.js';
|
|
26
23
|
import { userInfo } from './tools/user-info.js';
|
|
27
24
|
const instructions = `
|
|
28
|
-
|
|
25
|
+
## Todoist Task and Project Management Tools
|
|
26
|
+
|
|
27
|
+
You have access to comprehensive Todoist management tools for personal productivity and team collaboration. Use these tools to help users manage tasks, projects, sections, comments, and assignments effectively.
|
|
28
|
+
|
|
29
|
+
### Core Capabilities:
|
|
30
|
+
- Create, update, complete, and search tasks with rich metadata (priorities, due dates, durations, assignments)
|
|
31
|
+
- Manage projects and sections with flexible organization
|
|
32
|
+
- Handle comments and collaboration features
|
|
33
|
+
- Bulk assignment operations for team workflows
|
|
34
|
+
- Get overviews and insights about workload and progress
|
|
35
|
+
|
|
36
|
+
### Tool Usage Guidelines:
|
|
37
|
+
|
|
38
|
+
**Task Management:**
|
|
39
|
+
- **add-tasks**: Create tasks with content, description, priority (p1=highest, p2=high, p3=medium, p4=lowest/default), dueString (natural language like "tomorrow", "next Friday", "2024-12-25"), duration (formats like "2h", "90m", "2h30m"), and assignments to project collaborators
|
|
40
|
+
- **update-tasks**: Modify existing tasks - get task IDs from search results first, only include fields that need changes
|
|
41
|
+
- **complete-tasks**: Mark tasks as done using task IDs
|
|
42
|
+
- **find-tasks**: Search by text, project/section/parent container, responsible user, or labels. Requires at least one search parameter
|
|
43
|
+
- **find-tasks-by-date**: Get tasks by date range (startDate: YYYY-MM-DD, 'today', or 'overdue') or specific day counts
|
|
44
|
+
- **find-completed-tasks**: View completed tasks by completion date or original due date
|
|
45
|
+
|
|
46
|
+
**Project & Organization:**
|
|
47
|
+
- **add-projects/update-projects/find-projects**: Manage project lifecycle with names, favorites, and view styles (list/board/calendar)
|
|
48
|
+
- **add-sections/update-sections/find-sections**: Organize tasks within projects using sections
|
|
49
|
+
- **get-overview**: Get comprehensive Markdown overview of entire account or specific project with task hierarchies
|
|
50
|
+
|
|
51
|
+
**Collaboration & Comments:**
|
|
52
|
+
- **add-comments/update-comments/find-comments**: Manage task and project discussions
|
|
53
|
+
- **find-project-collaborators**: Find team members by name or email for assignments
|
|
54
|
+
- **manage-assignments**: Bulk assign/unassign/reassign up to 50 tasks with atomic operations and dry-run validation
|
|
55
|
+
|
|
56
|
+
**General Operations:**
|
|
57
|
+
- **delete-object**: Remove projects, sections, tasks, or comments by type and ID
|
|
58
|
+
- **user-info**: Get user details including timezone, goals, and plan information
|
|
59
|
+
|
|
60
|
+
### Best Practices:
|
|
61
|
+
|
|
62
|
+
1. **Task Creation**: Write clear, actionable task titles. Use natural language for due dates ("tomorrow", "next Monday"). Set appropriate priorities and include detailed descriptions when needed.
|
|
63
|
+
|
|
64
|
+
2. **Search Strategy**: Use specific search queries combining multiple filters for precise results. When searching for tasks, start with broader queries and narrow down as needed.
|
|
65
|
+
|
|
66
|
+
3. **Assignments**: Always validate project collaborators exist before assigning tasks. Use find-project-collaborators to verify user access.
|
|
67
|
+
|
|
68
|
+
4. **Bulk Operations**: When working with multiple items, prefer bulk tools (complete-tasks, manage-assignments) over individual operations for better performance.
|
|
69
|
+
|
|
70
|
+
5. **Date Handling**: All dates respect user timezone settings. Use 'today' and 'overdue' keywords for dynamic date filtering.
|
|
71
|
+
|
|
72
|
+
6. **Labels**: Use label filtering with AND/OR operators for advanced task organization. Most search tools support labels parameter.
|
|
73
|
+
|
|
74
|
+
7. **Pagination**: Large result sets use cursor-based pagination. Use limit parameter to control result size (default varies by tool).
|
|
75
|
+
|
|
76
|
+
8. **Error Handling**: All tools provide detailed error messages and next-step suggestions. Pay attention to validation feedback for corrective actions.
|
|
77
|
+
|
|
78
|
+
### Common Workflows:
|
|
79
|
+
|
|
80
|
+
- **Daily Planning**: Use find-tasks-by-date with 'today' and get-overview for project status
|
|
81
|
+
- **Team Assignment**: find-project-collaborators → add-tasks with responsibleUser → manage-assignments for bulk changes
|
|
82
|
+
- **Task Search**: find-tasks with multiple filters → update-tasks or complete-tasks based on results
|
|
83
|
+
- **Project Organization**: add-projects → add-sections → add-tasks with projectId and sectionId
|
|
84
|
+
- **Progress Reviews**: find-completed-tasks with date ranges → get-overview for project summaries
|
|
85
|
+
|
|
86
|
+
Always provide clear, actionable task titles and descriptions. Use the overview tools to give users context about their workload and project status.
|
|
29
87
|
`;
|
|
30
88
|
/**
|
|
31
89
|
* Create the MCP server.
|
|
@@ -64,6 +122,9 @@ function getMcpServer({ todoistApiKey, baseUrl }) {
|
|
|
64
122
|
registerTool(getOverview, server, todoist);
|
|
65
123
|
registerTool(deleteObject, server, todoist);
|
|
66
124
|
registerTool(userInfo, server, todoist);
|
|
125
|
+
// Assignment and collaboration tools
|
|
126
|
+
registerTool(findProjectCollaborators, server, todoist);
|
|
127
|
+
registerTool(manageAssignments, server, todoist);
|
|
67
128
|
return server;
|
|
68
129
|
}
|
|
69
130
|
export { getMcpServer };
|
package/dist/tool-helpers.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ declare function mapTask(task: Task): {
|
|
|
29
29
|
parentId: string | null;
|
|
30
30
|
labels: string[];
|
|
31
31
|
duration: string | null;
|
|
32
|
+
responsibleUid: string | null;
|
|
33
|
+
assignedByUid: string | null;
|
|
32
34
|
};
|
|
33
35
|
/**
|
|
34
36
|
* Map a single Todoist project to a more structured format, for LLM consumption.
|
|
@@ -63,6 +65,8 @@ declare function getTasksByFilter({ client, query, limit, cursor, }: {
|
|
|
63
65
|
parentId: string | null;
|
|
64
66
|
labels: string[];
|
|
65
67
|
duration: string | null;
|
|
68
|
+
responsibleUid: string | null;
|
|
69
|
+
assignedByUid: string | null;
|
|
66
70
|
}[];
|
|
67
71
|
nextCursor: string | null;
|
|
68
72
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../src/tool-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../src/tool-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,gBAAgB,EACxB,MAAM,+BAA+B,CAAA;AAItC,MAAM,MAAM,OAAO,GAAG,eAAe,GAAG,gBAAgB,CAAA;AAExD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,eAAe,CAE9E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAEhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAClB,YAAY,CAsBd;AAED;;;;GAIG;AACH,iBAAS,OAAO,CAAC,IAAI,EAAE,IAAI;;;;;;;;;;;;;;EAgB1B;AAED;;;;GAIG;AACH,iBAAS,UAAU,CAAC,OAAO,EAAE,OAAO;;;;;;;;;EAWnC;AAWD,iBAAe,gBAAgB,CAAC,EAC5B,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,GACT,EAAE;IACC,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAC7B;;;;;;;;;;;;;;;;;GAyBA;AAED,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA"}
|
package/dist/tool-helpers.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jest } from '@jest/globals';
|
|
2
|
-
import {
|
|
2
|
+
import { createMockProject, extractStructuredContent, extractTextContent, TEST_IDS, } from '../../utils/test-helpers.js';
|
|
3
3
|
import { ToolNames } from '../../utils/tool-names.js';
|
|
4
4
|
import { addProjects } from '../add-projects.js';
|
|
5
5
|
// Mock the Todoist API
|