Todoist's filter language is compact and easy to get subtly wrong — `today & p1` and `7 days & @waiting` are not things a model reliably invents. Shipping the rules and examples as a callable tool means the assistant can look them up mid-task, which is a better answer than either hardcoding a few patterns or hoping. The rest is a clean, complete task and project surface; being a Go binary, it also drops into a container or a laptop with nothing else installed.
A Todoist MCP server written in Go, distributed as a single binary or a container image. It covers task and project management, and it ships one unusual tool: a reference of Todoist's own filter rules and examples, meant to be read before the assistant tries to turn a plain-language request into filter syntax.
- Todoist's filter rules and worked examples, so a natural-language request can be translated into real filter syntax instead of guessed at — `todoist_get_task_filter_rules`
- Tasks listed, filtered by project id or by a Todoist filter query — `todoist_get_tasks`
- One task in detail by id — `todoist_get_task`
- A task created with content, description, project, parent task, order, priority from 1 to 4, and a due date given as natural language, a date or an RFC3339 timestamp — `todoist_create_task`
- An existing task changed, including its content, priority and due date — `todoist_update_task`
- A task marked complete — `todoist_close_task`
- A task deleted — `todoist_delete_task`
- Projects listed, or one project read in detail — `todoist_get_projects`, `todoist_get_project`
A Todoist API token, passed as `TODOIST_API_TOKEN` or with the `--token` flag. No runtime to install if you take a prebuilt binary from the releases page (Linux, macOS and Windows builds) or the container image `ghcr.io/naotama2002/todoist-go-mcp-server`; building from source needs Go 1.21 or later and `make build`. `--mode stdio` is what MCP clients use; `--mode http` with `--addr :8080` runs it as an HTTP server instead. If a client cannot reach the container, `--net=host` is the documented fix.
One command plus a key — docker pull ghcr.io/naotama2002/todoist-go-mcp-server:latest, then supply credentials
