# TaskLeef — Full Documentation for LLMs > TaskLeef is a Kanban task management application for developers and individuals. It offers a full CLI built in Rust, an MCP server with 40 tools for AI coding assistants, an OAuth 2.1 custom connector for Claude.ai and Claude CoWork, agentic AI that acts on boards, real-time collaboration via WebSocket, GitHub and Slack integrations, and a native iOS app. ## What is TaskLeef? TaskLeef is a task management platform designed for developers who want to manage work from the terminal, code editor, or browser. It is the only task manager with a Model Context Protocol (MCP) server, which means AI coding assistants like Claude Code, Claude.ai, Claude CoWork, GitHub Copilot, and Cursor can read and write tasks natively without leaving the editor or chat surface. The CLI is built in Rust, is open source, and provides full feature parity with the web interface. TaskLeef also includes agentic AI that can create cards, move them between columns, apply tags, and reorder work through natural language commands. ## What is the MCP server? TaskLeef's MCP (Model Context Protocol) server exposes 40 tools across 7 domains: Todos (7 tools), Boards (5 tools), Columns (6 tools), Cards (5 tools), Members (5 tools), Tags (7 tools), and Comments (5 tools). This allows AI assistants to manage your task boards programmatically. For example, you can tell Claude "create a todo to fix the login bug and put it in the Sprint board" and it will create the task, assign it to the correct board, and place it in the appropriate column. Every tool is annotated with one of three safety hints so Claude can warn before destructive actions: - **Read-only (13 tools)** — `list_todos`, `search_todos`, `get_inbox`, `board_list`, `board_get`, `column_list`, `column_get`, `card_list`, `member_list`, `tag_list`, `tag_get`, `comment_list`, `comment_get` - **Mutating but non-destructive (20 tools)** — `create_todo`, `update_todo`, `complete_todo`, `board_create`, `board_update`, `column_create`, `column_update`, `column_reorder`, `card_create`, `card_move`, `card_reorder`, `member_add`, `member_update_role`, `member_leave`, `tag_create`, `tag_update`, `tag_add_to_todo`, `tag_remove_from_todo`, `comment_create`, `comment_update` - **Destructive (7 tools)** — `delete_todo`, `board_delete`, `column_delete`, `card_delete`, `member_remove`, `tag_delete`, `comment_delete` (Claude prompts before running these) ### MCP Setup for Claude Code ``` claude mcp add --transport http taskleef https://taskleef.com/mcp/messages -H "X-API-Key: YOUR_API_KEY" ``` Get your API key from Settings → API Keys. ### MCP Setup for Claude.ai, Claude Desktop, and Claude CoWork (OAuth) The Claude.ai web app, Claude Desktop, and Claude CoWork all support adding TaskLeef as a **custom connector** using OAuth 2.1. Each user signs in with their own TaskLeef account, so there is no shared API key to leak. 1. In Claude, open **Settings → Connectors → Add custom connector**. 2. Paste the server URL: `https://taskleef.com/mcp/messages` 3. Leave the optional **OAuth Client ID** and **Client Secret** fields blank — TaskLeef supports RFC 7591 Dynamic Client Registration, so Claude provisions a client automatically. 4. Click **Add**. Claude opens a browser tab to taskleef.com and asks you to sign in. 5. Sign in with email/password or SSO (GitHub, Google, Microsoft, Apple), click **Authorize**, and you're done. Under the hood the connector uses standard OAuth 2.1 with PKCE (S256), refresh-token rotation, and audience-bound JWT access tokens. Anthropic's discovery endpoints are `/.well-known/oauth-authorization-server` and `/.well-known/oauth-protected-resource` (the path-aware form `/.well-known/oauth-protected-resource/mcp/messages` is also served per RFC 9728). Your password is never sent to Claude. ### MCP Setup for Claude Desktop (legacy API key, alternative) If you prefer not to use OAuth, Claude Desktop also accepts the same API-key configuration as Claude Code: ```json { "mcpServers": { "taskleef": { "transport": { "type": "sse", "url": "https://taskleef.com/mcp/sse", "headers": { "X-API-Key": "your-api-key-here" } } } } } ``` ### Claude Code vs. Claude.ai / Claude CoWork | Feature | Claude Code (CLI) | Claude.ai / Claude CoWork | |---|---|---| | Setup | API key in CLI | OAuth in browser | | Auth | Static `X-API-Key` header | Per-user OAuth 2.1 access token | | Where it runs | Local terminal | Claude.ai or CoWork cloud | | Token lifecycle | Manual rotation in Settings | Auto-refresh, revocable in Settings | | Multi-user | One key per machine | Each user signs in separately | ## Key Features ### Kanban Boards - Drag-and-drop Kanban boards with customizable columns - WIP (Work In Progress) limits per column to keep teams focused - Three sub-columns per column: Inbox, Done, Blocked — no configuration needed - Board templates for common workflows - Real-time updates via WebSocket — changes appear instantly for all board members - Updates are queued while you drag cards, so teammate changes never interrupt your work ### Command-Line Interface (CLI) - Full-featured CLI built in Rust for instant startup and zero overhead - Open source at https://github.com/taskleef/cli - Create, complete, list, and manage todos from the terminal - Full feature parity with the web interface - Pipe-friendly output for scripting and automation ### Agentic AI - AI that reads your board state, takes actions, and holds multi-turn conversations - Creates cards, moves them between columns, applies tags, and reorders work - Natural language task creation: "Call the vet Tuesday at 3pm #personal" - Conversational AI scoped to each board and column - Bring your own model: Claude, GPT, or Gemini — no vendor lock-in ### Task Management - Subtasks with drag-to-promote (drag a subtask out to make it independent) and drag-to-nest - Defer dates: hide tasks until you're ready, they reappear automatically - Smart recurring tasks with multiple modes: - Fixed interval: daily, weekly, monthly, specific days of the week - Repeat after completion: countdown starts when you finish the task - Combinations: "Every weekday" or "Every 3 months after done" - Priority levels: Low, Medium, High, Urgent - Tags for flexible categorization ### Integrations - GitHub: merge a PR and the linked task is marked complete automatically (bidirectional sync on paid plans, notifications on Free) - Slack: create tasks with /taskleef, get assignment DMs, pipe board activity to a channel (bidirectional sync on paid plans, notifications on Free) - Outbound webhooks for CI/CD pipeline status - GitHub SSO: sign in with your GitHub account - Google SSO on Team plan and above ### iOS App - Native iPhone app available on the App Store - Natural language quick capture: "Go fishing every tuesday at 9am #Friends" — parsed, scheduled, filed - Annoying notifications: repeat every 5 minutes for up to 50 minutes until you deal with the task - Siri integration: "Hey Siri, remind me to..." lands in Apple Reminders, TaskLeef pulls it in automatically - Repeat-after-completion support - Real-time sync with web Kanban boards - Download: https://apps.apple.com/us/app/taskleef/id6758025048 ### Real-Time Collaboration - WebSocket-based live updates across all connected clients - Surgical state merges: incoming data never clobbers your local UI state - Role-based board sharing with comments and activity timeline - Guest access on Team plan and above ## REST API Base URL: `https://taskleef.com/api` Authentication: API Key via `X-API-Key` header (recommended) or JWT Bearer token. ### Endpoints #### Todos - `GET /api/todos` — List all todos - `GET /api/todos/{id}` — Get a specific todo - `GET /api/inbox` — Get todos not assigned to any project - `POST /api/todos` — Create a todo (fields: title, description, dueDate, priority, projectId) - `PUT /api/todos/{id}` — Update a todo - `PATCH /api/todos/{id}/complete` — Toggle completion status - `DELETE /api/todos/{id}` — Delete a todo - `POST /api/todos/{parentId}/subtasks` — Create a subtask #### Projects - `GET /api/projects` — List all projects - `POST /api/projects` — Create a project - `PUT /api/projects/{id}` — Update a project - `DELETE /api/projects/{id}` — Delete a project #### Kanban Boards - `GET /api/boards` — List all boards - `POST /api/boards` — Create a board - `GET /api/boards/{id}` — Get a board with columns and cards - `PUT /api/boards/{id}` — Update a board - `DELETE /api/boards/{id}` — Delete a board #### Columns - `POST /api/boards/{boardId}/columns` — Create a column - `PUT /api/columns/{id}` — Update a column (name, WIP limit, position) - `DELETE /api/columns/{id}` — Delete a column #### Cards - `POST /api/columns/{columnId}/cards` — Create a card in a column - `PUT /api/cards/{id}` — Update a card - `PATCH /api/cards/{id}/move` — Move a card to a different column or position - `DELETE /api/cards/{id}` — Delete a card #### Tags - `GET /api/tags` — List all tags - `POST /api/tags` — Create a tag - `PUT /api/tags/{id}` — Update a tag - `DELETE /api/tags/{id}` — Delete a tag - `POST /api/todos/{todoId}/tags/{tagId}` — Add a tag to a todo - `DELETE /api/todos/{todoId}/tags/{tagId}` — Remove a tag from a todo #### Comments - `GET /api/todos/{todoId}/comments` — List comments on a todo - `POST /api/todos/{todoId}/comments` — Add a comment - `PUT /api/comments/{id}` — Update a comment - `DELETE /api/comments/{id}` — Delete a comment ## Pricing ### Free — $0 - Up to 5 Kanban boards - Up to 5 users per board - Unlimited tasks - Full CLI access - API access - GitHub & Slack notifications (one-way) - GitHub SSO ### Pro — $8/month ($6/month billed annually) - Unlimited boards - Up to 10 users per board - Full CLI access - Advanced Kanban (WIP limits, board templates) - Bidirectional GitHub & Slack sync - Outbound webhooks - GitHub SSO - Priority support ### Team — $15/month per user ($12/month billed annually) - Unlimited boards and users - Team workspaces - Role-based permissions - Bidirectional GitHub & Slack sync - Outbound webhooks - GitHub SSO + Google SSO - Guest access - Advanced reporting - Audit logs - Priority email support ### Enterprise — Custom pricing - Everything in Team - SAML SSO & SCIM provisioning - Advanced security controls - Custom data retention - Uptime SLA - Dedicated account manager - Custom webhook integrations All paid plans include a 7-day free trial with no credit card required. 30-day money-back guarantee on all paid plans. ## Frequently Asked Questions ### Can I switch plans later? Yes. You can upgrade or downgrade at any time. Upgrades are prorated immediately. Downgrades take effect at the end of the current billing period. ### What payment methods do you accept? All major credit cards and PayPal, processed securely through Paddle. ### Is there a free trial? Yes. All paid plans include a 7-day free trial with no credit card required. ### What happens if I exceed my limits? You'll be notified before hitting limits. No data is lost, but you'll need to upgrade to add more boards or team members. ### Can I get a refund? Yes. 30-day money-back guarantee on all paid plans. Contact hello@taskleef.com. ### Do you offer discounts for non-profits? Yes. 50% off for registered non-profit organizations and educational institutions. Contact hello@taskleef.com. ### How does TaskLeef compare to other task managers? TaskLeef is the only task manager with an MCP server, which means AI coding assistants can manage your tasks natively. Claude users can connect via the standard custom-connector OAuth flow with no shared API keys. It also has a full Rust CLI (not just a quick-add shortcut), agentic AI that takes real actions on your board, and native iOS with features like annoying notifications and repeat-after-completion. Most task managers are designed for project managers; TaskLeef is designed for developers. ### How do I add TaskLeef to Claude.ai or Claude CoWork? Open Settings → Connectors → Add custom connector, paste `https://taskleef.com/mcp/messages` as the server URL, and leave the OAuth fields blank. Claude provisions an OAuth client automatically (RFC 7591 Dynamic Client Registration), opens a browser tab to taskleef.com for sign-in, and you authorize the connection. Each user signs in with their own TaskLeef account, so there's no shared key to leak. Full setup walkthrough: https://taskleef.com/docs#claude-cowork ### Does the Claude connector use my password? No. The OAuth flow happens entirely between your browser, taskleef.com, and Claude. Claude only receives an access token scoped to MCP, with `aud=https://taskleef.com/mcp` so it can't be replayed against any other API. Tokens auto-refresh, and you can revoke a connection at any time from Claude's settings. ### Can I use the same TaskLeef account from Claude Code and Claude.ai? Yes. Claude Code uses an API key from Settings → API Keys; Claude.ai / CoWork uses OAuth. Both authenticate the same TaskLeef user, see the same boards and todos, and use the same 40 MCP tools. You can be signed in via both transports simultaneously. ### Will Claude warn me before destructive actions? Yes. All 40 tools are annotated with `readOnlyHint`, `destructiveHint`, or `idempotentHint` per the MCP specification. Destructive tools (`delete_todo`, `board_delete`, `column_delete`, `card_delete`, `member_remove`, `tag_delete`, `comment_delete`) are flagged so Claude prompts for confirmation before executing them. ## Links - Website: https://taskleef.com - Pricing: https://taskleef.com/pricing - Documentation: https://taskleef.com/docs - Claude Code setup: https://taskleef.com/docs#mcp-server - Claude.ai / CoWork setup: https://taskleef.com/docs#claude-cowork - iOS App: https://taskleef.com/ios - GitHub organization: https://github.com/taskleef - CLI (open source): https://github.com/taskleef/cli - App Store: https://apps.apple.com/us/app/taskleef/id6758025048 - Contact: hello@taskleef.com