Atlas / MCP servers / stanislavlysenko0912 / Todoist

TodoistSAFE

mcp/stanislavlysenko0912/todoist-4

Full implementation of Todoist Rest API & support Todoist Sync API for MCP server

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
35 16r · 13w · 6d
Transport
stdio
License
MIT
Stars
63
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Todoist MCP Server A Model Context Protocol (MCP) server implementation that integrates Claude and other AI assistants with Todoist, enabling natural language task management.

Features

  • Complete Todoist API Integration: Access to the full Todoist REST API v2, and support for the Todoist Sync API through natural language
  • Batch Processing: Client can process multiple tasks in a single request
  • Search by name: AI can search for tasks, projects, and labels by name instead of ID
  • Tasks: Create, update, close, reopen, move, and delete tasks using conversational language
  • Projects: Create and manage projects and sections
  • Comments: Add and manage comments on tasks and projects
  • Labels: Create and manage personal and shared labels
  • Smart Context: On startup, automatically provides your projects and labels to the AI via server instructions — no extra tool calls needed
  • Prompt Support: You can easily provide information about your projects to client

Configuration

You'll need a Todoist API token to use this MCP server.

Getting a Todoist API Token

  1. Log in to your Todoist account
  2. Navigate to Settings → Integrations
  3. Find your API token under "Developer"

Usage

Add to mcpServers in your platform config:

"todoist": {
"command": "npx",
"args": ["-y", "todoist-mcp"],
"env": { "API_KEY": "your_todoist_api_token" }
}
Read from source at commit ed6aa6a9349dOBSERVED · 2026-10-07
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add todoist-mcp --env API_KEY=${API_KEY} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "todoist-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "API_KEY": "${API_KEY}"
      }
    }
  }
}
03

Exposed tools (35)

16 read · 13 write · 6 destructive. Blast radius: 6 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
close_tasksreadClose tasks in Todoist
create_commentswriteCreate new comments in Todoist
create_labelswriteCreate a new personal labels in Todoist
create_projectswriteCreate new projects in Todoist
create_sectionswriteCreate new sections in Todoist
create_taskswriteCreate new tasks in Todoist
delete_commentsdestructiveDelete comments in Todoist
delete_labelsdestructiveDelete a personal label in Todoist
delete_projectsdestructiveDelete projects from Todoist
delete_sectionsdestructiveDelete sections in Todoist
delete_tasksdestructiveDelete tasks from Todoist
get_collaboratorsreadGet all collaborators for a project in Todoist
get_commentsreadGet comments from Todoist by ID
get_comments_listreadGet comments list from Todoist
get_labelsreadGet a personal label from Todoist
get_labels_listreadGet all personal labels from Todoist
get_projectsreadGet projects from Todoist
get_projects_listreadGet all projects from Todoist
get_sectionsreadGet sections from Todoist
get_sections_listreadGet sections list from Todoist
get_shared_labelsreadGet all shared labels from Todoist
get_tasksreadGet tasks from Todoist
get_tasks_by_filterreadGet tasks from Todoist using filter language. Use for queries like
get_tasks_listreadGet tasks list from Todoist. For advanced filtering use get_tasks_by_filter tool
move_projectswriteMove a projects to a different parent in Todoist
move_taskswriteMove tasks to a different parent or section in Todoist. Exactly one of parent_id, section_id, or project_id must be provided
projects_listreadList of projects
remove_shared_labelsdestructiveRemove a shared label in Todoist
rename_shared_labelswriteRename a shared label in Todoist
reopen_tasksreadReopen tasks in Todoist
update_commentswriteUpdate comments in Todoist
update_labelswriteUpdate a personal label in Todoist
update_projectswriteUpdate projects in Todoist
update_sectionswriteUpdate sections in Todoist
update_taskswriteUpdate tasks in Todoist
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (4 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (2)

MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete_comments, delete_labels, delete_projects, delete_sections, delete_tasks, remove_shared_labels
Why it matters. 6 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, uuid, zod, @eslint/js, @types/node, @types/uuid, @vitest/coverage-v8, eslint
Why it matters. 16 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-07 · audit v0.4.1 · source sha ed6aa6a9349dfull audit observations/trust-audit/mcp-server/stanislavlysenko0912__todoist-4.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-07ed6aa6a9349dSAFEB89first audit
06

Questions

What is the Todoist MCP server?

Full implementation of Todoist Rest API & support Todoist Sync API for MCP server

What tools does Todoist expose?

35 in total: 16 read-only, 13 that write, and 6 that can delete or overwrite (delete_comments, delete_labels, delete_projects, delete_sections, delete_tasks). Every one is listed on this page with its risk.

Is Todoist safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B. Separately from the audit: 6 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Todoist need?

It reads API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Todoist run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as todoist-mcp at 1.3.4.

How current is this page?

The grade is for one exact copy of the source (ed6aa6a9349d), read on 2026-10-07. The repository is watched and re-audited when it changes.

Advertisement