Skip to main content
Glama
kydycode

Enhanced Todoist MCP Server Extended

todoist_update_comment

Modify existing comments in Todoist by specifying their ID and providing updated content using the Enhanced Todoist MCP Server Extended integration.

Instructions

Update an existing comment by its ID

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
commentIdYesThe ID of the comment to update
contentYesNew content/text for the comment

Implementation Reference

  • Executes the tool by validating arguments with isUpdateCommentArgs, extracting commentId and content, calling todoistClient.updateComment, formatting the result with formatComment, and returning success or error response.
    if (name === "todoist_update_comment") { if (!isUpdateCommentArgs(args)) { return { content: [{ type: "text", text: "Invalid arguments for update_comment" }], isError: true }; } try { const { commentId, ...updateArgs } = args; const updatedComment = await todoistClient.updateComment(commentId, updateArgs); return { content: [{ type: "text", text: `Comment updated:\n${formatComment(updatedComment)}` }], isError: false }; } catch (error: any) { return { content: [{ type: "text", text: `Error updating comment: ${error.message}` }], isError: true }; } }
  • Defines the Tool object with name, description, and inputSchema specifying required commentId and content parameters.
    const UPDATE_COMMENT_TOOL: Tool = { name: "todoist_update_comment", description: "Update an existing comment by its ID", inputSchema: { type: "object", properties: { commentId: { type: "string", description: "The ID of the comment to update" }, content: { type: "string", description: "New content/text for the comment" } }, required: ["commentId", "content"] } };
  • src/index.ts:1083-1121 (registration)
    Registers the UPDATE_COMMENT_TOOL in the list of available tools returned by the ListToolsRequestSchema handler.
    server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ // Task tools CREATE_TASK_TOOL, QUICK_ADD_TASK_TOOL, GET_TASKS_TOOL, GET_TASK_TOOL, UPDATE_TASK_TOOL, DELETE_TASK_TOOL, COMPLETE_TASK_TOOL, REOPEN_TASK_TOOL, SEARCH_TASKS_TOOL, MOVE_TASK_TOOL, BULK_MOVE_TASKS_TOOL, // Project tools GET_PROJECTS_TOOL, GET_PROJECT_TOOL, CREATE_PROJECT_TOOL, UPDATE_PROJECT_TOOL, DELETE_PROJECT_TOOL, // Section tools GET_SECTIONS_TOOL, CREATE_SECTION_TOOL, UPDATE_SECTION_TOOL, DELETE_SECTION_TOOL, // Label tools CREATE_LABEL_TOOL, GET_LABEL_TOOL, GET_LABELS_TOOL, UPDATE_LABEL_TOOL, DELETE_LABEL_TOOL, // Comment tools CREATE_COMMENT_TOOL, GET_COMMENT_TOOL, GET_COMMENTS_TOOL, UPDATE_COMMENT_TOOL, DELETE_COMMENT_TOOL, ], }));
  • Type guard function to validate input arguments for the todoist_update_comment tool.
    function isUpdateCommentArgs(args: unknown): args is { commentId: string; content: string; } { return ( typeof args === "object" && args !== null && "commentId" in args && "content" in args && typeof (args as { commentId: string; content: string }).commentId === "string" && typeof (args as { commentId: string; content: string }).content === "string" ); }
  • Helper function to format comment details for output in the tool response.
    function formatComment(comment: any): string { let commentDetails = `- ID: ${comment.id}\n Content: ${comment.content}`; if (comment.postedAt) commentDetails += `\n Posted At: ${comment.postedAt}`; if (comment.taskId) commentDetails += `\n Task ID: ${comment.taskId}`; if (comment.projectId) commentDetails += `\n Project ID: ${comment.projectId}`; if (comment.attachment) { commentDetails += `\n Attachment: ${comment.attachment.fileName || 'File'} (${comment.attachment.fileType})`; if (comment.attachment.fileUrl) commentDetails += `\n File URL: ${comment.attachment.fileUrl}`; } return commentDetails; }

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/kydycode/todoist-mcp-server-ext'

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