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 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 or move to backlog
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.5.2",
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.ZodUnion<[z.ZodString, z.ZodNull]>;
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>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
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.union([
60
- z.string().date("Must be a valid date in YYYY-MM-DD format"),
61
- z.null()
62
- ]).describe("Target date in YYYY-MM-DD format, or null to move to backlog"),
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schemas.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.test.d.ts","sourceRoot":"","sources":["../src/schemas.test.ts"],"names":[],"mappings":""}