mcp-sunsama 0.5.2 → 0.7.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/CHANGELOG.md +24 -0
- package/CLAUDE.md +2 -2
- package/README.md +3 -1
- package/dist/main.js +109 -3
- package/dist/schemas.d.ts +26 -5
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +11 -4
- package/dist/schemas.test.d.ts +2 -0
- package/dist/schemas.test.d.ts.map +1 -0
- package/dist/schemas.test.js +486 -0
- package/mcp-inspector.json +1 -1
- package/package.json +2 -2
- package/src/main.ts +130 -2
- package/src/schemas.test.ts +608 -0
- package/src/schemas.ts +14 -4
- package/.claude/settings.local.json +0 -37
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# mcp-sunsama
|
|
2
2
|
|
|
3
|
+
## 0.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 3394176: Add get-task-by-id tool for retrieving specific tasks by their unique identifier
|
|
8
|
+
|
|
9
|
+
- Add `get-task-by-id` MCP tool that retrieves a specific task by its ID
|
|
10
|
+
- Add `getTaskByIdSchema` with taskId parameter validation
|
|
11
|
+
- Return complete task object if found, null if not found
|
|
12
|
+
- Follow standard tool patterns for authentication, error handling, and logging
|
|
13
|
+
- Update documentation in README.md and CLAUDE.md
|
|
14
|
+
- Maintain consistent JSON response format for single object retrieval
|
|
15
|
+
|
|
16
|
+
## 0.6.0
|
|
17
|
+
|
|
18
|
+
### Minor Changes
|
|
19
|
+
|
|
20
|
+
- 7c90fef: feat: add update-task-backlog tool for moving tasks to backlog
|
|
21
|
+
|
|
22
|
+
- Add new update-task-backlog tool that moves tasks to the backlog
|
|
23
|
+
- Update updateTaskSnoozeDateSchema to require newDay parameter
|
|
24
|
+
- Add comprehensive test coverage for the new tool
|
|
25
|
+
- Update documentation in README.md and CLAUDE.md
|
|
26
|
+
|
|
3
27
|
## 0.5.2
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/CLAUDE.md
CHANGED
|
@@ -126,8 +126,8 @@ Optional:
|
|
|
126
126
|
|
|
127
127
|
### Task Operations
|
|
128
128
|
Full CRUD support:
|
|
129
|
-
- **Read**: `get-tasks-by-day`, `get-tasks-backlog`, `get-archived-tasks`, `get-streams`
|
|
130
|
-
- **Write**: `create-task`, `update-task-complete`, `delete-task`
|
|
129
|
+
- **Read**: `get-tasks-by-day`, `get-tasks-backlog`, `get-archived-tasks`, `get-task-by-id`, `get-streams`
|
|
130
|
+
- **Write**: `create-task`, `update-task-complete`, `update-task-snooze-date`, `update-task-backlog`, `delete-task`
|
|
131
131
|
|
|
132
132
|
Task read operations support response trimming. `get-tasks-by-day` includes completion filtering. `get-archived-tasks` includes enhanced pagination with hasMore flag for LLM decision-making.
|
|
133
133
|
|
package/README.md
CHANGED
|
@@ -92,8 +92,10 @@ Add this configuration to your Claude Desktop MCP settings:
|
|
|
92
92
|
- `get-tasks-by-day` - Get tasks for a specific day with completion filtering
|
|
93
93
|
- `get-tasks-backlog` - Get backlog tasks
|
|
94
94
|
- `get-archived-tasks` - Get archived tasks with pagination (includes hasMore flag for LLM context)
|
|
95
|
+
- `get-task-by-id` - Get a specific task by its ID
|
|
95
96
|
- `update-task-complete` - Mark tasks as complete
|
|
96
|
-
- `update-task-snooze-date` - Reschedule tasks to different dates
|
|
97
|
+
- `update-task-snooze-date` - Reschedule tasks to different dates
|
|
98
|
+
- `update-task-backlog` - Move tasks to the backlog
|
|
97
99
|
- `delete-task` - Delete tasks permanently
|
|
98
100
|
|
|
99
101
|
### User & Stream Operations
|
package/dist/main.js
CHANGED
|
@@ -3,7 +3,7 @@ import { FastMCP } from "fastmcp";
|
|
|
3
3
|
import { httpStreamAuthenticator } from "./auth/http.js";
|
|
4
4
|
import { initializeStdioAuth } from "./auth/stdio.js";
|
|
5
5
|
import { getTransportConfig } from "./config/transport.js";
|
|
6
|
-
import { createTaskSchema, deleteTaskSchema, getArchivedTasksSchema, getStreamsSchema, getTasksBacklogSchema, getTasksByDaySchema, getUserSchema, updateTaskCompleteSchema, updateTaskSnoozeDateSchema } from "./schemas.js";
|
|
6
|
+
import { createTaskSchema, deleteTaskSchema, getArchivedTasksSchema, getStreamsSchema, getTaskByIdSchema, getTasksBacklogSchema, getTasksByDaySchema, getUserSchema, updateTaskBacklogSchema, updateTaskCompleteSchema, updateTaskSnoozeDateSchema } from "./schemas.js";
|
|
7
7
|
import { getSunsamaClient } from "./utils/client-resolver.js";
|
|
8
8
|
import { filterTasksByCompletion } from "./utils/task-filters.js";
|
|
9
9
|
import { trimTasksForResponse } from "./utils/task-trimmer.js";
|
|
@@ -16,14 +16,14 @@ if (transportConfig.transportType === "stdio") {
|
|
|
16
16
|
}
|
|
17
17
|
const server = new FastMCP({
|
|
18
18
|
name: "Sunsama API Server",
|
|
19
|
-
version: "0.
|
|
19
|
+
version: "0.7.0",
|
|
20
20
|
instructions: `
|
|
21
21
|
This MCP server provides access to the Sunsama API for task and project management.
|
|
22
22
|
|
|
23
23
|
Available tools:
|
|
24
24
|
- Authentication: login, logout, check authentication status
|
|
25
25
|
- User operations: get current user information
|
|
26
|
-
- Task operations: get tasks by day, get backlog tasks, get archived tasks
|
|
26
|
+
- Task operations: get tasks by day, get backlog tasks, get archived tasks, get task by ID
|
|
27
27
|
- Stream operations: get streams/channels for the user's group
|
|
28
28
|
|
|
29
29
|
Authentication is required for all operations. You can either:
|
|
@@ -210,6 +210,57 @@ ${toTsv(trimmedTasks)}`;
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
});
|
|
213
|
+
server.addTool({
|
|
214
|
+
name: "get-task-by-id",
|
|
215
|
+
description: "Get a specific task by its ID",
|
|
216
|
+
parameters: getTaskByIdSchema,
|
|
217
|
+
execute: async (args, { session, log }) => {
|
|
218
|
+
try {
|
|
219
|
+
const { taskId } = args;
|
|
220
|
+
log.info("Getting task by ID", {
|
|
221
|
+
taskId: taskId
|
|
222
|
+
});
|
|
223
|
+
// Get the appropriate client based on transport type
|
|
224
|
+
const sunsamaClient = getSunsamaClient(session);
|
|
225
|
+
// Get the specific task by ID
|
|
226
|
+
const task = await sunsamaClient.getTaskById(taskId);
|
|
227
|
+
if (task) {
|
|
228
|
+
log.info("Successfully retrieved task by ID", {
|
|
229
|
+
taskId: taskId,
|
|
230
|
+
taskText: task.text
|
|
231
|
+
});
|
|
232
|
+
return {
|
|
233
|
+
content: [
|
|
234
|
+
{
|
|
235
|
+
type: "text",
|
|
236
|
+
text: JSON.stringify(task, null, 2)
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
log.info("Task not found", {
|
|
243
|
+
taskId: taskId
|
|
244
|
+
});
|
|
245
|
+
return {
|
|
246
|
+
content: [
|
|
247
|
+
{
|
|
248
|
+
type: "text",
|
|
249
|
+
text: "null"
|
|
250
|
+
}
|
|
251
|
+
]
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
log.error("Failed to get task by ID", {
|
|
257
|
+
taskId: args.taskId,
|
|
258
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
259
|
+
});
|
|
260
|
+
throw new Error(`Failed to get task by ID: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
});
|
|
213
264
|
// Task Mutation Operations
|
|
214
265
|
server.addTool({
|
|
215
266
|
name: "create-task",
|
|
@@ -420,6 +471,56 @@ server.addTool({
|
|
|
420
471
|
}
|
|
421
472
|
}
|
|
422
473
|
});
|
|
474
|
+
server.addTool({
|
|
475
|
+
name: "update-task-backlog",
|
|
476
|
+
description: "Move a task to the backlog",
|
|
477
|
+
parameters: updateTaskBacklogSchema,
|
|
478
|
+
execute: async (args, { session, log }) => {
|
|
479
|
+
try {
|
|
480
|
+
// Extract parameters
|
|
481
|
+
const { taskId, timezone, limitResponsePayload } = args;
|
|
482
|
+
log.info("Moving task to backlog", {
|
|
483
|
+
taskId: taskId,
|
|
484
|
+
timezone: timezone,
|
|
485
|
+
limitResponsePayload: limitResponsePayload
|
|
486
|
+
});
|
|
487
|
+
// Get the appropriate client based on transport type
|
|
488
|
+
const sunsamaClient = getSunsamaClient(session);
|
|
489
|
+
// Build options object
|
|
490
|
+
const options = {};
|
|
491
|
+
if (timezone)
|
|
492
|
+
options.timezone = timezone;
|
|
493
|
+
if (limitResponsePayload !== undefined)
|
|
494
|
+
options.limitResponsePayload = limitResponsePayload;
|
|
495
|
+
// Call sunsamaClient.updateTaskSnoozeDate(taskId, null, options) to move to backlog
|
|
496
|
+
const result = await sunsamaClient.updateTaskSnoozeDate(taskId, null, options);
|
|
497
|
+
log.info("Successfully moved task to backlog", {
|
|
498
|
+
taskId: taskId,
|
|
499
|
+
success: result.success
|
|
500
|
+
});
|
|
501
|
+
return {
|
|
502
|
+
content: [
|
|
503
|
+
{
|
|
504
|
+
type: "text",
|
|
505
|
+
text: JSON.stringify({
|
|
506
|
+
success: result.success,
|
|
507
|
+
taskId: taskId,
|
|
508
|
+
movedToBacklog: true,
|
|
509
|
+
updatedFields: result.updatedFields
|
|
510
|
+
})
|
|
511
|
+
}
|
|
512
|
+
]
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
catch (error) {
|
|
516
|
+
log.error("Failed to move task to backlog", {
|
|
517
|
+
taskId: args.taskId,
|
|
518
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
519
|
+
});
|
|
520
|
+
throw new Error(`Failed to move task to backlog: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
});
|
|
423
524
|
// Stream Operations
|
|
424
525
|
server.addTool({
|
|
425
526
|
name: "get-streams",
|
|
@@ -511,6 +612,11 @@ Uses HTTP Basic Auth headers (per-request authentication):
|
|
|
511
612
|
- Returns: TSV of trimmed archived Task objects with pagination metadata header
|
|
512
613
|
- Pagination: Uses limit+1 pattern to determine if more results are available
|
|
513
614
|
|
|
615
|
+
- **get-task-by-id**: Get a specific task by its ID
|
|
616
|
+
- Parameters:
|
|
617
|
+
- \`taskId\` (required): The ID of the task to retrieve
|
|
618
|
+
- Returns: JSON with complete Task object if found, or null if not found
|
|
619
|
+
|
|
514
620
|
- **create-task**: Create a new task with optional properties
|
|
515
621
|
- Parameters:
|
|
516
622
|
- \`text\` (required): Task title/description
|
package/dist/schemas.d.ts
CHANGED
|
@@ -27,6 +27,13 @@ export declare const getArchivedTasksSchema: z.ZodObject<{
|
|
|
27
27
|
offset?: number | undefined;
|
|
28
28
|
limit?: number | undefined;
|
|
29
29
|
}>;
|
|
30
|
+
export declare const getTaskByIdSchema: z.ZodObject<{
|
|
31
|
+
taskId: z.ZodString;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
taskId: string;
|
|
34
|
+
}, {
|
|
35
|
+
taskId: string;
|
|
36
|
+
}>;
|
|
30
37
|
/**
|
|
31
38
|
* User Operation Schemas
|
|
32
39
|
*/
|
|
@@ -49,22 +56,22 @@ export declare const createTaskSchema: z.ZodObject<{
|
|
|
49
56
|
taskId: z.ZodOptional<z.ZodString>;
|
|
50
57
|
}, "strip", z.ZodTypeAny, {
|
|
51
58
|
text: string;
|
|
59
|
+
taskId?: string | undefined;
|
|
52
60
|
notes?: string | undefined;
|
|
53
61
|
streamIds?: string[] | undefined;
|
|
54
62
|
timeEstimate?: number | undefined;
|
|
55
63
|
dueDate?: string | undefined;
|
|
56
64
|
snoozeUntil?: string | undefined;
|
|
57
65
|
private?: boolean | undefined;
|
|
58
|
-
taskId?: string | undefined;
|
|
59
66
|
}, {
|
|
60
67
|
text: string;
|
|
68
|
+
taskId?: string | undefined;
|
|
61
69
|
notes?: string | undefined;
|
|
62
70
|
streamIds?: string[] | undefined;
|
|
63
71
|
timeEstimate?: number | undefined;
|
|
64
72
|
dueDate?: string | undefined;
|
|
65
73
|
snoozeUntil?: string | undefined;
|
|
66
74
|
private?: boolean | undefined;
|
|
67
|
-
taskId?: string | undefined;
|
|
68
75
|
}>;
|
|
69
76
|
export declare const updateTaskCompleteSchema: z.ZodObject<{
|
|
70
77
|
taskId: z.ZodString;
|
|
@@ -94,17 +101,30 @@ export declare const deleteTaskSchema: z.ZodObject<{
|
|
|
94
101
|
}>;
|
|
95
102
|
export declare const updateTaskSnoozeDateSchema: z.ZodObject<{
|
|
96
103
|
taskId: z.ZodString;
|
|
97
|
-
newDay: z.
|
|
104
|
+
newDay: z.ZodString;
|
|
105
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
106
|
+
limitResponsePayload: z.ZodOptional<z.ZodBoolean>;
|
|
107
|
+
}, "strip", z.ZodTypeAny, {
|
|
108
|
+
taskId: string;
|
|
109
|
+
newDay: string;
|
|
110
|
+
timezone?: string | undefined;
|
|
111
|
+
limitResponsePayload?: boolean | undefined;
|
|
112
|
+
}, {
|
|
113
|
+
taskId: string;
|
|
114
|
+
newDay: string;
|
|
115
|
+
timezone?: string | undefined;
|
|
116
|
+
limitResponsePayload?: boolean | undefined;
|
|
117
|
+
}>;
|
|
118
|
+
export declare const updateTaskBacklogSchema: z.ZodObject<{
|
|
119
|
+
taskId: z.ZodString;
|
|
98
120
|
timezone: z.ZodOptional<z.ZodString>;
|
|
99
121
|
limitResponsePayload: z.ZodOptional<z.ZodBoolean>;
|
|
100
122
|
}, "strip", z.ZodTypeAny, {
|
|
101
123
|
taskId: string;
|
|
102
|
-
newDay: string | null;
|
|
103
124
|
timezone?: string | undefined;
|
|
104
125
|
limitResponsePayload?: boolean | undefined;
|
|
105
126
|
}, {
|
|
106
127
|
taskId: string;
|
|
107
|
-
newDay: string | null;
|
|
108
128
|
timezone?: string | undefined;
|
|
109
129
|
limitResponsePayload?: boolean | undefined;
|
|
110
130
|
}>;
|
|
@@ -534,6 +554,7 @@ export type CompletionFilter = z.infer<typeof completionFilterSchema>;
|
|
|
534
554
|
export type GetTasksByDayInput = z.infer<typeof getTasksByDaySchema>;
|
|
535
555
|
export type GetTasksBacklogInput = z.infer<typeof getTasksBacklogSchema>;
|
|
536
556
|
export type GetArchivedTasksInput = z.infer<typeof getArchivedTasksSchema>;
|
|
557
|
+
export type GetTaskByIdInput = z.infer<typeof getTaskByIdSchema>;
|
|
537
558
|
export type GetUserInput = z.infer<typeof getUserSchema>;
|
|
538
559
|
export type GetStreamsInput = z.infer<typeof getStreamsSchema>;
|
|
539
560
|
export type CreateTaskInput = z.infer<typeof createTaskSchema>;
|
package/dist/schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAGH,eAAO,MAAM,sBAAsB,+CAA6C,CAAC;AAGjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAGH,eAAO,MAAM,qBAAqB,gDAAe,CAAC;AAGlD,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH;;GAEG;AAGH,eAAO,MAAM,aAAa,gDAAe,CAAC;AAE1C;;GAEG;AAGH,eAAO,MAAM,gBAAgB,gDAAe,CAAC;AAE7C;;GAEG;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS3B,CAAC;AAGH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAI3B,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas.js
CHANGED
|
@@ -17,6 +17,10 @@ export const getArchivedTasksSchema = z.object({
|
|
|
17
17
|
offset: z.number().int().min(0).optional().describe("Pagination offset (defaults to 0)"),
|
|
18
18
|
limit: z.number().int().min(1).max(1000).optional().describe("Maximum number of tasks to return (defaults to 100)"),
|
|
19
19
|
});
|
|
20
|
+
// Get task by ID parameters
|
|
21
|
+
export const getTaskByIdSchema = z.object({
|
|
22
|
+
taskId: z.string().min(1, "Task ID is required").describe("The ID of the task to retrieve"),
|
|
23
|
+
});
|
|
20
24
|
/**
|
|
21
25
|
* User Operation Schemas
|
|
22
26
|
*/
|
|
@@ -56,10 +60,13 @@ export const deleteTaskSchema = z.object({
|
|
|
56
60
|
// Update task snooze date parameters
|
|
57
61
|
export const updateTaskSnoozeDateSchema = z.object({
|
|
58
62
|
taskId: z.string().min(1, "Task ID is required").describe("The ID of the task to reschedule"),
|
|
59
|
-
newDay: z.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
newDay: z.string().date("Must be a valid date in YYYY-MM-DD format").describe("Target date in YYYY-MM-DD format"),
|
|
64
|
+
timezone: z.string().optional().describe("Timezone string (e.g., 'America/New_York'). If not provided, uses user's default timezone"),
|
|
65
|
+
limitResponsePayload: z.boolean().optional().describe("Whether to limit the response payload size"),
|
|
66
|
+
});
|
|
67
|
+
// Update task backlog parameters
|
|
68
|
+
export const updateTaskBacklogSchema = z.object({
|
|
69
|
+
taskId: z.string().min(1, "Task ID is required").describe("The ID of the task to move to backlog"),
|
|
63
70
|
timezone: z.string().optional().describe("Timezone string (e.g., 'America/New_York'). If not provided, uses user's default timezone"),
|
|
64
71
|
limitResponsePayload: z.boolean().optional().describe("Whether to limit the response payload size"),
|
|
65
72
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.test.d.ts","sourceRoot":"","sources":["../src/schemas.test.ts"],"names":[],"mappings":""}
|