py-todoist-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TODOIST_API_TOKEN | Yes | Your Todoist API token. To obtain it, log in to Todoist, go to Settings -> Integrations -> Developer, and copy your API token. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| todoist_get_projectsB | Get a list of all projects from Todoist. Returns: A formatted string containing the list of projects. |
| todoist_get_projectA | Get a single project by ID. Args: project_id: The ID of the project to retrieve. Returns: A formatted string containing the project details. |
| todoist_add_projectB | Create a new project in Todoist. Args: name: The project name. color: Optional color for the project (e.g., "red", "blue", "#ff9900"). parent_id: Optional parent project ID for nested projects. Returns: A confirmation message with the created project ID. |
| todoist_update_projectB | Update an existing project in Todoist. Args: project_id: The ID of the project to update. name: Optional new project name. color: Optional new color for the project. is_favorite: Optional flag to mark project as favorite. Returns: A confirmation message. |
| todoist_delete_projectA | Delete a project by ID. Args: project_id: The ID of the project to delete. Returns: A confirmation message. |
| todoist_get_tasksB | Get a list of tasks from Todoist with optional filters. Args: project_id: Optional project ID to filter tasks by project. filter_string: Optional filter/query string (e.g., "today", "overdue", "#work"). Returns: A formatted string containing the list of tasks. |
| todoist_get_taskB | Get a single task by ID. Args: task_id: The ID of the task to retrieve. Returns: A formatted string containing the task details. |
| todoist_add_taskB | Create a new task in Todoist. Args: content: The task content/name. description: Optional task description. due_date: Optional due date string (e.g., "tomorrow", "2024-01-15", "next Monday"). priority: Optional priority (1-4, where 4 is highest). project_id: Optional project ID to assign the task to. labels: Optional list of label names to apply. Returns: A confirmation message with the created task ID. |
| todoist_update_taskB | Update an existing task in Todoist. Args: task_id: The ID of the task to update. content: Optional new task content. description: Optional new description. due_date: Optional new due date string. priority: Optional new priority (1-4). labels: Optional new list of label names. Returns: A confirmation message. |
| todoist_complete_taskA | Mark a task as complete. Args: task_id: The ID of the task to complete. Returns: A confirmation message. |
| todoist_delete_taskB | Delete a task by ID. Args: task_id: The ID of the task to delete. Returns: A confirmation message. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Every tool has a clearly distinct purpose targeting specific resources (projects or tasks) and actions (add, get, update, delete, complete). The naming convention makes it immediately obvious which resource and operation each tool handles, with no overlap or ambiguity between tools.
All tools follow a perfect 'todoist_verb_noun' pattern with consistent snake_case throughout. The verbs (add, get, update, delete, complete) are consistently applied to the appropriate nouns (project, projects, task, tasks), creating a highly predictable and readable naming scheme.
With 11 tools, this server provides comprehensive coverage for Todoist project and task management. The count is well-scoped for the domain, offering full CRUD operations for both projects and tasks plus additional useful operations like task completion and filtered task listing.
The tool surface provides complete CRUD/lifecycle coverage for both projects and tasks in Todoist. It includes all essential operations: create, read (single and list), update, and delete for both resource types, plus task completion and filtered task retrieval. There are no obvious gaps for the stated Todoist integration purpose.