Skip to main content
Glama
README.md
# tasklist-port

Todoist tasks as MCP tools, talking to the Todoist REST API v1.
tasklist-port is a clean-room rebuild of the core surface of the
Todoist MCP server, under a new name: fresh code, no copied branding.

## Tools (core subset, 12)

`list_tasks`, `get_task`, `create_task`, `update_task`, `close_task`,
`reopen_task`, `delete_task`, `list_projects`, `get_project`,
`create_project`, `list_labels`, `list_sections`.

Not in this subset: comments, shared labels, collaborators/sharing,
reminders, activity log, completed-items history, project
collaborators admin, user/productivity stats, Sync API incremental
sync, backups, templates import/export, quick-add parsing endpoint.

## Setup

Create an API token in Todoist (Settings → Integrations → Developer)
and set it:

```bash
export TODOIST_API_TOKEN=0123456789abcdef...
```

Optionally override the API base with `TODOIST_API_BASE_URL`
(default `https://api.todoist.com/api/v1`). Without the token, every
tool call fails with an error naming the missing variable. Note:
Todoist list endpoints return either a bare array or a
`{results:[...]}` envelope depending on version — tasklist-port
returns the parsed payload as-is.

## CLI

```bash
npx @reneturcios/tasklist-port list_tasks '{"project_id":"p1"}'
npx @reneturcios/tasklist-port mcp        # stdio MCP server
```

Each tool name is a subcommand taking one JSON object argument.

## MCP client config

```json
{
  "mcpServers": {
    "tasklist-port": {
      "command": "npx",
      "args": ["-y", "@reneturcios/tasklist-port", "mcp"],
      "env": { "TODOIST_API_TOKEN": "0123456789abcdef..." }
    }
  }
}
```

## Docker

```bash
docker run -i -e TODOIST_API_TOKEN ghcr.io/cloudcorprecords/tasklist-port
```

## Development

```bash
npm install
npm run build
npm test
```

## License

MIT

Maintenance

ActivityMaintained
ResponsivenessNo issues