todoist-mcp-lite
Provides a direct passthrough to the Todoist REST API v2, enabling task management, project operations, and other Todoist actions via a single tool.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@todoist-mcp-litelist my tasks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@sjalq/todoist-mcp-lite
Minimal Todoist MCP server with direct API passthrough. Built with pure functional principles and minimal code.
Features
Single tool with direct Todoist API v1 passthrough (
https://api.todoist.com/api/v1)Supports all HTTP methods (GET, POST, PUT, PATCH, DELETE)
CLI
--tokenflag or environment variable authenticationNPX-ready - no installation required
Comprehensive test suite (property-based + integration + MCP protocol tests)
Pure functional JavaScript - minimal dependencies
Token-efficient tool descriptions
Related MCP server: mcp-todoist
Getting Your Todoist API Token
Log in to Todoist
Go to Settings → Integrations → Developer
Copy your API token from the "API token" section
Usage
Via NPX (recommended)
npx @sjalq/todoist-mcp-lite --token YOUR_TODOIST_TOKENOr with environment variable:
export TODOIST_API_TOKEN=YOUR_TODOIST_TOKEN
npx @sjalq/todoist-mcp-liteIn Claude Desktop / Claude Code config
Add to your ~/.claude.json:
{
"mcpServers": {
"todoist": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@sjalq/todoist-mcp-lite"],
"env": {
"TODOIST_API_TOKEN": "your_token_here"
}
}
}
}Or with local checkout:
{
"mcpServers": {
"todoist": {
"type": "stdio",
"command": "node",
"args": ["/path/to/todoist-mcp-lite/index.js"],
"env": {
"TODOIST_API_TOKEN": "your_token_here"
}
}
}
}Or with --token flag:
{
"mcpServers": {
"todoist": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@sjalq/todoist-mcp-lite", "--token", "your_token_here"]
}
}
}Tool
The server exposes a single tool: todoist_api
Parameters
endpoint(string, required): API path under/api/v1(e.g.,/tasks,/projects,/tasks/filter?query=today)method(string, required): HTTP method (GET,POST,PUT,PATCH,DELETE)body(object, optional): Request body for POST/PUT/PATCH requests
Response
The MCP wrapper always returns:
status: HTTP status codeok: boolean indicating successdata: Response body from Todoist (or error object)
List endpoints (v1 envelope)
Paginated list endpoints (e.g. GET /projects, GET /tasks) return:
{
"results": [ /* items */ ],
"next_cursor": "opaque-cursor-or-null"
}Not a bare array. Read items from data.results. For the next page, pass ?cursor=<next_cursor>&limit=50.
IDs are opaque strings.
Filtering tasks (v1 change)
REST v2 used GET /tasks?filter=today. That was removed.
Use:
GET /tasks/filter?query=today
GET /tasks/filter?query=overdueExample
{
"endpoint": "/tasks",
"method": "POST",
"body": {
"content": "Buy milk",
"due_string": "tomorrow"
}
}API Documentation
Full Todoist API v1 docs: https://developer.todoist.com/api/v1/
Migration notes (REST v2 / Sync v9 → v1): pagination, opaque string IDs, /tasks/filter?query=, and other renames are covered under "Migrating from v9" in those docs.
Development
Clone and Install
git clone https://github.com/sjalq/todoist-mcp-lite.git
cd todoist-mcp-lite
npm installRunning Tests
Property-based tests run without API token:
npm testIntegration and MCP protocol tests require a token:
export TODOIST_API_TOKEN=your_token
npm testTest suite includes:
4 property-based tests (pure function validation)
6 integration tests (real API calls)
4 MCP protocol tests (full server/client interaction)
Local Testing with MCP Inspector
npx @modelcontextprotocol/inspector node index.js --token YOUR_TOKENThen open http://localhost:6274 to interactively test the server.
Architecture
Pure functional design with three core functions:
getToken(args)- Extract token from CLI args or environmentcallTodoist(token)- Curried API caller returning async functioncreateServer(apiCall)- MCP server factory with tool registration
Zero mocks, zero state, just functions.
License
ISC - see LICENSE file for details.
Contributing
Issues and PRs welcome at https://github.com/sjalq/todoist-mcp-lite
This server cannot be deployed
Maintenance
Related MCP Connectors
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Host your MCP tool over streamable HTTP in one command.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server implementation compatible with Todoist API, allowing AI agents to interact with task management functionality through standardized MCP tools.517 npm1MIT
- AlicenseAqualityCmaintenanceMCP Server to create and manage tasks, projects, labels and more in Todoist, using their unified v1 API714 npm7GPL 3.0
- AlicenseAqualityDmaintenanceA clean, reliable MCP (Model Context Protocol) server for Todoist — built on the Todoist unified API v1.201MIT
- FlicenseNot gradedqualityBmaintenanceMCP server that wraps the Arc Todo REST API to manage tasks, knowledge, and workspace context via Streamable HTTP.-