logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

todoist-interface-adapter

A service implementation facilitating sophisticated interaction between AI agents (like Claude) and the Todoist task management platform via natural language processing. It enables comprehensive control over tasks, projects, metadata, and communication threads.

Author

todoist-interface-adapter logo

stanislavlysenko0912

MIT License

Quick Info

GitHub GitHub Stars 45
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

apisassistantsaiai assistantsassistants todoistconversational ai
todoist logo

Todoist Connector Service

This Model Context Protocol (MCP) backend bridges large language models with Todoist functionality, allowing users to manage their productivity pipeline conversationally.

Core Capabilities

  • Comprehensive API Access: Full utilization of the Todoist REST API (version 2), coupled with natural language synchronization capabilities.
  • Bulk Operations: Supports grouping multiple modifications into single client requests for efficiency.
  • Semantic Lookup: AI can retrieve items (tasks, groupings, tags) using descriptive names rather than requiring strict unique identifiers.
  • Task Lifecycle Management: Abilities include creation, modification, archival, reactivation, relocation, and removal of to-dos through conversational input.
  • Project Structuring: Tools for initializing and maintaining project hierarchies and subdivisions.
  • Annotation Handling: Functionality to append and manage notes on tasks and broader project containers.
  • Tag Management: Creation and maintenance of both personal and shared categorization tags.
  • Context Injection: Facilitates easily providing project context or structure information to the connected agent.

Setup Requirements

Operation necessitates possessing a valid Todoist authentication token.

Obtaining the Todoist API Credential

  1. Access your Todoist application interface.
  2. Navigate to user Settings, then the Integrations section.
  3. Locate and copy your assigned API access key under the Developer settings.

Configuration for Desktop Clients (e.g., Claude)

In the configuration file (claude_desktop_config.json), integrate the server definition:

{ "mcpServers": { "todoist_manager": { "command": "npx", "args": ["-y", "todoist-mcp"], "env": { "API_KEY": "your_provided_todoist_api_key_here" } } } }

Exposed Toolkit Functions

To-Do Items

  • get_tasks_list: Retrieve task datasets, optionally filtered by project, section, label, etc.
  • create_tasks: Fabricate new to-dos with specified properties.
  • get_tasks: Fetch specific to-dos based on identifier or common name.
  • update_tasks: Apply modifications to existing to-dos.
  • close_tasks: Designate tasks as completed.
  • reopen_tasks: Reverse the completion status of tasks.
  • delete_tasks: Permanently erase tasks.
  • move_tasks: Reassign tasks to a different organizational unit or subsection.

Project Containers

  • get_projects_list: Fetch inventory of all accessible projects.
  • create_projects: Instantiate novel project containers.
  • get_projects: Retrieve specific projects by unique ID or designated title.
  • update_projects: Modify project attributes.
  • delete_projects: Remove project containers.
  • get_collaborators: List users associated with a specific project.
  • move_projects: Relocate projects within the hierarchy or nest them.

Subdivisions (Sections)

  • get_sections_list: Obtain lists of sections, potentially scoped to a project.
  • create_sections: Formulate new subdivisions within projects.
  • get_sections: Retrieve particular sections via identifier or label.
  • update_sections: Adjust section characteristics.
  • delete_sections: Eliminate project subdivisions.

Annotations (Comments)

  • get_comments_list: Fetch associated discussion threads for a project or task.
  • create_comments: Inject new notes or comments.
  • get_comments: Fetch specific annotation records by unique identifier.
  • update_comments: Revise existing comment text.
  • delete_comments: Erase associated comments.

Categorization Labels

  • get_labels_list: Retrieve all user-defined labels.
  • create_labels: Define new personalized labels.
  • get_labels: Fetch specific labels by ID or name.
  • update_labels: Modify label properties.
  • delete_labels: Remove defined labels.
  • get_shared_labels: Retrieve organization-wide labels.
  • rename_shared_labels: Apply a new name to organization-wide labels.
  • remove_shared_labels: De-associate shared labels.

Utility Functions

  • utils_get_colors: Query the available palette for project and label visual styling.

Sample Queries

Engage your intelligent assistant (such as Claude) with prompts like:

"What tasks are scheduled for completion today?" "Schedule a task to audit the Q3 financials, due next Friday." "Establish a new organizational unit titled 'Weekend Chores'." "Append a note regarding the agenda to my preparation task." "Display all items flagged as high importance." "Generate a new tag named 'Critical' colored red." "Enumerate the existing project structures within my Todoist instance." "Mark the task regarding the medical appointment as finished."

Project Maintenance

bash

Install required dependencies

npm install

Compile source code and launch the debugging inspector

npm run build && npx @modelcontextprotocol/inspector -e API_KEY=YOUR_API_KEY_HERE node dist/index.js

Licensing Information

This software is distributed under the terms of the MIT License; consult the LICENSE documentation for specifics.

Support Channels

Should you encounter operational difficulties or require assistance, please submit an issue report via the official GitHub repository.

Service Badge

RELATED TECHNOLOGY OVERVIEW: XMLHttpRequest (XHR) defines a JavaScript object interface enabling web applications to dispatch HTTP requests to a remote server and receive resulting data asynchronously, post page rendering. This mechanism is foundational to Ajax programming paradigms. Prior to XHR, server interaction was predominantly limited to traditional form submissions or hyperlink navigation, both of which typically necessitated full page refreshes. The XHR concept originated in 2000 from Microsoft Outlook development efforts and was first integrated into Internet Explorer 5 (1999), albeit using different underlying object initializations (ActiveXObject). By IE7 (2006), the standardized XMLHttpRequest identifier achieved universal adoption across major browser engines, including Mozilla's Gecko, Apple's WebKit (Safari), and Opera.

== Evolution and Standardization == The World Wide Web Consortium (W3C) formalized the specification starting with a Working Draft in April 2006. Level 2 additions in 2008 introduced capabilities for tracking request progress, enabling cross-origin requests, and handling binary data streams. These Level 2 features were later merged back into the primary specification near the end of 2011. Responsibility for maintaining the living document, utilizing Web IDL definitions, transferred to the WHATWG consortium in late 2012.

== Operational Workflow == The typical sequence for executing a request using XMLHttpRequest involves several distinct programming phases:

  1. Instantiate the object via its constructor.
  2. Invoke the open() method to configure the HTTP method, target URI, and execution mode (synchronous vs. asynchronous).
  3. If operating asynchronously, define an event handler to monitor state transitions.
  4. Trigger the transmission using the send() method, potentially passing payload data.
  5. Process the response within the state change listener. Upon reaching state 4 (completion), the result is available, typically in the responseText property.

Beyond these core steps, XHR offers extensive control, such as setting custom request headers, streaming response data instead of waiting for completion, early termination of ongoing requests, and parsing incoming data formats like JSON directly into usable JavaScript objects.

See Also

`