createTaskList
Generate and manage task lists on the godspeed-mcp server by defining a name and optional list ID to organize tasks efficiently.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| empty_list_id | No | list_98765zyxwvu43210 | |
| name | Yes |
Implementation Reference
- src/index.ts:283-301 (registration)Registration of the 'createTaskList' MCP tool, including input schema (name: string, empty_list_id: string optional with default) and inline handler that duplicates an empty task list using GodspeedAPI.duplicateList and returns JSON result.server.tool( "createTaskList", { name: z.string(), empty_list_id: emptyListId ? z.string().default(emptyListId) : z.string() }, async ({ name, empty_list_id }) => { try { const result = await godspeedApi.duplicateList(empty_list_id, { name }); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: `Error: ${error instanceof Error ? error.message : String(error)}` }] }; } } );
- src/godspeed.ts:292-316 (helper)Core helper function in GodspeedAPI for duplicating a task list via POST to /lists/{listId}/duplicate endpoint, called by the createTaskList tool handler.async duplicateList(listId: string, params?: DuplicateListParams): Promise<ApiResponse<TaskList>> { try { if (!listId) { throw new Error('List ID is required'); } const headers = this.getAuthHeaders(); const response = await fetch(`${API_BASE_URL}/lists/${listId}/duplicate`, { method: 'POST', headers, body: JSON.stringify(params || {}), }); const data = await response.json(); if (!response.ok) { throw new Error(data.error || 'Failed to duplicate list'); } return data; } catch (error) { throw new Error(`Duplicate list error: ${error instanceof Error ? error.message : String(error)}`); } }
- src/types.ts:99-101 (schema)Type definition for DuplicateListParams used in the duplicateList helper, specifying optional 'name' for the new duplicated list.export interface DuplicateListParams { name?: string; }