Done Bear

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

Community: Submitted by a user or imported; check the owner before granting accessDegradedNo sign-inGlobalFreeCan modify data

What it can do

    What data it sees

    Do you need an account

    No: the server works without sign-in

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

    How to connect

    How to connect Done Bear to Claude

    The server address to paste into Claude settings:

    https://mcp.donebear.com/mcp

    1. Open Claude (claude.ai or the desktop app).
    2. Go to Settings → Connectors.
    3. Click Add custom connector.
    4. Paste the server address copied below into Remote MCP server URL and click Add.
    5. In a chat, click + → Connectors and switch the new connector on.

    Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

    Authorization

    After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

    How to connect Done Bear to ChatGPT

    The server address to paste into ChatGPT settings:

    https://mcp.donebear.com/mcp

    1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
    2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
    3. Open Settings → Connectors and click Create.
    4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
    5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
    6. In a new chat open + → Apps/Connectors and enable the connector.

    OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

    Authorization

    On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

    How to connect Done Bear to Cursor

    The server address to paste into Cursor settings:

    https://mcp.donebear.com/mcp

    Fastest: click Open in Cursor below and confirm the prompt.

    Manually:

    1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
    2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
    3. Save the file. The server appears in the MCP list; authorize it there if asked.

    Authorization

    If the service needs sign-in, an authorize button appears next to the server in the MCP list.

    Server tool list (15)

    Raw names from tools/list. Only developers need these.

    guideRead 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 and a start date. - `editing`: Changing a task's fields, clearing a value, appending to notes, or moving a task between projects. - `bulk`: Completing, moving, or editing more than one task at a time, or sweeping a whole view. - `checklists`: Adding sub-steps to a task, building a list inside a task, or ticking items off. - `comments`: Discussing a task with teammates: reading its thread, replying, or correcting a comment. - `projects`: Deciding where a task belongs, creating a project or label, changing a project's status, or joining/leaving a project. - `search`: Looking a task up, listing a view, paging through results, or orienting in a new workspace. - `workspaces`: Working across multiple workspaces, hitting a permission or rate-limit error, or making retries safe. - `agents`: Starting work in a Done Bear workspace for the first time. - `importing`: The user asks how to move their tasks in from Todoist, Things, Trello or a CSV.
    get_contextGet 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.
    task_listList 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` tasks; `hasMore` is true when more matched than were returned.
    task_showGet 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_addCreate a new task. The `when` parameter controls which GTD view it appears in: today (default), inbox, upcoming, anytime, or someday. A new task lands in Today unless you say otherwise, so pass `when: "inbox"` for a capture the user has not committed to doing today. Because the default is date-dependent, always pass the user's `timezone` — without it today is resolved in UTC. Dates use YYYY-MM-DD format. Optionally set an assignee, attach labels, and create checklist items at creation. For a task with sub-items (e.g. a shopping list), pass them in `checklist` in one call: their order is preserved exactly.
    task_editUpdate 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 tasks applies the same changes to every one of them and cannot be undone in one call, so confirm the list with the user first.
    task_doneMark 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_reopenReopen a completed task, or several at once with `tasks` (max 50). Each returns to its previous view.
    task_archiveArchive a task, or several at once with `tasks` (max 50). They move to the Trash view, out of every working list. Confirm with the user first.
    projectCreate 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.
    searchSearch 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.
    checklistChange 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 item's id and state, from task_show.
    commentWrite 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 no Trash — so confirm with the user first. Read the thread with task_show and `include: ["comments"]`.
    attachmentAdd 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: ["attachments"]`. Limited to 10 attachments per task and 10 MB per file. Allowed types: images (jpeg, png, gif, webp, heic), PDF, CSV, Markdown, and plain text.
    label_createCreate a new label in the workspace.