christulino/todoist-v1-mcp-server

🏢 Workplace & Productivity🟢 Verified Active
0 Views
0 Installs

📇 🏠 - MCP server for Todoist built on the unified API v1. Stdio transport, 20 tools covering tasks, projects, sections, and labels. No daily reconnection issues.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "christulino-todoist-v1-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "christulino-todoist-v1-mcp-server"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

todoist-v1-mcp-server

A clean, reliable MCP (Model Context Protocol) server for Todoist — built on the Todoist unified API v1.

Why this exists

The official Todoist web MCP (todoist-ai) has a known persistent disconnection bug on the Anthropic side that requires reconnecting daily. Community alternatives are either built on the deprecated REST API v2 or have schema validation bugs that cause failures when Todoist returns additional fields as their API evolves.

This server:

  • Targets the current Todoist API v1 (not deprecated v2)
  • Uses stdio transport — no cloud dependency, no daily reconnections
  • Uses the modern MCP SDK registerTool() API (not the deprecated setRequestHandler pattern)
  • Never enforces strict output schemas on API responses — Todoist can add new fields freely without breaking anything
  • Zero SDK wrapper dependency — direct HTTP calls via axios, so there's no intermediary library drifting from the API

Tools (31 total)

Tasks

ToolDescription
todoist_get_tasksList/filter tasks — supports Todoist filter strings like "today", "overdue", "p1", "#ProjectName", "7 days"
todoist_get_taskGet a single task by ID
todoist_create_taskCreate a task with natural language due dates ("tomorrow", "every monday", etc.)
todoist_update_taskUpdate any field; pass clear_due_date: true to remove a due date
todoist_complete_taskMark a task as done
todoist_reopen_taskReopen a completed task
todoist_delete_taskPermanently delete a task

Projects

ToolDescription
todoist_get_projectsList all projects
todoist_get_projectGet a single project by ID
todoist_create_projectCreate a project (with color, view style, parent)
todoist_update_projectUpdate a project
todoist_delete_projectPermanently delete a project and all its tasks

Sections

ToolDescription
todoist_get_sectionsList sections within a project
todoist_create_sectionCreate a section
todoist_update_sectionRename a section
todoist_delete_sectionDelete a section

Labels

ToolDescription
todoist_get_labelsList all personal labels
todoist_create_labelCreate a label
todoist_update_labelUpdate a label
todoist_delete_labelDelete a label

Comments

ToolDescription
todoist_get_commentsList comments on a task or project (paginated)
todoist_get_commentGet a single comment by ID
todoist_create_commentAdd a comment to a task or project (Markdown supported)
todoist_update_commentEdit an existing comment's content
todoist_delete_commentPermanently delete a comment

Completed tasks (Pro)

ToolDescription
todoist_get_completed_tasksQuery completed tasks by completion date (≤3mo) or due date (≤6wk). Pro-only.

Reminders (Pro)

ToolDescription
todoist_get_remindersList reminders, optionally filtered by task_id. Pro-only.
todoist_get_reminderGet a single reminder by ID. Pro-only.
todoist_create_reminderCreate a relative (minute_offset before due) or absolute reminder. Pro-only.
todoist_update_reminderUpdate reminder timing or notification service. Pro-only.
todoist_delete_reminderPermanently delete a reminder. Pro-only.

Pro-tier handling: Reminders and completed-task queries require a Todoist Pro subscription. If the API returns a Pro-gate error (HTTP 402, or 403 with a premium/pro/upgrade/paid/subscription keyword), the server returns a clean message explaining the feature requires Pro rather than leaking the raw API error.

Setup

1. Get your Todoist API token

Go to Todoist → Settings → Integrations → Developer and copy your API token.

2. Install and build

git clone https://github.com/christulino/todoist-v1-mcp-server
cd todoist-v1-mcp-server
npm install
npm run build

