Todoist

live Utility

Todoist MCP Pack

5 tools
0ms auth
free tier 50 calls/day

Tools

todoist_list_projects

List all projects in the user's Todoist account. Returns each project's id, name, color, favorite status, web URL, and parent project id. Use to discover projects and their ids before listing tasks or

No parameters required.

Try it
todoist_list_tasks

List active (incomplete) tasks / to-do items from Todoist. Optionally filter by a project id, or by a Todoist filter query (a powerful query language, e.g. "today | overdue", "p1 & #Work", "no date").

No parameters required.

Try it
todoist_get_task

Get the full details of a single Todoist task / to-do item by its id, including content, description, project id, section id, priority, due date/datetime, labels, web URL, and creation time. Use after

No parameters required.

Try it
todoist_list_sections

List the sections within a Todoist project. Sections group tasks inside a project. Returns each section's id, project id, name, and order. Use to understand how tasks in a project are organized.

No parameters required.

Try it
todoist_list_labels

List all personal labels in the user's Todoist account. Labels are tags applied to tasks. Returns each label's id, name, color, and favorite status. Use to discover labels for filtering or interpretin

No parameters required.

Try it

Test with curl

The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/todoist/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/todoist/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"todoist_list_projects","arguments":{}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("todoist_list_projects", {});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("todoist mcp pack");