Skills/npm/todoist-mcp

todoist-mcp@13.11.1

VERIFIED· not started

Publisher claims: "The official Todoist MCP server" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server)Publisher doist · publishing for 184 daysInstalls 26,729Last detonated 6d ago
$claude mcp add todoist-mcp -- npx -y @doist/todoist-mcp
WatchReport an issue

Coverage

Not started: dependency install failed; the server itself was not observed.
Tested
the dependency install step · every file read, file written and host contacted by what ran
Not tested
server startup · the tool list · tool behavior

What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.

Before you give it your token

It will ask for
TODOIST_API_KEYConfiguration, not credentials: ALLOWED_HOSTS, TODOIST_BASE_URL, USE_STRUCTURED_CONTENT
Where it talks to
todoist.net (its own)
What the honeypot saw
no credential files read · no network
What we could not test
server startup · the tool list · tool behavior

Connect it with a scoped credential, under the guard. It asks for TODOIST_API_KEY and talks to todoist.net. Give the credential to the guard, not the server: the value never enters the server's environment and only travels to the host you bind. What the tools do with a real credential was not observed.

$vet-skills run --secrets TODOIST_API_KEY=todoist.net -- npx -y @doist/todoist-mcp

Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; not started: dependency install failed; the server itself was not observed) on 2026-11-08 and scored it 80/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 28 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
28sprocessdependency install exit 1 · (Use `node --trace-warnings ...` to show where the warning was created) npm error Cannot read properties of null (reading 'edgesOut') npm error A complete log of this run can be found in: /tmp/ks-detonate-mvI5Kt/task/home/.npm/_logs/2026-11-08T21_33_51_915Z-debug-0.log
28sclaimednot started: dependency install failed (exit 1); the server itself was not observed
28sprocessscript backend runs setup only
28sprocessno install scripts to re-run

Static findings

MEDIUM
npx invocation of non-well-known packagepackage.json:51 · npx invocation of non-well-known package — may execute untrusted code…watch\" \"npm run build:apps -- --watch\" \"npx @modelcontextprotocol/inspector npx nodemon --quiet --watch dist --ext js,html --exec node dist/main.js\"", "dev:ht…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Process kill commandscripts/test-executable.cjs:39 · Process kill command — agent can terminate processes// Expected signals when we kill the processFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File type combined with upload actionscripts/run-tool.ts:129 · File type combined with upload action — agent may exfiltrate local data filesconsole.log('\nStructured output:')Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packagepackage.json:52 · npx invocation of non-well-known package — may execute untrusted code"dev:http": "concurrently \"npm run build:lib -- --watch\" \"npm run build:apps -- --watch\" \"npx nodemon --quiet --watch dist --ext js,html --exec node dist/main-http.js\"",Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathsscripts/run-tool.ts:103 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesconsole.error('TODOIST_API_KEY not found in environment or .env file')Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
npx invocation of non-well-known packagepackage.json:61 · npx invocation of non-well-known package — may execute untrusted code"type-check": "npx tsc --noEmit && npx tsc --noEmit -p .agents/scripts",Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathsscripts/run-tool.ts:15 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files* Requires TODOIST_API_KEY in .env file (and optionally TODOIST_BASE_URL).Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
File permission modification commandpackage.json:49 · File permission modification command — agent changes file ownership/permissions"postbuild": "chmod +x dist/main.js && chmod +x dist/main-http.js",Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
MEDIUM
File type combined with upload actionscripts/run-tool.ts:124 · File type combined with upload action — agent may exfiltrate local data filesconsole.log('\nText output:')Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Access to sensitive file pathspackage.json:56 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files"setup": "cp .env.example .env && npm install && npm run build",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05

Cost to the agent

Instructions loaded
≈46 tok
1 file · 81 in bundle
Tool list per prompt
≈0 tok
0 tools · 0 per tool
Handshake
no reply
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 0

Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.

Known vulnerabilities

No advisories in OSV for @doist/todoist-mcp@13.11.1 as of 6d ago. This is the package itself, not its dependencies.