3. Configure Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "todoist": {
      "command": "node",
      "args": ["/absolute/path/to/todoist-v1-mcp-server/dist/index.js"],
      "env": {
        "TODOIST_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Restart Claude Desktop. You should see "todoist" in the connected MCP servers.

4. Configure Claude Code (optional)

claude mcp add todoist -- node /absolute/path/to/todoist-v1-mcp-server/dist/index.js

Then set the env var:

export TODOIST_API_TOKEN=your_api_token_here

Or add it to your shell profile.

Usage examples

Once connected, Claude can handle natural language like:

  • "What's on my plate today?" → uses todoist_get_tasks with filter: "today"
  • "Add a task to call the dentist next Tuesday" → uses todoist_create_task
  • "Mark the dentist task as done" → uses todoist_complete_task
  • "Show me everything overdue" → uses todoist_get_tasks with filter: "overdue"
  • "Create a project called Home Renovation" → uses todoist_create_project
  • "What projects do I have?" → uses todoist_get_projects

Todoist filter syntax

The filter parameter in todoist_get_tasks supports Todoist's full natural language filter syntax:

FilterMeaning
todayDue today
overduePast due
7 daysDue in the next 7 days
p1Priority urgent
#ProjectNameTasks in a specific project
@labelnameTasks with a specific label
no due dateTasks without a due date
today | overdueToday or overdue (combine with |)
today & @waitingToday AND labeled 'waiting'

Full filter documentation: https://todoist.com/help/articles/introduction-to-filters

Requirements

  • Node.js 18+
  • A Todoist account (free tier works)

Development

npm run dev   # tsx watch mode with auto-reload
npm run build # compile TypeScript
npm start     # run compiled server

Testing

The test suite hits the live Todoist API and runs a full CRUD cycle across tasks, projects, sections, labels, comments, and reminders, plus a read-only smoke test for completed-task querying. Reminders and completed-task tests detect Pro-tier gating (HTTP 402/403) and report cleanly when the account is on the Free tier. All test data is prefixed with [mcp-test] and cleaned up automatically.

TODOIST_API_TOKEN=your_token npm test

Your API token is at Todoist → Settings → Integrations → Developer — same token you put in claude_desktop_config.json.

Contributing

PRs welcome. The goal is a minimal, correct implementation that stays current with the Todoist API v1. Priorities:

  1. Correctness over cleverness
  2. Permissive output handling (never reject unknown API fields)
  3. Helpful error messages that tell you what went wrong and how to fix it

License

MIT

Related MCP Servers

6figr-com/jobgpt-mcp-server

📇 ☁️ 🏠 🍎 🪟 🐧 - MCP server for JobGPT — search jobs, auto-apply, generate tailored resumes, track applications, and find recruiters from any MCP client. 34 tools for job search, applications, resumes, and outreach.

🏢 Workplace & Productivity0 views
Agentled/mcp-server

📇 ☁️ - AI-native workflow orchestration with long-term memory, 100+ integrations, and unified credits. 32 MCP tools for building and running intelligent business workflows — lead enrichment, content publishing, company research, media production, and more. Knowledge Graph that learns across executions.

🏢 Workplace & Productivity0 views
alex13slem/openproject-codex-plugin

📇 ☁️ 🏠 🍎 🪟 🐧 - Write-capable MCP server for OpenProject API v3 with Community Edition support. Search, create, update, assign, prioritize, and comment on work packages. Published as io.github.alex13slem/openproject in the official MCP Registry and installable with npx -y openproject-codex-plugin.

🏢 Workplace & Productivity0 views
ap311036/ews-meeting-mcp

🐍 🏠 🍎 🪟 🐧 - Safely schedule Outlook meetings on on-prem Exchange EWS. Resolves attendees, discovers rooms, suggests slots, and requires preview-confirmed create/update/cancel writes with local credential handling and audit-friendly lifecycle records.

🏢 Workplace & Productivity0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Active

Recent health check succeeded.

Last checked: 7/28/2026, 9:14:35 PM

Unclaimed listing (imported or pending owner verification). Claim it →
★ Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.