@ofocus/mcp 0.4.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/LICENSE +21 -0
- package/README.md +273 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/advanced.d.ts +3 -0
- package/dist/tools/advanced.d.ts.map +1 -0
- package/dist/tools/advanced.js +392 -0
- package/dist/tools/advanced.js.map +1 -0
- package/dist/tools/folders.d.ts +3 -0
- package/dist/tools/folders.d.ts.map +1 -0
- package/dist/tools/folders.js +69 -0
- package/dist/tools/folders.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/projects.d.ts +3 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +161 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/tags.d.ts +3 -0
- package/dist/tools/tags.d.ts.map +1 -0
- package/dist/tools/tags.js +63 -0
- package/dist/tools/tags.js.map +1 -0
- package/dist/tools/tasks.d.ts +3 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +293 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/utils.d.ts +14 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +37 -0
- package/dist/utils.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { queryProjects, createProject, reviewProject, queryProjectsForReview, updateProject, deleteProject, dropProject, getReviewInterval, setReviewInterval, } from "@ofocus/sdk";
|
|
3
|
+
import { formatResult } from "../utils.js";
|
|
4
|
+
export function registerProjectTools(server) {
|
|
5
|
+
// projects_list - Query projects with filters
|
|
6
|
+
server.registerTool("projects_list", {
|
|
7
|
+
description: "List and filter projects from OmniFocus",
|
|
8
|
+
inputSchema: {
|
|
9
|
+
folder: z.string().optional().describe("Filter by folder name or ID"),
|
|
10
|
+
status: z
|
|
11
|
+
.enum(["active", "on-hold", "completed", "dropped"])
|
|
12
|
+
.optional()
|
|
13
|
+
.describe("Filter by project status"),
|
|
14
|
+
sequential: z
|
|
15
|
+
.boolean()
|
|
16
|
+
.optional()
|
|
17
|
+
.describe("Filter by sequential/parallel type"),
|
|
18
|
+
},
|
|
19
|
+
}, async (params) => {
|
|
20
|
+
const result = await queryProjects({
|
|
21
|
+
folder: params.folder,
|
|
22
|
+
status: params.status,
|
|
23
|
+
sequential: params.sequential,
|
|
24
|
+
});
|
|
25
|
+
return formatResult(result);
|
|
26
|
+
});
|
|
27
|
+
// project_create - Create a new project
|
|
28
|
+
server.registerTool("project_create", {
|
|
29
|
+
description: "Create a new project in OmniFocus",
|
|
30
|
+
inputSchema: {
|
|
31
|
+
name: z.string().describe("Project name"),
|
|
32
|
+
note: z.string().optional().describe("Project note/description"),
|
|
33
|
+
folderId: z.string().optional().describe("Parent folder ID"),
|
|
34
|
+
folderName: z.string().optional().describe("Parent folder name"),
|
|
35
|
+
sequential: z
|
|
36
|
+
.boolean()
|
|
37
|
+
.optional()
|
|
38
|
+
.describe("Whether tasks are sequential (default: false)"),
|
|
39
|
+
status: z
|
|
40
|
+
.enum(["active", "on-hold"])
|
|
41
|
+
.optional()
|
|
42
|
+
.describe("Initial project status"),
|
|
43
|
+
dueDate: z.string().optional().describe("Project due date"),
|
|
44
|
+
deferDate: z.string().optional().describe("Project defer date"),
|
|
45
|
+
},
|
|
46
|
+
}, async (params) => {
|
|
47
|
+
const result = await createProject(params.name, {
|
|
48
|
+
note: params.note,
|
|
49
|
+
folderId: params.folderId,
|
|
50
|
+
folderName: params.folderName,
|
|
51
|
+
sequential: params.sequential,
|
|
52
|
+
status: params.status,
|
|
53
|
+
dueDate: params.dueDate,
|
|
54
|
+
deferDate: params.deferDate,
|
|
55
|
+
});
|
|
56
|
+
return formatResult(result);
|
|
57
|
+
});
|
|
58
|
+
// project_review - Mark a project as reviewed
|
|
59
|
+
server.registerTool("project_review", {
|
|
60
|
+
description: "Mark a project as reviewed in OmniFocus",
|
|
61
|
+
inputSchema: {
|
|
62
|
+
projectId: z.string().describe("The ID of the project to review"),
|
|
63
|
+
},
|
|
64
|
+
}, async (params) => {
|
|
65
|
+
const result = await reviewProject(params.projectId);
|
|
66
|
+
return formatResult(result);
|
|
67
|
+
});
|
|
68
|
+
// projects_for_review - Get projects that need review
|
|
69
|
+
server.registerTool("projects_for_review", {
|
|
70
|
+
description: "Get projects that are due for review",
|
|
71
|
+
inputSchema: {},
|
|
72
|
+
}, async () => {
|
|
73
|
+
const result = await queryProjectsForReview();
|
|
74
|
+
return formatResult(result);
|
|
75
|
+
});
|
|
76
|
+
// project_update - Update project properties
|
|
77
|
+
server.registerTool("project_update", {
|
|
78
|
+
description: "Update properties of an existing project",
|
|
79
|
+
inputSchema: {
|
|
80
|
+
projectId: z.string().describe("The ID of the project to update"),
|
|
81
|
+
name: z.string().optional().describe("New project name"),
|
|
82
|
+
note: z.string().optional().describe("New project note"),
|
|
83
|
+
status: z
|
|
84
|
+
.enum(["active", "on-hold", "completed", "dropped"])
|
|
85
|
+
.optional()
|
|
86
|
+
.describe("New project status"),
|
|
87
|
+
folderId: z.string().optional().describe("Move to folder by ID"),
|
|
88
|
+
folderName: z.string().optional().describe("Move to folder by name"),
|
|
89
|
+
sequential: z
|
|
90
|
+
.boolean()
|
|
91
|
+
.optional()
|
|
92
|
+
.describe("Make project sequential (true) or parallel (false)"),
|
|
93
|
+
dueDate: z
|
|
94
|
+
.string()
|
|
95
|
+
.optional()
|
|
96
|
+
.describe("New due date (empty string to clear)"),
|
|
97
|
+
deferDate: z
|
|
98
|
+
.string()
|
|
99
|
+
.optional()
|
|
100
|
+
.describe("New defer date (empty string to clear)"),
|
|
101
|
+
},
|
|
102
|
+
}, async (params) => {
|
|
103
|
+
const result = await updateProject(params.projectId, {
|
|
104
|
+
name: params.name,
|
|
105
|
+
note: params.note,
|
|
106
|
+
status: params.status,
|
|
107
|
+
folderId: params.folderId,
|
|
108
|
+
folderName: params.folderName,
|
|
109
|
+
sequential: params.sequential,
|
|
110
|
+
dueDate: params.dueDate,
|
|
111
|
+
deferDate: params.deferDate,
|
|
112
|
+
});
|
|
113
|
+
return formatResult(result);
|
|
114
|
+
});
|
|
115
|
+
// project_delete - Delete a project permanently
|
|
116
|
+
server.registerTool("project_delete", {
|
|
117
|
+
description: "Permanently delete a project from OmniFocus",
|
|
118
|
+
inputSchema: {
|
|
119
|
+
projectId: z.string().describe("The ID of the project to delete"),
|
|
120
|
+
},
|
|
121
|
+
}, async (params) => {
|
|
122
|
+
const result = await deleteProject(params.projectId);
|
|
123
|
+
return formatResult(result);
|
|
124
|
+
});
|
|
125
|
+
// project_drop - Drop a project
|
|
126
|
+
server.registerTool("project_drop", {
|
|
127
|
+
description: "Drop (cancel) a project in OmniFocus",
|
|
128
|
+
inputSchema: {
|
|
129
|
+
projectId: z.string().describe("The ID of the project to drop"),
|
|
130
|
+
},
|
|
131
|
+
}, async (params) => {
|
|
132
|
+
const result = await dropProject(params.projectId);
|
|
133
|
+
return formatResult(result);
|
|
134
|
+
});
|
|
135
|
+
// project_review_interval_get - Get review interval
|
|
136
|
+
server.registerTool("project_review_interval_get", {
|
|
137
|
+
description: "Get the review interval for a project in days",
|
|
138
|
+
inputSchema: {
|
|
139
|
+
projectId: z.string().describe("The ID of the project"),
|
|
140
|
+
},
|
|
141
|
+
}, async (params) => {
|
|
142
|
+
const result = await getReviewInterval(params.projectId);
|
|
143
|
+
return formatResult(result);
|
|
144
|
+
});
|
|
145
|
+
// project_review_interval_set - Set review interval
|
|
146
|
+
server.registerTool("project_review_interval_set", {
|
|
147
|
+
description: "Set the review interval for a project in days",
|
|
148
|
+
inputSchema: {
|
|
149
|
+
projectId: z.string().describe("The ID of the project"),
|
|
150
|
+
intervalDays: z
|
|
151
|
+
.number()
|
|
152
|
+
.int()
|
|
153
|
+
.min(1)
|
|
154
|
+
.describe("Review interval in days"),
|
|
155
|
+
},
|
|
156
|
+
}, async (params) => {
|
|
157
|
+
const result = await setReviewInterval(params.projectId, params.intervalDays);
|
|
158
|
+
return formatResult(result);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6ExD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { queryTags, createTag, updateTag, deleteTag } from "@ofocus/sdk";
|
|
3
|
+
import { formatResult } from "../utils.js";
|
|
4
|
+
export function registerTagTools(server) {
|
|
5
|
+
// tags_list - Query tags
|
|
6
|
+
server.registerTool("tags_list", {
|
|
7
|
+
description: "List tags from OmniFocus",
|
|
8
|
+
inputSchema: {
|
|
9
|
+
parent: z
|
|
10
|
+
.string()
|
|
11
|
+
.optional()
|
|
12
|
+
.describe("Filter by parent tag name or ID"),
|
|
13
|
+
},
|
|
14
|
+
}, async (params) => {
|
|
15
|
+
const result = await queryTags({
|
|
16
|
+
parent: params.parent,
|
|
17
|
+
});
|
|
18
|
+
return formatResult(result);
|
|
19
|
+
});
|
|
20
|
+
// tag_create - Create a new tag
|
|
21
|
+
server.registerTool("tag_create", {
|
|
22
|
+
description: "Create a new tag in OmniFocus",
|
|
23
|
+
inputSchema: {
|
|
24
|
+
name: z.string().describe("Tag name"),
|
|
25
|
+
parentTagId: z.string().optional().describe("Parent tag ID"),
|
|
26
|
+
parentTagName: z.string().optional().describe("Parent tag name"),
|
|
27
|
+
},
|
|
28
|
+
}, async (params) => {
|
|
29
|
+
const result = await createTag(params.name, {
|
|
30
|
+
parentTagId: params.parentTagId,
|
|
31
|
+
parentTagName: params.parentTagName,
|
|
32
|
+
});
|
|
33
|
+
return formatResult(result);
|
|
34
|
+
});
|
|
35
|
+
// tag_update - Update a tag
|
|
36
|
+
server.registerTool("tag_update", {
|
|
37
|
+
description: "Update an existing tag in OmniFocus",
|
|
38
|
+
inputSchema: {
|
|
39
|
+
tagId: z.string().describe("The ID of the tag to update"),
|
|
40
|
+
name: z.string().optional().describe("New tag name"),
|
|
41
|
+
parentTagId: z.string().optional().describe("New parent tag ID"),
|
|
42
|
+
parentTagName: z.string().optional().describe("New parent tag name"),
|
|
43
|
+
},
|
|
44
|
+
}, async (params) => {
|
|
45
|
+
const result = await updateTag(params.tagId, {
|
|
46
|
+
name: params.name,
|
|
47
|
+
parentTagId: params.parentTagId,
|
|
48
|
+
parentTagName: params.parentTagName,
|
|
49
|
+
});
|
|
50
|
+
return formatResult(result);
|
|
51
|
+
});
|
|
52
|
+
// tag_delete - Delete a tag
|
|
53
|
+
server.registerTool("tag_delete", {
|
|
54
|
+
description: "Delete a tag from OmniFocus",
|
|
55
|
+
inputSchema: {
|
|
56
|
+
tagId: z.string().describe("The ID of the tag to delete"),
|
|
57
|
+
},
|
|
58
|
+
}, async (params) => {
|
|
59
|
+
const result = await deleteTag(params.tagId);
|
|
60
|
+
return formatResult(result);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/tools/tags.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiWzD"}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { addToInbox, queryTasks, completeTask, updateTask, dropTask, deleteTask, searchTasks, completeTasks, updateTasks, deleteTasks, deferTask, deferTasks, duplicateTask, openItem, } from "@ofocus/sdk";
|
|
3
|
+
import { formatResult } from "../utils.js";
|
|
4
|
+
const RepetitionRuleSchema = z.object({
|
|
5
|
+
frequency: z.enum(["daily", "weekly", "monthly", "yearly"]),
|
|
6
|
+
interval: z.number().int().min(1),
|
|
7
|
+
repeatMethod: z.enum(["due-again", "defer-another"]),
|
|
8
|
+
daysOfWeek: z.array(z.number().int().min(0).max(6)).min(1).optional(),
|
|
9
|
+
dayOfMonth: z.number().int().min(1).max(31).optional(),
|
|
10
|
+
});
|
|
11
|
+
export function registerTaskTools(server) {
|
|
12
|
+
// inbox_add - Add a task to inbox
|
|
13
|
+
server.registerTool("inbox_add", {
|
|
14
|
+
description: "Add a new task to the OmniFocus inbox",
|
|
15
|
+
inputSchema: {
|
|
16
|
+
title: z.string().describe("Task title"),
|
|
17
|
+
note: z.string().optional().describe("Task note/description"),
|
|
18
|
+
due: z
|
|
19
|
+
.string()
|
|
20
|
+
.optional()
|
|
21
|
+
.describe("Due date (ISO format or natural language like 'tomorrow')"),
|
|
22
|
+
defer: z
|
|
23
|
+
.string()
|
|
24
|
+
.optional()
|
|
25
|
+
.describe("Defer date (ISO format or natural language)"),
|
|
26
|
+
flag: z.boolean().optional().describe("Flag the task"),
|
|
27
|
+
tags: z.array(z.string()).optional().describe("Tags to apply"),
|
|
28
|
+
estimatedMinutes: z
|
|
29
|
+
.number()
|
|
30
|
+
.optional()
|
|
31
|
+
.describe("Estimated duration in minutes"),
|
|
32
|
+
repeat: RepetitionRuleSchema.optional().describe("Repetition rule"),
|
|
33
|
+
},
|
|
34
|
+
}, async (params) => {
|
|
35
|
+
const result = await addToInbox(params.title, {
|
|
36
|
+
note: params.note,
|
|
37
|
+
due: params.due,
|
|
38
|
+
defer: params.defer,
|
|
39
|
+
flag: params.flag,
|
|
40
|
+
tags: params.tags,
|
|
41
|
+
estimatedMinutes: params.estimatedMinutes,
|
|
42
|
+
repeat: params.repeat,
|
|
43
|
+
});
|
|
44
|
+
return formatResult(result);
|
|
45
|
+
});
|
|
46
|
+
// tasks_list - Query tasks with filters
|
|
47
|
+
server.registerTool("tasks_list", {
|
|
48
|
+
description: "List and filter tasks from OmniFocus",
|
|
49
|
+
inputSchema: {
|
|
50
|
+
project: z.string().optional().describe("Filter by project name or ID"),
|
|
51
|
+
tag: z.string().optional().describe("Filter by tag name"),
|
|
52
|
+
dueBefore: z
|
|
53
|
+
.string()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("Filter tasks due before this date"),
|
|
56
|
+
dueAfter: z
|
|
57
|
+
.string()
|
|
58
|
+
.optional()
|
|
59
|
+
.describe("Filter tasks due after this date"),
|
|
60
|
+
flagged: z.boolean().optional().describe("Filter by flagged status"),
|
|
61
|
+
completed: z.boolean().optional().describe("Include completed tasks"),
|
|
62
|
+
available: z
|
|
63
|
+
.boolean()
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("Only show available (actionable) tasks"),
|
|
66
|
+
},
|
|
67
|
+
}, async (params) => {
|
|
68
|
+
const result = await queryTasks({
|
|
69
|
+
project: params.project,
|
|
70
|
+
tag: params.tag,
|
|
71
|
+
dueBefore: params.dueBefore,
|
|
72
|
+
dueAfter: params.dueAfter,
|
|
73
|
+
flagged: params.flagged,
|
|
74
|
+
completed: params.completed,
|
|
75
|
+
available: params.available,
|
|
76
|
+
});
|
|
77
|
+
return formatResult(result);
|
|
78
|
+
});
|
|
79
|
+
// task_complete - Mark a task as complete
|
|
80
|
+
server.registerTool("task_complete", {
|
|
81
|
+
description: "Mark a task as complete in OmniFocus",
|
|
82
|
+
inputSchema: {
|
|
83
|
+
taskId: z.string().describe("The ID of the task to complete"),
|
|
84
|
+
},
|
|
85
|
+
}, async (params) => {
|
|
86
|
+
const result = await completeTask(params.taskId);
|
|
87
|
+
return formatResult(result);
|
|
88
|
+
});
|
|
89
|
+
// task_update - Update task properties
|
|
90
|
+
server.registerTool("task_update", {
|
|
91
|
+
description: "Update properties of an existing task",
|
|
92
|
+
inputSchema: {
|
|
93
|
+
taskId: z.string().describe("The ID of the task to update"),
|
|
94
|
+
title: z.string().optional().describe("New task title"),
|
|
95
|
+
note: z.string().optional().describe("New task note"),
|
|
96
|
+
due: z.string().optional().describe("New due date"),
|
|
97
|
+
defer: z.string().optional().describe("New defer date"),
|
|
98
|
+
flag: z.boolean().optional().describe("Flag or unflag the task"),
|
|
99
|
+
project: z.string().optional().describe("Move to project (name or ID)"),
|
|
100
|
+
tags: z.array(z.string()).optional().describe("Replace tags"),
|
|
101
|
+
estimatedMinutes: z
|
|
102
|
+
.number()
|
|
103
|
+
.optional()
|
|
104
|
+
.describe("Estimated duration in minutes"),
|
|
105
|
+
clearEstimate: z
|
|
106
|
+
.boolean()
|
|
107
|
+
.optional()
|
|
108
|
+
.describe("Clear the estimated duration"),
|
|
109
|
+
repeat: RepetitionRuleSchema.optional().describe("Set repetition rule"),
|
|
110
|
+
clearRepeat: z.boolean().optional().describe("Clear repetition rule"),
|
|
111
|
+
},
|
|
112
|
+
}, async (params) => {
|
|
113
|
+
const result = await updateTask(params.taskId, {
|
|
114
|
+
title: params.title,
|
|
115
|
+
note: params.note,
|
|
116
|
+
due: params.due,
|
|
117
|
+
defer: params.defer,
|
|
118
|
+
flag: params.flag,
|
|
119
|
+
project: params.project,
|
|
120
|
+
tags: params.tags,
|
|
121
|
+
estimatedMinutes: params.estimatedMinutes,
|
|
122
|
+
clearEstimate: params.clearEstimate,
|
|
123
|
+
repeat: params.repeat,
|
|
124
|
+
clearRepeat: params.clearRepeat,
|
|
125
|
+
});
|
|
126
|
+
return formatResult(result);
|
|
127
|
+
});
|
|
128
|
+
// task_drop - Drop a task
|
|
129
|
+
server.registerTool("task_drop", {
|
|
130
|
+
description: "Drop (cancel) a task in OmniFocus",
|
|
131
|
+
inputSchema: {
|
|
132
|
+
taskId: z.string().describe("The ID of the task to drop"),
|
|
133
|
+
},
|
|
134
|
+
}, async (params) => {
|
|
135
|
+
const result = await dropTask(params.taskId);
|
|
136
|
+
return formatResult(result);
|
|
137
|
+
});
|
|
138
|
+
// task_delete - Delete a task permanently
|
|
139
|
+
server.registerTool("task_delete", {
|
|
140
|
+
description: "Permanently delete a task from OmniFocus",
|
|
141
|
+
inputSchema: {
|
|
142
|
+
taskId: z.string().describe("The ID of the task to delete"),
|
|
143
|
+
},
|
|
144
|
+
}, async (params) => {
|
|
145
|
+
const result = await deleteTask(params.taskId);
|
|
146
|
+
return formatResult(result);
|
|
147
|
+
});
|
|
148
|
+
// search - Search tasks by text
|
|
149
|
+
server.registerTool("search", {
|
|
150
|
+
description: "Search tasks by text in OmniFocus",
|
|
151
|
+
inputSchema: {
|
|
152
|
+
query: z.string().describe("Search query text"),
|
|
153
|
+
scope: z
|
|
154
|
+
.enum(["name", "note", "both"])
|
|
155
|
+
.optional()
|
|
156
|
+
.describe("Where to search (default: both)"),
|
|
157
|
+
limit: z.number().optional().describe("Maximum results to return"),
|
|
158
|
+
includeCompleted: z
|
|
159
|
+
.boolean()
|
|
160
|
+
.optional()
|
|
161
|
+
.describe("Include completed tasks in search"),
|
|
162
|
+
},
|
|
163
|
+
}, async (params) => {
|
|
164
|
+
const result = await searchTasks(params.query, {
|
|
165
|
+
scope: params.scope,
|
|
166
|
+
limit: params.limit,
|
|
167
|
+
includeCompleted: params.includeCompleted,
|
|
168
|
+
});
|
|
169
|
+
return formatResult(result);
|
|
170
|
+
});
|
|
171
|
+
// task_defer - Defer a single task
|
|
172
|
+
server.registerTool("task_defer", {
|
|
173
|
+
description: "Defer a task to a later date",
|
|
174
|
+
inputSchema: {
|
|
175
|
+
taskId: z.string().describe("The ID of the task to defer"),
|
|
176
|
+
days: z
|
|
177
|
+
.number()
|
|
178
|
+
.int()
|
|
179
|
+
.min(1)
|
|
180
|
+
.optional()
|
|
181
|
+
.describe("Defer for this many days from today"),
|
|
182
|
+
to: z.string().optional().describe("Defer to a specific date"),
|
|
183
|
+
},
|
|
184
|
+
}, async (params) => {
|
|
185
|
+
const result = await deferTask(params.taskId, {
|
|
186
|
+
days: params.days,
|
|
187
|
+
to: params.to,
|
|
188
|
+
});
|
|
189
|
+
return formatResult(result);
|
|
190
|
+
});
|
|
191
|
+
// Batch operations
|
|
192
|
+
server.registerTool("tasks_complete_batch", {
|
|
193
|
+
description: "Complete multiple tasks at once",
|
|
194
|
+
inputSchema: {
|
|
195
|
+
taskIds: z.array(z.string()).describe("Array of task IDs to complete"),
|
|
196
|
+
},
|
|
197
|
+
}, async (params) => {
|
|
198
|
+
const result = await completeTasks(params.taskIds);
|
|
199
|
+
return formatResult(result);
|
|
200
|
+
});
|
|
201
|
+
server.registerTool("tasks_update_batch", {
|
|
202
|
+
description: "Update multiple tasks with the same properties",
|
|
203
|
+
inputSchema: {
|
|
204
|
+
taskIds: z.array(z.string()).describe("Array of task IDs to update"),
|
|
205
|
+
title: z.string().optional().describe("New title for all tasks"),
|
|
206
|
+
note: z.string().optional().describe("New note for all tasks"),
|
|
207
|
+
due: z.string().optional().describe("New due date for all tasks"),
|
|
208
|
+
defer: z.string().optional().describe("New defer date for all tasks"),
|
|
209
|
+
flag: z.boolean().optional().describe("Flag or unflag all tasks"),
|
|
210
|
+
project: z
|
|
211
|
+
.string()
|
|
212
|
+
.optional()
|
|
213
|
+
.describe("Move all tasks to this project"),
|
|
214
|
+
tags: z
|
|
215
|
+
.array(z.string())
|
|
216
|
+
.optional()
|
|
217
|
+
.describe("Replace tags on all tasks"),
|
|
218
|
+
estimatedMinutes: z
|
|
219
|
+
.number()
|
|
220
|
+
.optional()
|
|
221
|
+
.describe("Estimated duration for all tasks"),
|
|
222
|
+
},
|
|
223
|
+
}, async (params) => {
|
|
224
|
+
const result = await updateTasks(params.taskIds, {
|
|
225
|
+
title: params.title,
|
|
226
|
+
note: params.note,
|
|
227
|
+
due: params.due,
|
|
228
|
+
defer: params.defer,
|
|
229
|
+
flag: params.flag,
|
|
230
|
+
project: params.project,
|
|
231
|
+
tags: params.tags,
|
|
232
|
+
estimatedMinutes: params.estimatedMinutes,
|
|
233
|
+
});
|
|
234
|
+
return formatResult(result);
|
|
235
|
+
});
|
|
236
|
+
server.registerTool("tasks_delete_batch", {
|
|
237
|
+
description: "Delete multiple tasks at once",
|
|
238
|
+
inputSchema: {
|
|
239
|
+
taskIds: z.array(z.string()).describe("Array of task IDs to delete"),
|
|
240
|
+
},
|
|
241
|
+
}, async (params) => {
|
|
242
|
+
const result = await deleteTasks(params.taskIds);
|
|
243
|
+
return formatResult(result);
|
|
244
|
+
});
|
|
245
|
+
server.registerTool("tasks_defer_batch", {
|
|
246
|
+
description: "Defer multiple tasks to the same date",
|
|
247
|
+
inputSchema: {
|
|
248
|
+
taskIds: z.array(z.string()).describe("Array of task IDs to defer"),
|
|
249
|
+
days: z
|
|
250
|
+
.number()
|
|
251
|
+
.int()
|
|
252
|
+
.min(1)
|
|
253
|
+
.optional()
|
|
254
|
+
.describe("Defer for this many days from today"),
|
|
255
|
+
to: z.string().optional().describe("Defer to a specific date"),
|
|
256
|
+
},
|
|
257
|
+
}, async (params) => {
|
|
258
|
+
const result = await deferTasks(params.taskIds, {
|
|
259
|
+
days: params.days,
|
|
260
|
+
to: params.to,
|
|
261
|
+
});
|
|
262
|
+
return formatResult(result);
|
|
263
|
+
});
|
|
264
|
+
// task_duplicate - Duplicate a task
|
|
265
|
+
server.registerTool("task_duplicate", {
|
|
266
|
+
description: "Create a copy of an existing task with all its properties",
|
|
267
|
+
inputSchema: {
|
|
268
|
+
taskId: z.string().describe("The ID of the task to duplicate"),
|
|
269
|
+
includeSubtasks: z
|
|
270
|
+
.boolean()
|
|
271
|
+
.optional()
|
|
272
|
+
.describe("Include subtasks in the duplicate (default: true)"),
|
|
273
|
+
},
|
|
274
|
+
}, async (params) => {
|
|
275
|
+
const result = await duplicateTask(params.taskId, {
|
|
276
|
+
includeSubtasks: params.includeSubtasks,
|
|
277
|
+
});
|
|
278
|
+
return formatResult(result);
|
|
279
|
+
});
|
|
280
|
+
// open - Open an item in OmniFocus UI
|
|
281
|
+
server.registerTool("open", {
|
|
282
|
+
description: "Open an item in the OmniFocus user interface (task, project, folder, or tag)",
|
|
283
|
+
inputSchema: {
|
|
284
|
+
id: z
|
|
285
|
+
.string()
|
|
286
|
+
.describe("The ID of the item to open (auto-detects type)"),
|
|
287
|
+
},
|
|
288
|
+
}, async (params) => {
|
|
289
|
+
const result = await openItem(params.id);
|
|
290
|
+
return formatResult(result);
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CliOutput } from "@ofocus/sdk";
|
|
2
|
+
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Format SDK result as MCP tool result.
|
|
5
|
+
*
|
|
6
|
+
* Converts the CliOutput format from @ofocus/sdk into the CallToolResult
|
|
7
|
+
* format expected by MCP clients. Successful results include the data payload,
|
|
8
|
+
* while errors are marked with isError: true and include error details.
|
|
9
|
+
*
|
|
10
|
+
* @param result - The result from an SDK function call
|
|
11
|
+
* @returns MCP-formatted tool result with text content
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatResult<T>(result: CliOutput<T>): CallToolResult;
|
|
14
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,cAAc,CA2BpE"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format SDK result as MCP tool result.
|
|
3
|
+
*
|
|
4
|
+
* Converts the CliOutput format from @ofocus/sdk into the CallToolResult
|
|
5
|
+
* format expected by MCP clients. Successful results include the data payload,
|
|
6
|
+
* while errors are marked with isError: true and include error details.
|
|
7
|
+
*
|
|
8
|
+
* @param result - The result from an SDK function call
|
|
9
|
+
* @returns MCP-formatted tool result with text content
|
|
10
|
+
*/
|
|
11
|
+
export function formatResult(result) {
|
|
12
|
+
if (!result.success) {
|
|
13
|
+
// Ensure error has expected structure
|
|
14
|
+
const error = result.error ?? {
|
|
15
|
+
code: "UNKNOWN_ERROR",
|
|
16
|
+
message: "An unknown error occurred",
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
content: [
|
|
20
|
+
{
|
|
21
|
+
type: "text",
|
|
22
|
+
text: JSON.stringify(error, null, 2),
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
isError: true,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
content: [
|
|
30
|
+
{
|
|
31
|
+
type: "text",
|
|
32
|
+
text: JSON.stringify(result.data, null, 2),
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAI,MAAoB;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,sCAAsC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI;YAC5B,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,2BAA2B;SACrC,CAAC;QAEF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBACrC;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aAC3C;SACF;KACF,CAAC;AACJ,CAAC"}
|