{
  "info": {
    "name": "Todoist — mcp.ai",
    "description": "REST API for the Todoist MCP. Set {{apiKey}} to a workspace key (sk_live_…) created at https://mcp.ai/settings/api-keys.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mcp.ai/api/todoist",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "todoist_add_workspace",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/add/workspace",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "add",
            "workspace"
          ]
        },
        "description": "Tool to create a new workspace in todoist. use when you need a separate workspace to organize projects. generates uuid and temp id automatically.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"icon\": \"\",\n  \"name\": \"\",\n  \"uuid\": \"\",\n  \"color\": 0,\n  \"temp_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_close_task",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/close/task",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "close",
            "task"
          ]
        },
        "description": "This tool marks an existing task as completed in todoist. it requires the `task id` of the task to be closed.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"task_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_create_comment",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/comment",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "comment"
          ]
        },
        "description": "Tool to create a new comment in todoist. use when you need to add a note to a specific task or project after confirming its id.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"content\": \"\",\n  \"task_id\": \"\",\n  \"project_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_create_label",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/label",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "label"
          ]
        },
        "description": "Creates a new label.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"color\": 0,\n  \"order\": 0,\n  \"is_favorite\": false\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_create_project",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/project",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "project"
          ]
        },
        "description": "Creates a new project in todoist.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"color\": \"\",\n  \"favorite\": false,\n  \"parent_id\": \"\",\n  \"view_style\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_create_section",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/section",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "section"
          ]
        },
        "description": "Tool to create a new section within a specific project. use when you need to group tasks under a new heading in a project.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"order\": 0,\n  \"project_id\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_create_task",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/task",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "task"
          ]
        },
        "description": "Create a new task in todoist. this action allows users to create tasks with various parameters including content, due dates, priority, and more. the task can be created in a specific project, section,",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"order\": 0,\n  \"labels\": \"\",\n  \"content\": \"\",\n  \"due_date\": \"\",\n  \"due_lang\": \"\",\n  \"duration\": 0,\n  \"priority\": 0,\n  \"parent_id\": \"\",\n  \"due_string\": \"\",\n  \"project_id\": \"\",\n  \"section_id\": \"\",\n  \"assignee_id\": \"\",\n  \"description\": \"\",\n  \"due_datetime\": \"\",\n  \"duration_unit\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_delete_label",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/label",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "label"
          ]
        },
        "description": "Tool to delete a specific label. use when you need to permanently remove an unused label by its id after confirming it's not in use. example: \"delete label with id 2298391482\".",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"label_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_delete_project",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/project",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "project"
          ]
        },
        "description": "Tool to delete a specific todoist project. use when you need to permanently remove a project by its id.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"project_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_delete_section",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/section",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "section"
          ]
        },
        "description": "Tool to delete a specific section. use when you need to permanently remove an unused section by its id after confirming it's not in use. example: \"delete section with id 82181370\".",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"section_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_delete_task",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/task",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "task"
          ]
        },
        "description": "Delete a task from todoist. this action permanently removes the task and all its subtasks.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"task_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_all_comments",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/all/comments",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "all",
            "comments"
          ]
        },
        "description": "This tool retrieves all comments associated with a specific task or project in todoist. it requires either a task id or a project id to fetch the comments, and it returns a json array of comment objec",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"task_id\": \"\",\n  \"project_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_all_labels",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/all/labels",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "all",
            "labels"
          ]
        },
        "description": "Get all personal labels from todoist. this action retrieves all personal labels from a user's todoist account. each label contains information like name, color, order and favorite status. api document",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_all_projects",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/all/projects",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "all",
            "projects"
          ]
        },
        "description": "Get all projects from a user's todoist account. this tool retrieves all projects from the authenticated user's todoist account. the response includes details like project id, name, color, parent proje",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_all_sections",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/all/sections",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "all",
            "sections"
          ]
        },
        "description": "Tool to retrieve all sections for a specific project in todoist. use when you need to list section structure within a project after selecting the project.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"project_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_all_tasks",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/all/tasks",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "all",
            "tasks"
          ]
        },
        "description": "Fetches all tasks from todoist and returns their details.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"ids\": \"\",\n  \"lang\": \"\",\n  \"filter\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_backups",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/backups",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "backups"
          ]
        },
        "description": "Tool to list all available backup archives for the user. use when you need to retrieve and review all existing backups.",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_comment",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/comment",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "comment"
          ]
        },
        "description": "Tool to retrieve details of a specific comment by its comment id. use when you need full information (content, timestamp, or attachment) about a known comment.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"comment_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_label",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/label",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "label"
          ]
        },
        "description": "Tool to retrieve a specific label by its id. use when you need detailed info about a label after you have its id.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_project",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/project",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "project"
          ]
        },
        "description": "Tool to retrieve a specific project by its id. use when you have a project id and need its metadata before display or update.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"project_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_section",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/section",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "section"
          ]
        },
        "description": "Tool to retrieve a specific section by its id. use when you have a section id and need its metadata before display or update.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"section_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_special_backups",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/special/backups",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "special",
            "backups"
          ]
        },
        "description": "Tool to list special backup archives for the user. use when you need to retrieve all project backups for the authenticated user after creating or managing projects.",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_get_task",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/task",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "task"
          ]
        },
        "description": "Tool to retrieve a specific task by its id. use when you need to fetch all details of an existing task before processing or display.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"task_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_list_archived_workspace_projects",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/archived/workspace/projects",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "archived",
            "workspace",
            "projects"
          ]
        },
        "description": "Tool to list all archived projects in a workspace. use when you need to retrieve archived workspace projects with optional filters or pagination.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"since\": \"\",\n  \"until\": \"\",\n  \"offset\": 0,\n  \"project_ids\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_list_filters",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/filters",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "filters"
          ]
        },
        "description": "Tool to list all filters for the authenticated user. use when you need to retrieve the current set of custom filters.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"sync_token\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_list_pending_workspace_invitations",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/pending/workspace/invitations",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "pending",
            "workspace",
            "invitations"
          ]
        },
        "description": "Tool to list pending invitation emails in a workspace. use when you need to check which email invites are still pending acceptance in a workspace.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"workspace_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_reopen_task",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/reopen/task",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "reopen",
            "task"
          ]
        },
        "description": "This tool reopens a previously completed task.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"task_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_update_comment",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/comment",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "comment"
          ]
        },
        "description": "Tool to update a specific comment's content. use when you need to correct or clarify an existing comment after confirming its id and the new text.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"content\": \"\",\n  \"comment_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_update_project",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/project",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "project"
          ]
        },
        "description": "Tool to update a specific project's attributes such as name, color, indent, and order. use when you need to rename or reorder a project after reviewing its current settings. example: \"update project 2",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"color\": 0,\n  \"order\": 0,\n  \"indent\": 0,\n  \"project_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_update_section",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/section",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "section"
          ]
        },
        "description": "Tool to update a specific section's attributes such as name and order. use when you need to rename or reorder a section after confirming its id.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"order\": 0,\n  \"section_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "todoist_update_task",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/task",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "task"
          ]
        },
        "description": "Tool to update an existing task's properties. use when you need to modify a task's details after confirming its id and new values.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"content\": \"\",\n  \"task_id\": \"\",\n  \"due_date\": \"\",\n  \"due_lang\": \"\",\n  \"priority\": 0,\n  \"label_ids\": \"\",\n  \"due_string\": \"\",\n  \"assignee_id\": \"\",\n  \"description\": \"\",\n  \"due_datetime\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}