TO
OfficialProductivity

Todoist AI Agent Connector MCP Server

Enable AI agents to manage Todoist tasks on your behalf with this MCP server connector toolkit.

Overview

The Todoist AI Agent Connector MCP Server lets AI agents (LLMs and assistants) access and manage a Todoist account on behalf of a user. It provides a collection of reusable tools and a drop-in MCP (Model Context Protocol) server that exposes those tools over a streamable HTTP endpoint. The project is intended for developers who want to enable task management workflows from conversational agents, or to embed Todoist-aware tools into custom AI interfaces.

Tools are written to be reusable: they can be plugged into an MCP server, used directly inside your application, or wrapped for other AI SDKs. The server also includes compatibility helpers for OpenAI-style MCP clients and supports interactive MCP Apps (rich widgets) so responses can include structured UI components such as task lists.

Features

  • Reusable Todoist tools (search, create, update tasks) that can be run locally or exposed via MCP
  • Streamable HTTP MCP server endpoint for easy integration with modern AI clients
  • OpenAI MCP-compatible search and fetch tools (JSON-encoded results)
  • Support for MCP Apps (interactive UI widgets rendered in chat clients)
  • Tool wrappers to inject a Todoist API client into each tool
  • Local developer commands for testing, running single tools, and live development

Installation / Configuration

Install the package:

npm install @doist/todoist-ai

Run the built-in MCP server directly with npx (quick start):

npx @doist/todoist-ai

Environment

  • Set TODOIST_API_KEY to a Todoist API token for local tool runs or to test the server.
  • Use a test account or a temporary project when trying write operations.

Example: run a single tool locally (uses .env for TODOIST_API_KEY):

# Run a tool by name. Use -- to pass args to the script.
npm run tool -- findTasksByDate '{"query":"today"}'

Development / common scripts

npm start        # Build and run MCP inspector / server
npm run dev      # Development mode (auto rebuild + restart)
npm run tool:list # List available tools

Available Resources / Tools

The toolkit provides a set of tools in src/tools that implement common Todoist workflows. Example tools you’ll typically find:

  • findTasksByDate — locate tasks based on date filters
  • addTasks — create tasks from structured input
  • search / fetch — OpenAI MCP-style tools returning JSON results
  • user-info — check which Todoist account the API key is connected to

See the repository for a full, up-to-date list: https://github.com/doist/todoist-ai (browse src/tools)

MCP Apps

  • The project supports rendering MCP Apps (inline widgets) for richer output (task lists, project summaries).
  • See the docs/mcp-apps.md in the repo for details on widget structure and the build pipeline.

Integrations / Client Configuration

Primary MCP endpoint (streamable HTTP):

  • https://ai.todoist.net/mcp

Quick integration snippets

Wrap tools for any AI SDK by injecting a Todoist client:

import { findTasksByDate, addTasks } from '@doist/todoist-ai'
import { TodoistApi } from '@doist/todoist-sdk'

const todoist = new TodoistApi(process.env.TODOIST_API_KEY)

function wrapTool(tool) {
  return {
    ...tool,
    execute(args) { return tool.execute(args, todoist) },
  }
}

Client-specific configuration examples (quick reference)

ClientHow to add
Claude DesktopSettings → Connectors → Add custom connector → paste https://ai.todoist.net/mcp and follow OAuth
CursorAdd mcp.json to ~/.cursor or project with mcp-remote command args pointing to the URL
VS CodeCommand Palette → MCP: Add Server → choose HTTP and use the endpoint JSON config
Any MCP clientnpx -y mcp-remote https://ai.todoist.net/mcp

Example Cursor mcp.json:

{
  "mcpServers": {
    "todoist": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://ai.todoist.net/mcp"]
    }
  }
}

VS Code server snippet:

{
  "servers": {
    "todoist": {
      "type": "http",
      "url": "https://ai.todoist.net/mcp"
    }
  }
}

Use Cases

  • Personal assistant automation: Let a conversational agent add, reschedule, or mark tasks complete based on natural-language instructions like “move all overdue tasks for Project X to tomorrow.”
  • Meeting follow-ups: After a meeting summary, auto-create action items as Todoist tasks with due dates and assignees.
  • Inbox triage: Use an agent to parse an email or notes and create prioritized tasks with labels and estimated due dates.
  • Developer tooling: Integrate Todoist tools into a code editor assistant (VS Code/Claude/other MCP clients) so a developer can create tasks without switching context.

Concrete example — Vercel AI SDK

import { findTasksByDate, addTasks } from '@doist/todoist-ai'
import { TodoistApi } from '@doist/todoist-sdk'
import { streamText } from 'ai'

const client = new TodoistApi(process.env.TODOIST_API_KEY)
const tools = {
  findTasksByDate: wrapTool(findTasksByDate, client),
  addTasks: wrapTool(addTasks, client),
}

await streamText({ model: yourModel, system: 'You are a Todoist assistant', tools })

Safety & Development Notes

  • When running write operations, prefer a test Todoist account or a disposable project.
  • The toolkit is designed to be extensible — tools are plain modules you can import and adapt into your own AI workflows.
  • For contributor and development practices, see the repo’s CONTRIBUTING.md and docs directory.

For full documentation, advanced setup (OAuth, custom MCP servers), and the latest tool list, consult the GitHub repository: https://github.com/doist/todoist-ai.