DB

Done Bear

com.donebear/donebear

Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.

Compare
Yes, your AI can use this right now.Answered a live MCP handshake in 549 ms with no sign-in needed and exposes 17 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://mcp.donebear.com/mcp

17 tools, verified live

Pulled straight from the server with tools/list on 2026-10-18.
guideread-only

Read Done Bear's guide for one topic: what the data means, how it relates to the rest of the product, and how to use it well. Load a topic before doing that kind of work for the first time in a session. - `views`: Placing a task in Inbox/Today/Upcoming/Anytime/Someday, reading a view, or working out why Today looks wrong. - `dates`: Setting or clearing a due date, or deciding between a deadline a

get_contextread-only

Get a snapshot of the current workspace: task counts per view, recent open tasks, and every project, label, team and member. This is the tool that answers what is in the workspace and resolves a project, label, team or member by name — there is no separate list tool for those. Use it for that, not as a warm-up before every turn. For tasks themselves use task_list (a view), search (by words) or t

task_listread-only

List tasks in the workspace, most recently updated first. Completed tasks are ordered by completion time, newest first. Filter by view (inbox, today, upcoming, anytime, someday, logbook, trash) and/or state (open, done, archived, all); `search` ranks matches within that filter. `view: "logbook"` reads completed tasks and `view: "trash"` archived ones, whatever `state` says. Returns up to `limit` t

task_showread-only

Get full details for a single task: its fields, labels and checklist items, by workspace-scoped task number. Add `include` for the parts that cost extra reads: `["comments"]` for the discussion thread (oldest first, with author and whether each was edited) and `["attachments"]` for the files on it, each with a short-lived signed URL.

task_add

Create a new task. An explicit `when` selects its start placement: today, inbox, upcoming, anytime, or someday; upcoming schedules tomorrow. Without `when`, a `deadline` or omitted `timezone` selects anytime first. Otherwise, a `project` or `team` selects inbox; an unfiled task selects today. Pass the user's known IANA `timezone` to resolve calendar days. Use `when: "inbox"` for capture without a

task_editcan modify

Update fields on one task (`task`) or on several at once (`tasks`, max 50). Only the provided fields are changed; omitted fields are left untouched. To remove a value, list the field in `clear` (e.g. `clear: ["deadline"]`). Notes replace the existing notes (no append). `assignee` assigns the task; clear it to unassign. `add_labels` and `remove_labels` change which labels are on it. Editing several

task_agent_getread-only

Read the task-agent identity bound to this connection's existing API key in one explicit workspace. Returns only key metadata and the exact agent UUID or null; an inactive agent includes disabledAt. Requires an API-key connection and current workspace membership. Does not register, assign or start any task. Use this before task_agent_register and retain key.id as expected_key_id.

task_agent_register

Explicitly register one assignable task agent for this connection's existing key in one workspace, after the user approves that durable binding. Requires a write-scoped API key restricted to exactly this workspace and an owner/admin membership. Read task_agent_get first and pass its key.id as expected_key_id. Same key/workspace/name retries return the same UUID; conflicting or inactive bindings fa

task_done

Mark a task as complete, or several at once with `tasks` (max 50). They move to the Logbook view. A set of 50 is undone one task_reopen call at a time, so confirm the list with the user first.

task_reopen

Reopen a completed task, or several at once with `tasks` (max 50). Each returns to its previous view.

task_archivecan modify

Archive a task, or several at once with `tasks` (max 50). They move to the Trash view, out of every working list, and stay readable there (task_list `view: "trash"`). Archiving is not completing: use task_done for work that was finished, and task_archive only for tasks the user wants gone. Confirm with the user first.

projectcan modify

Create or change a project. `action: "add"` creates one (name required). `action: "edit"` updates the named project: only the fields given change, and an empty string clears description or target_date. `action: "join"` puts it in the caller's Your projects sidebar list and `action: "leave"` takes it out. Read projects with get_context.

searchread-only

Search tasks across the workspace. Ranked lexical search over title and description: exact and prefix matches rank first, then word-boundary, substring, and fuzzy matches, with recency and status factored in. Multi-word queries match in any order. Searches every state by default, completed and archived included. Use this when the user names a task by its words; use task_list to browse a view (Toda

checklistcan modify

Change the checklist on a task. `action: "add"` appends items, unchecked, after the existing ones: pass every title for a multi-item list in one call (`titles` keeps the given order, while parallel single adds land in arrival order). `action: "edit"` renames an item and/or checks it (`completed: true`) or unchecks it (`completed: false`). `action: "remove"` deletes one. Read the list, with each it

commentcan modify

Write on a task's comment thread. `action: "add"` posts a comment, attributed to the connected user and visible to everyone in the workspace, so write it as a message to the user's teammates rather than a note to the user; nobody is notified. `action: "edit"` rewrites one of your own (only its author may, and it is then marked edited). `action: "remove"` deletes one permanently — comments have n

attachmentcan modify

Add a file to a task or remove one. `action: "add"` fetches the given HTTPS `url`: the server downloads it, verifies its size and type, and stores it, so the model never sends file bytes. Pass a stable idempotency_key and reuse it for retries so a lost response cannot upload the file twice. `action: "remove"` deletes the named `attachment`. Read a task's files with task_show and `include: ["attach

label_create

Create a new label in the workspace and return its id. Only creates the label: to put it on a task, pass it to task_add `labels` or task_edit `add_labels` afterwards (both take the title). Titles are not unique, so a second call with the same title makes a duplicate — check the labels get_context returns first, and reuse one that already exists.

Alternatives in Productivity

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”