Dooist MCP Server

The agent todo app. Task management built for AI agents, not people.

README.md

Dooist

The agent todo app. Task management built for AI agents, not people.

Why

Every Claude Code session starts blank. No memory. No state. Your agent doesn't know what it was working on yesterday.

So you re-explain. Re-paste the spec. Re-describe the goal. Every single time.

That's not a workflow. That's babysitting.

The Fix

Dooist is an MCP server where every task carries rich context — intent, spec plan, desired outputs, current status. Any Claude session picks up any task and knows exactly what to do.

No claude --resume. No re-explaining. Context lives in the task, not the session.

create_task "Deploy auth service" with full context → spec, plan, status

Next session:

get_task → agent picks up exactly where it left off

Agent-Native Design

Most developer tools with "AI support" are human tools with an API bolted on. That's backwards.

Agents don't need pretty UIs. They need structured data, rich context fields, and tool interfaces that match how they actually work — stateless, parallel, fast.

  • list_tasks shows titles and a [has context] flag. Scannable. No noise.
  • get_task returns the full markdown body — intent, plan, desired outputs.
  • create_task supports parallel calls. Create 10 tasks in one message.

Information architecture matters for agents too. Don't dump everything at once.

What This Looks Like

Run headless Claude Code against your inbox. It triages emails into tasks with full context — who sent it, what they need, deadline. Next Claude session picks up those tasks and executes.

Slack messages, meeting transcripts, texts — all of it generates work. An agent parses your inputs, creates tasks with full context, prioritizes them, and starts working the queue.

No human in the loop for task creation. The agent manages its own backlog.

Install

claude mcp add dooist -- npx dooist

Restart Claude Code. Done.

Teach Claude Your Workflow (Optional)

Installing the MCP server gives Claude the tools. This step teaches it when to use them — proactively suggesting tasks, checking your backlog, adding rich context.

Dooist ships a `DOOIST_CLAUDE.md` file you can import into your CLAUDE.md. One line:

# Create the rules directory if it doesn't exist
mkdir -p ~/.claude/rules

# Download the instructions
curl -fsSL https://raw.githubusercontent.com/paperMoose/dooist/main/DOOIST_CLAUDE.md \
  -o ~/.claude/rules/dooist.md

# Add the import to your global CLAUDE.md
echo '@~/.claude/rules/dooist.md' >> ~/.claude/CLAUDE.md

That's it. Every Claude Code session now knows how to use Dooist — checking tasks on planning conversations, suggesting task creation when you mention future work, and including rich context automatically.

What this changes:

  • "We should fix that later" → Claude asks "Want me to track that in Dooist?"
  • "What should I work on?" → Claude checks your task list
  • Bugs found during work → Claude suggests creating a task
  • Session ends mid-task → Claude updates context so the next session picks up

To remove: Delete the @~/.claude/rules/dooist.md line from your CLAUDE.md.

Usage

Just talk:

"remind me to fix the auth bug tomorrow"
"what's on my plate this week"
"show me the full context for that deploy task"
"scan this repo for TODOs and create tasks from them"

Tools

Tool What it does
create_task Add task with context, due date, priority, labels, parentId
get_task Full task details including rich context body
list_tasks Filter by project, label, status, parentId — scannable summaries
complete_task Mark done
update_task Change anything including context and parent
delete_task Remove (cascades to subtasks)
add_task_update Append timestamped status update to a task
today Due today + overdue
upcoming Next N days
scan_todos Find TODO/FIXME/HACK comments in codebase
list_projects All projects
create_project New project
list_labels All labels
create_label New label

Features

  • Rich task context: Markdown body with intent, plan, outputs, status
  • Subtasks: Nest tasks with parentId, cascade delete, filter by parent
  • Task updates: Timestamped activity log per task
  • Natural language dates: "tomorrow", "next monday", "in 3 days"
  • Priorities: P1 (urgent) through P4 (low)
  • Labels: @work, @personal, @urgent
  • Projects: Grou

Tools 14

create_taskAdd task with context, due date, priority, labels, parentId
get_taskFull task details including rich context body
list_tasksFilter by project, label, status, parentId
complete_taskMark task as done
update_taskChange anything including context and parent
delete_taskRemove task and cascade to subtasks
add_task_updateAppend timestamped status update to a task
todayList tasks due today and overdue
upcomingList tasks for the next N days
scan_todosFind TODO/FIXME/HACK comments in codebase
list_projectsList all projects
create_projectCreate a new project
list_labelsList all labels
create_labelCreate a new label

Try it

Remind me to fix the auth bug tomorrow.
What's on my plate this week?
Show me the full context for that deploy task.
Scan this repo for TODOs and create tasks from them.

Frequently Asked Questions

What are the key features of Dooist?

Rich task context with markdown support for intent, plans, and outputs. Hierarchical subtasks with cascading delete and filtering. Timestamped activity logs per task. Natural language date parsing for deadlines. Agent-native design for stateless, parallel task management.

What can I use Dooist for?

Maintaining task state across multiple Claude Code sessions. Triaging emails or Slack messages into a structured task backlog. Automatically tracking bugs found during development as tasks. Managing complex project workflows with nested subtasks.

How do I install Dooist?

Install Dooist by running: claude mcp add dooist -- npx dooist

What MCP clients work with Dooist?

Dooist works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Dooist docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Open Conare