@doist/todoist-ai 4.4.0 → 4.6.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/dist/index.d.ts +168 -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 +182 -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 +82 -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 +17 -7
- package/dist/tools/add-tasks.d.ts.map +1 -1
- package/dist/tools/add-tasks.js +51 -4
- 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 +17 -7
- package/dist/tools/update-tasks.d.ts.map +1 -1
- package/dist/tools/update-tasks.js +40 -10
- 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 +6 -6
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,50 @@ 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>;
|
|
33
|
+
labels: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
31
34
|
projectId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
32
35
|
sectionId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
33
36
|
parentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
37
|
+
responsibleUser: import("zod").ZodOptional<import("zod").ZodString>;
|
|
34
38
|
}, "strip", import("zod").ZodTypeAny, {
|
|
35
39
|
content: string;
|
|
36
40
|
description?: string | undefined;
|
|
37
|
-
parentId?: string | undefined;
|
|
38
41
|
projectId?: string | undefined;
|
|
42
|
+
parentId?: string | undefined;
|
|
39
43
|
sectionId?: string | undefined;
|
|
44
|
+
labels?: string[] | undefined;
|
|
40
45
|
duration?: string | undefined;
|
|
41
|
-
priority?:
|
|
46
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
42
47
|
dueString?: string | undefined;
|
|
48
|
+
responsibleUser?: string | undefined;
|
|
43
49
|
}, {
|
|
44
50
|
content: string;
|
|
45
51
|
description?: string | undefined;
|
|
46
|
-
parentId?: string | undefined;
|
|
47
52
|
projectId?: string | undefined;
|
|
53
|
+
parentId?: string | undefined;
|
|
48
54
|
sectionId?: string | undefined;
|
|
55
|
+
labels?: string[] | undefined;
|
|
49
56
|
duration?: string | undefined;
|
|
50
|
-
priority?:
|
|
57
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
51
58
|
dueString?: string | undefined;
|
|
59
|
+
responsibleUser?: string | undefined;
|
|
52
60
|
}>, "many">;
|
|
53
61
|
};
|
|
54
62
|
execute({ tasks }: {
|
|
55
63
|
tasks: {
|
|
56
64
|
content: string;
|
|
57
65
|
description?: string | undefined;
|
|
58
|
-
parentId?: string | undefined;
|
|
59
66
|
projectId?: string | undefined;
|
|
67
|
+
parentId?: string | undefined;
|
|
60
68
|
sectionId?: string | undefined;
|
|
69
|
+
labels?: string[] | undefined;
|
|
61
70
|
duration?: string | undefined;
|
|
62
|
-
priority?:
|
|
71
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
63
72
|
dueString?: string | undefined;
|
|
73
|
+
responsibleUser?: string | undefined;
|
|
64
74
|
}[];
|
|
65
75
|
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
66
76
|
content: {
|
|
@@ -80,6 +90,8 @@ declare const tools: {
|
|
|
80
90
|
parentId: string | null;
|
|
81
91
|
labels: string[];
|
|
82
92
|
duration: string | null;
|
|
93
|
+
responsibleUid: string | null;
|
|
94
|
+
assignedByUid: string | null;
|
|
83
95
|
}[];
|
|
84
96
|
totalCount: number;
|
|
85
97
|
};
|
|
@@ -145,30 +157,36 @@ declare const tools: {
|
|
|
145
157
|
sectionId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
146
158
|
parentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
147
159
|
order: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
148
|
-
priority: import("zod").ZodOptional<import("zod").
|
|
160
|
+
priority: import("zod").ZodOptional<import("zod").ZodEnum<["p1", "p2", "p3", "p4"]>>;
|
|
149
161
|
dueString: import("zod").ZodOptional<import("zod").ZodString>;
|
|
150
162
|
duration: import("zod").ZodOptional<import("zod").ZodString>;
|
|
163
|
+
responsibleUser: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
164
|
+
labels: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
151
165
|
}, "strip", import("zod").ZodTypeAny, {
|
|
152
166
|
id: string;
|
|
153
167
|
content?: string | undefined;
|
|
154
168
|
description?: string | undefined;
|
|
155
|
-
parentId?: string | undefined;
|
|
156
169
|
projectId?: string | undefined;
|
|
170
|
+
parentId?: string | undefined;
|
|
157
171
|
sectionId?: string | undefined;
|
|
172
|
+
labels?: string[] | undefined;
|
|
158
173
|
duration?: string | undefined;
|
|
159
|
-
priority?:
|
|
174
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
160
175
|
dueString?: string | undefined;
|
|
176
|
+
responsibleUser?: string | null | undefined;
|
|
161
177
|
order?: number | undefined;
|
|
162
178
|
}, {
|
|
163
179
|
id: string;
|
|
164
180
|
content?: string | undefined;
|
|
165
181
|
description?: string | undefined;
|
|
166
|
-
parentId?: string | undefined;
|
|
167
182
|
projectId?: string | undefined;
|
|
183
|
+
parentId?: string | undefined;
|
|
168
184
|
sectionId?: string | undefined;
|
|
185
|
+
labels?: string[] | undefined;
|
|
169
186
|
duration?: string | undefined;
|
|
170
|
-
priority?:
|
|
187
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
171
188
|
dueString?: string | undefined;
|
|
189
|
+
responsibleUser?: string | null | undefined;
|
|
172
190
|
order?: number | undefined;
|
|
173
191
|
}>, "many">;
|
|
174
192
|
};
|
|
@@ -177,12 +195,14 @@ declare const tools: {
|
|
|
177
195
|
id: string;
|
|
178
196
|
content?: string | undefined;
|
|
179
197
|
description?: string | undefined;
|
|
180
|
-
parentId?: string | undefined;
|
|
181
198
|
projectId?: string | undefined;
|
|
199
|
+
parentId?: string | undefined;
|
|
182
200
|
sectionId?: string | undefined;
|
|
201
|
+
labels?: string[] | undefined;
|
|
183
202
|
duration?: string | undefined;
|
|
184
|
-
priority?:
|
|
203
|
+
priority?: "p1" | "p2" | "p3" | "p4" | undefined;
|
|
185
204
|
dueString?: string | undefined;
|
|
205
|
+
responsibleUser?: string | null | undefined;
|
|
186
206
|
order?: number | undefined;
|
|
187
207
|
}[];
|
|
188
208
|
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
@@ -203,6 +223,8 @@ declare const tools: {
|
|
|
203
223
|
parentId: string | null;
|
|
204
224
|
labels: string[];
|
|
205
225
|
duration: string | null;
|
|
226
|
+
responsibleUid: string | null;
|
|
227
|
+
assignedByUid: string | null;
|
|
206
228
|
}[];
|
|
207
229
|
totalCount: number;
|
|
208
230
|
updatedTaskIds: string[];
|
|
@@ -234,16 +256,18 @@ declare const tools: {
|
|
|
234
256
|
projectId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
235
257
|
sectionId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
236
258
|
parentId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
259
|
+
responsibleUser: import("zod").ZodOptional<import("zod").ZodString>;
|
|
237
260
|
limit: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
238
261
|
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
239
262
|
};
|
|
240
263
|
execute(args: {
|
|
241
264
|
limit: number;
|
|
242
|
-
parentId?: string | undefined;
|
|
243
265
|
projectId?: string | undefined;
|
|
266
|
+
parentId?: string | undefined;
|
|
244
267
|
sectionId?: string | undefined;
|
|
245
268
|
labels?: string[] | undefined;
|
|
246
269
|
cursor?: string | undefined;
|
|
270
|
+
responsibleUser?: string | undefined;
|
|
247
271
|
labelsOperator?: "and" | "or" | undefined;
|
|
248
272
|
searchText?: string | undefined;
|
|
249
273
|
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
@@ -264,17 +288,20 @@ declare const tools: {
|
|
|
264
288
|
parentId: string | null;
|
|
265
289
|
labels: string[];
|
|
266
290
|
duration: string | null;
|
|
291
|
+
responsibleUid: string | null;
|
|
292
|
+
assignedByUid: string | null;
|
|
267
293
|
}[];
|
|
268
294
|
nextCursor: string | null;
|
|
269
295
|
totalCount: number;
|
|
270
296
|
hasMore: boolean;
|
|
271
297
|
appliedFilters: {
|
|
272
298
|
limit: number;
|
|
273
|
-
parentId?: string | undefined;
|
|
274
299
|
projectId?: string | undefined;
|
|
300
|
+
parentId?: string | undefined;
|
|
275
301
|
sectionId?: string | undefined;
|
|
276
302
|
labels?: string[] | undefined;
|
|
277
303
|
cursor?: string | undefined;
|
|
304
|
+
responsibleUser?: string | undefined;
|
|
278
305
|
labelsOperator?: "and" | "or" | undefined;
|
|
279
306
|
searchText?: string | undefined;
|
|
280
307
|
};
|
|
@@ -328,6 +355,8 @@ declare const tools: {
|
|
|
328
355
|
parentId: string | null;
|
|
329
356
|
labels: string[];
|
|
330
357
|
duration: string | null;
|
|
358
|
+
responsibleUid: string | null;
|
|
359
|
+
assignedByUid: string | null;
|
|
331
360
|
}[];
|
|
332
361
|
nextCursor: string | null;
|
|
333
362
|
totalCount: number;
|
|
@@ -375,9 +404,9 @@ declare const tools: {
|
|
|
375
404
|
getBy: "due" | "completion";
|
|
376
405
|
since: string;
|
|
377
406
|
until: string;
|
|
407
|
+
projectId?: string | undefined;
|
|
378
408
|
parentId?: string | undefined;
|
|
379
409
|
workspaceId?: string | undefined;
|
|
380
|
-
projectId?: string | undefined;
|
|
381
410
|
sectionId?: string | undefined;
|
|
382
411
|
labels?: string[] | undefined;
|
|
383
412
|
cursor?: string | undefined;
|
|
@@ -400,6 +429,8 @@ declare const tools: {
|
|
|
400
429
|
parentId: string | null;
|
|
401
430
|
labels: string[];
|
|
402
431
|
duration: string | null;
|
|
432
|
+
responsibleUid: string | null;
|
|
433
|
+
assignedByUid: string | null;
|
|
403
434
|
}[];
|
|
404
435
|
nextCursor: string | null;
|
|
405
436
|
totalCount: number;
|
|
@@ -409,9 +440,9 @@ declare const tools: {
|
|
|
409
440
|
getBy: "due" | "completion";
|
|
410
441
|
since: string;
|
|
411
442
|
until: string;
|
|
443
|
+
projectId?: string | undefined;
|
|
412
444
|
parentId?: string | undefined;
|
|
413
445
|
workspaceId?: string | undefined;
|
|
414
|
-
projectId?: string | undefined;
|
|
415
446
|
sectionId?: string | undefined;
|
|
416
447
|
labels?: string[] | undefined;
|
|
417
448
|
cursor?: string | undefined;
|
|
@@ -832,19 +863,19 @@ declare const tools: {
|
|
|
832
863
|
content: import("zod").ZodString;
|
|
833
864
|
}, "strip", import("zod").ZodTypeAny, {
|
|
834
865
|
content: string;
|
|
835
|
-
projectId?: string | undefined;
|
|
836
866
|
taskId?: string | undefined;
|
|
867
|
+
projectId?: string | undefined;
|
|
837
868
|
}, {
|
|
838
869
|
content: string;
|
|
839
|
-
projectId?: string | undefined;
|
|
840
870
|
taskId?: string | undefined;
|
|
871
|
+
projectId?: string | undefined;
|
|
841
872
|
}>, "many">;
|
|
842
873
|
};
|
|
843
874
|
execute(args: {
|
|
844
875
|
comments: {
|
|
845
876
|
content: string;
|
|
846
|
-
projectId?: string | undefined;
|
|
847
877
|
taskId?: string | undefined;
|
|
878
|
+
projectId?: string | undefined;
|
|
848
879
|
}[];
|
|
849
880
|
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
850
881
|
content: {
|
|
@@ -974,10 +1005,10 @@ declare const tools: {
|
|
|
974
1005
|
limit: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
975
1006
|
};
|
|
976
1007
|
execute(args: {
|
|
977
|
-
projectId?: string | undefined;
|
|
978
1008
|
limit?: number | undefined;
|
|
979
|
-
cursor?: string | undefined;
|
|
980
1009
|
taskId?: string | undefined;
|
|
1010
|
+
projectId?: string | undefined;
|
|
1011
|
+
cursor?: string | undefined;
|
|
981
1012
|
commentId?: string | undefined;
|
|
982
1013
|
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
983
1014
|
content: {
|
|
@@ -1114,7 +1145,109 @@ declare const tools: {
|
|
|
1114
1145
|
structuredContent?: undefined;
|
|
1115
1146
|
}>;
|
|
1116
1147
|
};
|
|
1148
|
+
findProjectCollaborators: {
|
|
1149
|
+
name: "find-project-collaborators";
|
|
1150
|
+
description: string;
|
|
1151
|
+
parameters: {
|
|
1152
|
+
projectId: import("zod").ZodString;
|
|
1153
|
+
searchTerm: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1154
|
+
};
|
|
1155
|
+
execute(args: {
|
|
1156
|
+
projectId: string;
|
|
1157
|
+
searchTerm?: string | undefined;
|
|
1158
|
+
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
1159
|
+
content: {
|
|
1160
|
+
type: "text";
|
|
1161
|
+
text: string;
|
|
1162
|
+
}[];
|
|
1163
|
+
structuredContent: {
|
|
1164
|
+
collaborators: never[];
|
|
1165
|
+
projectInfo: {
|
|
1166
|
+
id: string;
|
|
1167
|
+
name: string;
|
|
1168
|
+
isShared: boolean;
|
|
1169
|
+
};
|
|
1170
|
+
totalCount: number;
|
|
1171
|
+
appliedFilters: {
|
|
1172
|
+
projectId: string;
|
|
1173
|
+
searchTerm?: string | undefined;
|
|
1174
|
+
};
|
|
1175
|
+
};
|
|
1176
|
+
} | {
|
|
1177
|
+
content: ({
|
|
1178
|
+
type: "text";
|
|
1179
|
+
text: string;
|
|
1180
|
+
mimeType?: undefined;
|
|
1181
|
+
} | {
|
|
1182
|
+
type: "text";
|
|
1183
|
+
mimeType: string;
|
|
1184
|
+
text: string;
|
|
1185
|
+
})[];
|
|
1186
|
+
structuredContent?: undefined;
|
|
1187
|
+
} | {
|
|
1188
|
+
content: {
|
|
1189
|
+
type: "text";
|
|
1190
|
+
text: string;
|
|
1191
|
+
}[];
|
|
1192
|
+
structuredContent: {
|
|
1193
|
+
collaborators: import("./utils/user-resolver.js").ProjectCollaborator[];
|
|
1194
|
+
projectInfo: {
|
|
1195
|
+
id: string;
|
|
1196
|
+
name: string;
|
|
1197
|
+
isShared: boolean;
|
|
1198
|
+
};
|
|
1199
|
+
totalCount: number;
|
|
1200
|
+
totalAvailable: number;
|
|
1201
|
+
appliedFilters: {
|
|
1202
|
+
projectId: string;
|
|
1203
|
+
searchTerm?: string | undefined;
|
|
1204
|
+
};
|
|
1205
|
+
};
|
|
1206
|
+
}>;
|
|
1207
|
+
};
|
|
1208
|
+
manageAssignments: {
|
|
1209
|
+
name: "manage-assignments";
|
|
1210
|
+
description: string;
|
|
1211
|
+
parameters: {
|
|
1212
|
+
operation: import("zod").ZodEnum<["assign", "unassign", "reassign"]>;
|
|
1213
|
+
taskIds: import("zod").ZodArray<import("zod").ZodString, "many">;
|
|
1214
|
+
responsibleUser: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1215
|
+
fromAssigneeUser: import("zod").ZodOptional<import("zod").ZodString>;
|
|
1216
|
+
dryRun: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
|
|
1217
|
+
};
|
|
1218
|
+
execute(args: {
|
|
1219
|
+
operation: "assign" | "unassign" | "reassign";
|
|
1220
|
+
taskIds: string[];
|
|
1221
|
+
dryRun: boolean;
|
|
1222
|
+
responsibleUser?: string | undefined;
|
|
1223
|
+
fromAssigneeUser?: string | undefined;
|
|
1224
|
+
}, client: import("@doist/todoist-api-typescript").TodoistApi): Promise<{
|
|
1225
|
+
content: {
|
|
1226
|
+
type: "text";
|
|
1227
|
+
text: string;
|
|
1228
|
+
}[];
|
|
1229
|
+
structuredContent: {
|
|
1230
|
+
operation: "assign" | "unassign" | "reassign";
|
|
1231
|
+
results: import("./tools/manage-assignments.js").OperationResult[];
|
|
1232
|
+
totalRequested: number;
|
|
1233
|
+
successful: number;
|
|
1234
|
+
failed: number;
|
|
1235
|
+
dryRun: boolean;
|
|
1236
|
+
};
|
|
1237
|
+
} | {
|
|
1238
|
+
content: ({
|
|
1239
|
+
type: "text";
|
|
1240
|
+
text: string;
|
|
1241
|
+
mimeType?: undefined;
|
|
1242
|
+
} | {
|
|
1243
|
+
type: "text";
|
|
1244
|
+
mimeType: string;
|
|
1245
|
+
text: string;
|
|
1246
|
+
})[];
|
|
1247
|
+
structuredContent?: undefined;
|
|
1248
|
+
}>;
|
|
1249
|
+
};
|
|
1117
1250
|
};
|
|
1118
1251
|
export { tools, getMcpServer };
|
|
1119
|
-
export { addTasks, completeTasks, updateTasks, findTasks, findTasksByDate, findCompletedTasks, addProjects, updateProjects, findProjects, addSections, updateSections, findSections, addComments, updateComments, findComments, getOverview, deleteObject, userInfo, };
|
|
1252
|
+
export { addTasks, completeTasks, updateTasks, findTasks, findTasksByDate, findCompletedTasks, addProjects, updateProjects, findProjects, addSections, updateSections, findSections, addComments, updateComments, findComments, getOverview, deleteObject, userInfo, findProjectCollaborators, manageAssignments, };
|
|
1120
1253
|
//# 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