Skip to main content
Glama

update-task-notes

Modify task notes content in Sunsama to update descriptions, add details, or revise information for better task management and clarity.

Instructions

Update the notes content for a task

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The core handler implementation for the 'update-task-notes' tool. Handles input validation (via schema), constructs notes content from HTML or Markdown, calls the Sunsama client API to update notes, and returns a formatted JSON response.
    export const updateTaskNotesTool = withTransportClient({ name: "update-task-notes", description: "Update the notes content for a task", parameters: updateTaskNotesSchema, execute: async ( { taskId, html, markdown, limitResponsePayload }: UpdateTaskNotesInput, context: ToolContext, ) => { const content = html ? { type: "html" as const, value: html } : { type: "markdown" as const, value: markdown! }; const options: { limitResponsePayload?: boolean } = {}; if (limitResponsePayload !== undefined) { options.limitResponsePayload = limitResponsePayload; } const apiContent = content.type === "html" ? { html: content.value } : { markdown: content.value }; const result = await context.client.updateTaskNotes( taskId, apiContent, options, ); return formatJsonResponse({ success: result.success, taskId, notesUpdated: true, updatedFields: result.updatedFields, }); }, });
  • Zod schema for input validation of the update-task-notes tool, ensuring taskId is provided and exactly one of html or markdown is specified.
    export const updateTaskNotesSchema = z.object({ taskId: z.string().min(1, "Task ID is required").describe( "The ID of the task to update notes for", ), html: z.string().optional().describe( "HTML content for the task notes (mutually exclusive with markdown)", ), markdown: z.string().optional().describe( "Markdown content for the task notes (mutually exclusive with html)", ), limitResponsePayload: z.boolean().optional().describe( "Whether to limit the response payload size (defaults to true)", ), }).refine( (data) => { // Exactly one of html or markdown must be provided const hasHtml = data.html !== undefined; const hasMarkdown = data.markdown !== undefined; return hasHtml !== hasMarkdown; // XOR: exactly one must be true }, { message: "Exactly one of 'html' or 'markdown' must be provided", path: [], // This will show the error at the root level }, );
  • src/tools/index.ts:1-9 (registration)
    Top-level registration exporting allTools array which spreads taskTools containing the update-task-notes tool.
    import { userTools } from "./user-tools.js"; import { taskTools } from "./task-tools.js"; import { streamTools } from "./stream-tools.js"; export const allTools = [ ...userTools, ...taskTools, ...streamTools, ];
  • Registration of updateTaskNotesTool within the taskTools array exported from task-tools.ts.
    export const taskTools = [ // Query tools getTasksBacklogTool, getTasksByDayTool, getArchivedTasksTool, getTaskByIdTool, // Lifecycle tools createTaskTool, deleteTaskTool, // Update tools updateTaskCompleteTool, updateTaskSnoozeDateTool, updateTaskBacklogTool, updateTaskPlannedTimeTool, updateTaskNotesTool, updateTaskDueDateTool, updateTaskTextTool, updateTaskStreamTool, ];

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/robertn702/mcp-sunsama'

If you have feedback or need assistance with the MCP directory API, please join our Discord server