{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"todoist-mcp-server","slug":"todoist-mcp-server","name":"Todoist MCP Server","type":"mcp","url":"https://github.com/abhiz123/todoist-mcp-server","page_url":"https://unfragile.ai/todoist-mcp-server","categories":["mcp-servers"],"tags":["todoist","tasks","productivity","community"],"pricing":{"model":"free","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"todoist-mcp-server__cap_0","uri":"capability://tool.use.integration.natural.language.task.creation.with.semantic.parameter.extraction","name":"natural language task creation with semantic parameter extraction","description":"Translates conversational task descriptions into structured Todoist API calls by parsing natural language for task content, due dates, priority levels, project assignments, and labels. Uses date recognition to convert phrases like 'tomorrow' or 'next Monday' into ISO format, and maps semantic priority descriptions (e.g., 'high', 'urgent') to Todoist's 1-4 priority scale. Implements MCP tool schema validation to ensure all parameters conform to Todoist API requirements before transmission.","intents":["Create a task from a natural language description without manually specifying due dates or priority","Add a task with multiple attributes (project, label, priority, due date) in a single conversational turn","Let Claude understand task creation intent and automatically structure the API payload"],"best_for":["Claude Desktop users who want to manage Todoist through natural conversation","Teams building AI-driven task management workflows","Developers integrating Todoist into LLM agent systems"],"limitations":["Date parsing relies on heuristic natural language interpretation — ambiguous dates (e.g., '15th') may require clarification","No support for recurring task syntax — only single-instance task creation","Priority mapping is fixed to Todoist's 1-4 scale; custom priority schemes not supported"],"requires":["Todoist API token with write permissions","Node.js 18+ runtime","Claude Desktop with MCP server configuration"],"input_types":["natural language text describing task","optional structured parameters (due_date, priority, project_id, labels)"],"output_types":["structured JSON payload sent to Todoist API","task object with id, content, due_date, priority, project_id, labels"],"categories":["tool-use-integration","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_1","uri":"capability://tool.use.integration.filtered.task.retrieval.with.natural.language.query.translation","name":"filtered task retrieval with natural language query translation","description":"Executes structured queries against Todoist's task database by translating natural language filters (e.g., 'tasks due today', 'overdue items in project X', 'high priority tasks') into Todoist API filter syntax. Supports filtering by due date ranges, project, label, priority, and completion status. Implements result limiting and pagination to prevent overwhelming response sizes. The server parses natural language date expressions and converts them to Todoist's filter query language before API submission.","intents":["Retrieve tasks matching specific criteria without manually constructing Todoist filter syntax","Get a summary of overdue, today, or upcoming tasks in natural language","Filter tasks by project, label, or priority to focus on specific work areas"],"best_for":["Users building task dashboard or status-checking agents","Teams needing programmatic access to filtered task lists","Developers creating task prioritization or scheduling workflows"],"limitations":["Filter translation is limited to predefined filter patterns — complex boolean logic (AND/OR combinations) may not translate correctly","Result limiting defaults to a fixed page size; no built-in cursor-based pagination for large result sets","Date range filtering relies on natural language parsing, which may misinterpret ambiguous date expressions"],"requires":["Todoist API token with read permissions","Node.js 18+ runtime","Claude Desktop with MCP server configuration"],"input_types":["natural language filter description (e.g., 'tasks due today', 'overdue items')","optional structured filter parameters (project_id, label, priority, due_date_range)"],"output_types":["array of task objects with id, content, due_date, priority, project_id, labels, completed status","metadata including result count and filter applied"],"categories":["tool-use-integration","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_10","uri":"capability://safety.moderation.http.error.handling.and.todoist.api.error.translation","name":"http error handling and todoist api error translation","description":"Catches HTTP errors from Todoist API calls and translates them into user-friendly error messages that Claude can understand and communicate to users. Handles common error scenarios (invalid token, rate limiting, malformed requests, server errors) with appropriate error codes and descriptions. Implements retry logic for transient errors (5xx responses) and provides clear feedback for permanent errors (4xx responses).","intents":["Provide clear error feedback when Todoist API calls fail","Help Claude understand and communicate API errors to users","Automatically retry transient errors without user intervention"],"best_for":["Developers building robust MCP servers","Teams requiring reliable error handling","Users needing clear feedback on API failures"],"limitations":["Retry logic is basic — no exponential backoff or jitter, which may cause thundering herd on rate limiting","Error messages are limited to HTTP status codes and Todoist API error responses — no custom error context","No circuit breaker pattern — continuous retries on persistent failures may degrade performance"],"requires":["HTTP client with error handling support (built-in to Node.js fetch API)"],"input_types":["HTTP error responses from Todoist API"],"output_types":["user-friendly error messages","error codes and descriptions","retry status"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_11","uri":"capability://search.retrieval.fuzzy.task.name.matching.for.identification.without.ids","name":"fuzzy task name matching for identification without ids","description":"Implements substring and fuzzy matching logic to identify tasks by partial or approximate names, reducing the need for exact task IDs. Uses case-insensitive matching and handles common variations (e.g., extra spaces, punctuation differences). Returns the best matching task when multiple candidates exist, with confidence scoring to help Claude disambiguate if needed.","intents":["Update or complete tasks by referencing them conversationally without knowing exact IDs","Handle typos or partial task name references","Reduce friction in conversational task management workflows"],"best_for":["Users managing tasks through conversational interface","Teams building task management agents","Developers creating user-friendly task workflows"],"limitations":["Fuzzy matching may incorrectly identify tasks if multiple tasks have similar names — requires disambiguation","Matching is case-insensitive but not accent-insensitive — may fail on non-ASCII characters","No machine learning-based matching — uses simple string similarity heuristics"],"requires":["Task list retrieved from Todoist API"],"input_types":["partial or approximate task name (string)"],"output_types":["matched task object with confidence score","list of candidate tasks if multiple matches exist"],"categories":["search-retrieval","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_12","uri":"capability://tool.use.integration.mcp.stdio.transport.for.claude.desktop.communication","name":"mcp stdio transport for claude desktop communication","description":"Implements MCP server using stdio transport to communicate with Claude Desktop via standard input/output streams. Handles MCP protocol serialization/deserialization of JSON-RPC messages, tool invocation routing, and response formatting. Manages the lifecycle of the stdio connection and handles graceful shutdown on client disconnect.","intents":["Enable Claude Desktop to communicate with MCP server via stdio","Provide standardized MCP protocol implementation for tool calling","Handle MCP message serialization and routing"],"best_for":["Claude Desktop users with MCP server support","Developers building MCP servers for local integration","Teams deploying MCP servers alongside Claude Desktop"],"limitations":["Stdio transport adds latency compared to direct API calls — each request requires process communication","No persistent connection pooling — each tool invocation may establish new connections","Stdio-based communication is limited to single client (Claude Desktop) — no multi-client support"],"requires":["Claude Desktop with MCP server support","Node.js 18+ runtime","MCP server configuration in Claude Desktop settings"],"input_types":["MCP JSON-RPC messages from Claude Desktop via stdin"],"output_types":["MCP JSON-RPC responses via stdout"],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_2","uri":"capability://tool.use.integration.task.attribute.modification.with.name.based.task.identification","name":"task attribute modification with name-based task identification","description":"Updates task properties (name, description, due date, priority, project, labels) by first performing partial name matching to locate the target task, then submitting attribute changes to the Todoist API. Uses fuzzy matching or substring search to identify tasks from incomplete descriptions, reducing the need for exact task IDs. Validates all updated attributes against Todoist API schema before submission and returns confirmation of changes applied.","intents":["Update a task's due date or priority by referencing it by partial name","Modify multiple task attributes in a single request","Move a task to a different project or add labels without knowing its exact ID"],"best_for":["Users managing tasks through conversational interface without memorizing task IDs","Teams building task modification workflows in AI agents","Developers creating task rescheduling or reprioritization automation"],"limitations":["Name-based identification may match multiple tasks if names are similar — requires disambiguation logic","Partial matching is case-sensitive and may fail on typos or abbreviated task names","No atomic multi-task updates — each task modification requires a separate API call"],"requires":["Todoist API token with write permissions","Node.js 18+ runtime","Claude Desktop with MCP server configuration"],"input_types":["task name or partial name string","structured update payload (due_date, priority, project_id, labels, description)"],"output_types":["updated task object with modified attributes","confirmation message with changes applied"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_3","uri":"capability://tool.use.integration.task.completion.with.partial.name.matching.and.status.confirmation","name":"task completion with partial name matching and status confirmation","description":"Marks tasks as complete by first identifying them through partial name matching, then submitting completion status to the Todoist API. Implements fuzzy matching to locate tasks from incomplete or approximate descriptions, reducing friction in conversational workflows. Returns confirmation of completion status and task metadata to confirm the action succeeded.","intents":["Mark a task complete by referencing it conversationally without knowing its ID","Confirm task completion status in a single natural language request","Complete multiple related tasks by partial name reference"],"best_for":["Users completing tasks through Claude Desktop conversation","Teams building task completion tracking in AI agents","Developers creating workflow automation that marks tasks as done"],"limitations":["Partial name matching may incorrectly identify tasks if multiple tasks have similar names","No bulk completion — each task requires a separate API call","Completion is irreversible through this tool; no undo capability"],"requires":["Todoist API token with write permissions","Node.js 18+ runtime","Claude Desktop with MCP server configuration"],"input_types":["task name or partial name string"],"output_types":["task object with completed status set to true","confirmation message with task name and completion timestamp"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_4","uri":"capability://tool.use.integration.task.deletion.with.name.based.identification.and.confirmation","name":"task deletion with name-based identification and confirmation","description":"Removes tasks from Todoist by first identifying them through partial name matching, then submitting deletion requests to the Todoist API. Implements fuzzy matching to locate tasks from incomplete descriptions. Provides confirmation feedback to acknowledge successful deletion and prevent accidental removals.","intents":["Delete a task by referencing it conversationally without knowing its ID","Remove multiple tasks by partial name reference","Clean up completed or obsolete tasks through natural language commands"],"best_for":["Users managing task cleanup through Claude Desktop","Teams building task lifecycle automation in AI agents","Developers creating task archival or deletion workflows"],"limitations":["Partial name matching may delete wrong task if names are similar — no undo after deletion","No bulk deletion — each task requires a separate API call","Deletion is permanent and cannot be reversed through this tool"],"requires":["Todoist API token with write permissions","Node.js 18+ runtime","Claude Desktop with MCP server configuration"],"input_types":["task name or partial name string"],"output_types":["confirmation message with deleted task name and timestamp","success status"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_5","uri":"capability://tool.use.integration.mcp.protocol.bridging.between.claude.desktop.and.todoist.rest.api","name":"mcp protocol bridging between claude desktop and todoist rest api","description":"Implements the Model Context Protocol (MCP) server that translates Claude Desktop's tool invocations into Todoist REST API v2 calls via stdio transport. Acts as a protocol adapter layer that handles MCP request/response serialization, tool schema registration, and error handling. Uses TypeScript with type-safe tool definitions to ensure Claude's requests conform to Todoist API requirements before submission. Manages authentication via Todoist API token and handles all HTTP communication with Todoist's servers.","intents":["Enable Claude Desktop to invoke Todoist operations through MCP tool calling","Provide type-safe tool schema definitions that Claude can discover and invoke","Abstract away Todoist API complexity behind a conversational interface"],"best_for":["Claude Desktop users wanting native Todoist integration","Developers building MCP servers for task management systems","Teams integrating LLMs with existing Todoist workflows"],"limitations":["MCP stdio transport adds latency compared to direct API calls — each tool invocation requires process communication overhead","No persistent connection pooling — each request establishes new HTTP connection to Todoist","Error handling is limited to HTTP status codes and Todoist API error messages; no custom retry logic"],"requires":["Claude Desktop application with MCP server support","Todoist API token configured in environment or config file","Node.js 18+ runtime","MCP server configuration in Claude Desktop settings"],"input_types":["MCP tool invocation requests from Claude Desktop","tool parameters as JSON objects"],"output_types":["MCP tool result responses","structured JSON with task data or confirmation messages"],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_6","uri":"capability://tool.use.integration.type.safe.tool.schema.validation.with.mcp.tool.registry","name":"type-safe tool schema validation with mcp tool registry","description":"Defines and validates MCP tool schemas for all five task management operations (create, read, update, complete, delete) using TypeScript type definitions. Each tool schema specifies required and optional parameters, parameter types, and descriptions. The server registers these schemas with the MCP protocol, allowing Claude to discover available tools and their signatures. Validates incoming tool invocations against schemas before forwarding to Todoist API, preventing malformed requests.","intents":["Ensure Claude understands the parameters and constraints for each task management operation","Prevent invalid API calls by validating parameters before submission to Todoist","Provide Claude with tool discovery so it knows what operations are available"],"best_for":["Developers building MCP servers with strict type safety","Teams requiring validated API calls to prevent errors","Claude users wanting clear tool documentation and constraints"],"limitations":["Schema validation is static — cannot adapt to dynamic Todoist API changes without code updates","No custom validation logic beyond type checking — complex constraints (e.g., 'priority must be 1-4') require manual enforcement","Schema discovery is one-time at server startup; changes require server restart"],"requires":["TypeScript compiler (tsc) for schema definition","MCP server implementation with tool registry support","Node.js 18+ runtime"],"input_types":["tool invocation requests with parameters"],"output_types":["validation success/failure status","error messages for invalid parameters"],"categories":["tool-use-integration","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_7","uri":"capability://text.generation.language.natural.language.date.parsing.and.iso.format.conversion","name":"natural language date parsing and iso format conversion","description":"Converts natural language date expressions (e.g., 'tomorrow', 'next Monday', 'this week', 'in 3 days') into ISO 8601 format required by Todoist API. Implements heuristic-based date parsing that understands relative date references and common English date patterns. Handles ambiguous dates by applying reasonable defaults (e.g., 'next week' defaults to Monday). Returns ISO-formatted date strings that conform to Todoist's due_date field requirements.","intents":["Create or update tasks with natural language due dates without manually calculating ISO dates","Filter tasks by natural language date ranges (e.g., 'due this week')","Allow Claude to understand task due dates in conversational context"],"best_for":["Users creating tasks through conversational interface","Teams building task management agents with natural language input","Developers integrating Todoist with LLM systems"],"limitations":["Date parsing is heuristic-based and may misinterpret ambiguous expressions (e.g., '15th' without month context)","No support for complex date expressions (e.g., 'every other Tuesday') — only single-instance dates","Timezone handling is implicit; assumes user's local timezone without explicit configuration"],"requires":["JavaScript Date object support (built-in to Node.js)","No external date parsing library required"],"input_types":["natural language date expression (string)"],"output_types":["ISO 8601 formatted date string (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss)"],"categories":["text-generation-language","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_8","uri":"capability://text.generation.language.priority.level.semantic.mapping.natural.language.to.numeric.scale","name":"priority level semantic mapping (natural language to numeric scale)","description":"Translates semantic priority descriptions (e.g., 'high', 'urgent', 'low', 'normal') into Todoist's numeric priority scale (1-4, where 4 is highest). Implements bidirectional mapping so Claude can understand both natural language priority input and numeric priority output. Provides reasonable defaults for ambiguous priority references.","intents":["Create or update tasks with natural language priority levels without memorizing Todoist's numeric scale","Allow Claude to interpret task priorities in conversational context","Display task priorities to users in human-readable format"],"best_for":["Users managing task priorities through conversational interface","Teams building task prioritization workflows","Developers creating task management agents"],"limitations":["Mapping is fixed to Todoist's 1-4 scale — no support for custom priority schemes","Ambiguous priority references (e.g., 'medium') may map to different values depending on context","No support for relative priority adjustments (e.g., 'increase priority by one level')"],"requires":["No external dependencies"],"input_types":["natural language priority description (string) or numeric priority (1-4)"],"output_types":["numeric priority (1-4) or natural language description"],"categories":["text-generation-language","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__cap_9","uri":"capability://safety.moderation.todoist.api.authentication.and.credential.management","name":"todoist api authentication and credential management","description":"Manages Todoist API authentication by accepting API tokens via environment variables or configuration files and including them in HTTP Authorization headers for all API requests. Implements secure credential handling that prevents token exposure in logs or error messages. Validates token validity on server startup and provides clear error messages if authentication fails.","intents":["Securely authenticate MCP server with Todoist API","Support multiple deployment scenarios (local, cloud, containerized)","Prevent credential leakage in logs or error messages"],"best_for":["Developers deploying MCP servers in various environments","Teams requiring secure credential management","Users setting up Claude Desktop with Todoist integration"],"limitations":["Credentials are stored in plaintext in environment variables or config files — no encryption at rest","No token rotation or refresh mechanism — tokens must be manually updated if revoked","No audit logging of API calls — cannot track which operations were performed"],"requires":["Todoist API token (obtainable from Todoist settings)","Environment variable TODOIST_API_TOKEN or config file with token"],"input_types":["API token string"],"output_types":["HTTP Authorization header with Bearer token","authentication success/failure status"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"todoist-mcp-server__headline","uri":"capability://tool.use.integration.mcp.server.for.todoist.task.management","name":"mcp server for todoist task management","description":"A community-driven MCP server that enables natural language interactions with Todoist for efficient task management, allowing users to create, update, and manage tasks seamlessly.","intents":["best MCP server for Todoist","Todoist task management integration","MCP server for natural language task handling","top tools for managing Todoist tasks","how to automate Todoist with MCP"],"best_for":["developers looking for task automation","users wanting natural language processing for tasks"],"limitations":[],"requires":[],"input_types":[],"output_types":[],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":60,"verified":false,"data_access_risk":"high","permissions":["Todoist API token with write permissions","Node.js 18+ runtime","Claude Desktop with MCP server configuration","Todoist API token with read permissions","HTTP client with error handling support (built-in to Node.js fetch API)","Task list retrieved from Todoist API","Claude Desktop with MCP server support","MCP server configuration in Claude Desktop settings","Claude Desktop application with MCP server support","Todoist API token configured in environment or config file"],"failure_modes":["Date parsing relies on heuristic natural language interpretation — ambiguous dates (e.g., '15th') may require clarification","No support for recurring task syntax — only single-instance task creation","Priority mapping is fixed to Todoist's 1-4 scale; custom priority schemes not supported","Filter translation is limited to predefined filter patterns — complex boolean logic (AND/OR combinations) may not translate correctly","Result limiting defaults to a fixed page size; no built-in cursor-based pagination for large result sets","Date range filtering relies on natural language parsing, which may misinterpret ambiguous date expressions","Retry logic is basic — no exponential backoff or jitter, which may cause thundering herd on rate limiting","Error messages are limited to HTTP status codes and Todoist API error responses — no custom error context","No circuit breaker pattern — continuous retries on persistent failures may degrade performance","Fuzzy matching may incorrectly identify tasks if multiple tasks have similar names — requires disambiguation","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.7,"quality":0.9,"ecosystem":0.52,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:05.296Z","last_scraped_at":null,"last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=todoist-mcp-server","compare_url":"https://unfragile.ai/compare?artifact=todoist-mcp-server"}},"signature":"/fMr8BbOo96Hp/chjBeRqLiLNhNV0qfgRwnn6e3se25vehusSo9X9z/2XCnoxQLGFyIJq/Cc/0zIBn54Jbz4Aw==","signedAt":"2026-06-19T21:51:21.964Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/todoist-mcp-server","artifact":"https://unfragile.ai/todoist-mcp-server","verify":"https://unfragile.ai/api/v1/verify?slug=todoist-mcp-server","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}