Skip to main content
Glama
kydycode

Enhanced Todoist MCP Server Extended

todoist_get_comment

Retrieve a specific comment from Todoist using its unique ID to access task-related notes and discussions.

Instructions

Get a specific comment by its ID

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
commentIdYesThe ID of the comment to retrieve

Implementation Reference

  • Handler implementation for the todoist_get_comment tool. Validates arguments using isCommentIdArgs, fetches the comment using todoistClient.getComment, formats it with formatComment, and returns the result or error.
    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 };
      }
    }
  • Tool schema definition including name, description, and input schema requiring commentId.
    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)
    Registration of the todoist_get_comment tool (as GET_COMMENT_TOOL) in the list of tools returned by 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 helper function used to validate input arguments for the todoist_get_comment tool.
    function isCommentIdArgs(args: unknown): args is {
      commentId: string;
    } {
      return (
        typeof args === "object" &&
        args !== null &&
        "commentId" in args &&
        typeof (args as { commentId: string }).commentId === "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