Skip to main content
Glama
kydycode

Enhanced Todoist MCP Server Extended

todoist_get_comment

Retrieve a specific Todoist comment by its ID using the Enhanced Todoist MCP Server Extended, ensuring precise access to task-related feedback or notes for better task management.

Instructions

Get a specific comment by its ID

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
commentIdYesThe ID of the comment to retrieve

Implementation Reference

  • Executes the tool by calling todoistClient.getComment with the provided commentId, formats the result using formatComment, and returns it in the response format. Handles validation with isCommentIdArgs and errors.
    if (name === "todoist_get_comment") { if (!isCommentIdArgs(args)) { return { content: [{ type: "text", text: "Invalid arguments for get_comment" }], isError: true }; } try { const comment = await todoistClient.getComment(args.commentId); return { content: [{ type: "text", text: `Comment details:\n${formatComment(comment)}` }], isError: false }; } catch (error: any) { return { content: [{ type: "text", text: `Error getting comment: ${error.message}` }], isError: true }; } }
  • Defines the Tool object with name, description, and inputSchema requiring a commentId string.
    const GET_COMMENT_TOOL: Tool = { name: "todoist_get_comment", description: "Get a specific comment by its ID", inputSchema: { type: "object", properties: { commentId: { type: "string", description: "The ID of the comment to retrieve" } }, required: ["commentId"] } };
  • src/index.ts:1083-1121 (registration)
    Registers the GET_COMMENT_TOOL in the list of available tools returned by ListToolsRequestHandler.
    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, ], }));
  • 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; }
  • Type guard function to validate input arguments contain a valid commentId string.
    function isCommentIdArgs(args: unknown): args is { commentId: string; } { return ( typeof args === "object" && args !== null && "commentId" in args && typeof (args as { commentId: string }).commentId === "string" ); }

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