Task management for AI coding agents: a Dovilo MCP setup guide

· 10 min read · Selahaddin Akgün

Illustration of a robot and a cat at their laptops sharing one task list, connected to a central server along with a document and a code folder

If you run coding agents on multi-step projects, you have probably hit this wall: the agent finishes a session, context resets, and the next run has no idea what was done, what is still in progress, or what comes next. The fix is to give the agent a persistent, structured task list it can read and update between sessions. This guide walks through how to do that with Dovilo's Agents MCP at dovilo.app/mcp/agents, which any MCP client can reach over HTTPS.

I built this layer because I wanted my own coding agent to work a real task list instead of a scratch file. One engineer, in Istanbul. What follows is exactly how it works, including what it doesn't do yet.

The problem: agents lose the thread between sessions

Claude Code, Cursor, Windsurf, Codex CLI, Gemini CLI and Claude Desktop can all handle complex, multi-step work. Most of them can plan inside a session, and several read a rules or memory file you maintain. What none of that gives you is a shared task list with real status, that survives between sessions and that you can check from your phone.

Pasting a task list into a prompt works for one session. By the third, you are re-explaining context, re-stating what is finished and tracking state in a doc somewhere.

What you want is a list the agent reads at the start of a session, updates as it works, and leaves in a known state when it stops. That is a task manager problem, not a prompting problem.

What MCP is (the short version)

The Model Context Protocol is an open standard that lets AI agents call external tools through a defined interface. Linear and Notion both ship official MCP servers.

What varies between implementations is what the server exposes, where it runs and what the agent is allowed to do. Those details matter more than the protocol itself.

How Dovilo's MCP server works

The server runs at https://dovilo.app/mcp/agents (Streamable HTTP). Your agent client connects with one API key per agent, created in the Dovilo app and shown once. No npx, no separate runtime, and nothing has to run on your machine: Dovilo Desktop does not need to be open.

The agent sees only the AI tasks of the projects it is assigned to. Your personal to-do list is not on the tool surface at all.

The AI tasks sync to your phone and to Desktop, encrypted in transit and at rest. That is how the agent's step trail shows up on mobile while it works, wherever it runs.

Full integration details are at dovilo.app/ai.

Setting up Dovilo's MCP server: step by step

Setup takes about 5 minutes.

Step 1: Start the Pro trial on mobile

Dovilo Desktop is part of Pro: $2.49/month, $19.99/year or $49.99 lifetime. Every plan has a 7-day free trial, started in the iOS or Android app. Cancel before day 7 and nothing is charged.

Get the app on the App Store or Google Play.

Step 2: Install Dovilo Desktop (optional)

The agent does not need Desktop, but its "Connect a new AI" wizard writes the client config for you. Download Desktop for Windows or macOS and sign in with the same account you use on mobile. Release notes are in the changelog.

Step 3: Create an agent and connect your client

Each agent gets its own key, shown once.

  • On Desktop: open Connect a new AI and pick your client. Desktop writes the config for Claude Code, Claude Desktop, Cursor, Cursor CLI, Codex CLI, Gemini CLI and Windsurf.
  • On your phone: with the AI Tasks module on, open the agents chip on the AI Tasks tab, tap New agent, pick its projects and copy the key.
  • Any other MCP client: point it at https://dovilo.app/mcp/agents with the key as the bearer token.

To verify in Claude Code, run /mcp. You should see the Dovilo server connected, with 9 tools. Plain MCP, no lock-in.

Step 4: Create a project and write the brief

AI tasks live inside projects. Each project has a brief the agent reads first: goals, constraints, conventions and what to leave alone. A project can also hold documents, such as a spec or a style guide, that the agent reads when a task needs them. An agent sees only the projects it is assigned to.

Step 5: Add tasks in the AI Tasks tab

Add the jobs you want the agent to work through, on desktop or from your phone. This list is separate from your personal My Tasks list, which the agent cannot see.

Step 6: Ask the agent to start

The agent does not start on its own. Ask it in plain language, for example: "take my next Dovilo task and work it". It reads the brief, picks up a task and reports back as it goes.

The 9 tools: read and update only

The server exposes 9 tools, 3 read and 6 write, all scoped to the AI tasks of the agent's projects.

Tool Access What it does
list_tasks read AI tasks in the agent's projects, with status
get_task read One task in full: description, steps, notes, telemetry, your latest reply
read_context read The project brief and the context the task carries
update_status write Moves a task between statuses
update_step write Marks a plan step started or finished
add_step write Appends a step the agent discovered
skip_step write Skips a step that turned out unnecessary
append_note write Records what it did, decided or could not do
append_telemetry write Reports model, tokens, cost and duration

The agent writes status, steps, notes and telemetry. It cannot edit the task you wrote, it cannot create tasks and it cannot delete anything.

That is deliberate. Creating and deleting work are decisions that stay with you. An agent that can create tasks will create tasks, and an agent that can delete tasks can lose work.

Two more limits: the agent cannot see projects it is not assigned to, and if you revoke its key from your phone, its connection drops immediately. An agent can cancel a task with a reason, but cancelling is not deleting: the task stays visible.

Why the personal list is invisible to the agent

My Tasks is Dovilo's personal to-do list, where you track your own work.

It is not on the MCP tool surface at all. There is no filter that hides it and no setting that could be misconfigured. The agent has no tool that reads it, updates it or reveals that it exists.

That keeps ownership clear. The AI Tasks list is the agent's workspace. My Tasks is yours.

Statuses, steps and telemetry on the phone

Every AI task moves through the same statuses: queued, scheduled, running, awaiting-user, done, done-with-errors and error. A cancelled task is an error with a reason, shown as Cancelled.

awaiting-user is the important one. When the agent needs a decision it cannot make, it sets that status and stops, instead of guessing. Your reply puts the task back in queued for the agent's next turn.

An AI task can also be scheduled to open to the agent at a set time and repeat daily, weekly, monthly or yearly. One open instance per series; missed occurrences are skipped.

On mobile, the step trail, notes and telemetry land on each task in real time while the agent runs, wherever it runs. The list is grouped by what needs you: awaiting you, running, queued, scheduled. Finished work moves to "Recently done" with its step count. Notifications come in two modes: every step, or only start, finish and error.

Telemetry is per task and reported by the agent through append_telemetry: model, tokens, cost and duration. Over time it shows you which kinds of tasks are cheap and which are expensive for a given model.

Webhooks: tell your own systems a task moved

Dovilo can send signed webhooks when an AI task changes, to Slack, Linear, n8n, LangGraph or any HTTPS receiver.

  • Events: task.created and task.status_changed, which carries previousStatus. A test button sends webhook.ping.
  • Setup: in Desktop, open a project's settings, go to Webhooks, paste the URL, generate a signing secret and enable the events. The secret is shown once.
  • Who delivers: a public HTTPS receiver gets its webhooks from Dovilo's server, even when Desktop is closed; that secret is generated on the server and stored encrypted. A localhost receiver is delivered by Desktop while it runs.
  • Signature: X-Dovilo-Signature carries a timestamp and an HMAC-SHA256 of the raw body, with a 5-minute replay window.
  • Delivery: X-Dovilo-Delivery stays the same across retries, so use it as your idempotency key. Up to 5 retries, in order per task.

Payloads are slim on purpose. The webhook tells your system a task moved, and MCP is how the agent then reads it, works it and reports back.

The open-source LangGraph demo runs that loop end to end. Full reference, with verification code in Node, Python and Go: dovilo.app/docs/webhooks.

A real workflow example

You have a project whose brief describes a TypeScript API: stack, test conventions, and "don't touch the billing module". The AI Tasks list has five jobs:

  1. Add input validation to the user endpoint.
  2. Write unit tests for the auth module.
  3. Fix the pagination bug in the posts query.
  4. Update the README with the new env vars.
  5. Refactor the error handler to use a shared utility.

You open Claude Code and say "take my next Dovilo task and work it". The agent reads the brief, lists the queued tasks, opens the first one and sets it to running.

It marks each plan step as it finishes it. While fixing pagination it finds the query needs an index, so it adds that as a new step. On the error handler it hits a choice that would change the API's error format, so it writes a note explaining the trade-off, sets the task to awaiting-user and stops.

Your phone shows the question. You answer, and the next session picks it up.

If a session ends mid-task, the task stays running with its step trail and notes. The next session reads it with get_task and continues from the last finished step.

No re-pasting context, no manually updated doc. The task list is the source of truth.

What Dovilo doesn't do yet

Two things, named plainly.

  • No data export. On the public roadmap.
  • No desktop-only trial. The 7-day trial starts in the mobile app.

I'd rather say that here than have you find out after setup.

Requirements and compatibility

  • Pro: $2.49/month, $19.99/year or $49.99 lifetime, with a 7-day free trial started in the mobile app. Dovilo Desktop for Windows and macOS is included; the agent does not need it to run.
  • Clients with presets: Claude Code, Claude Desktop, Cursor (GUI and CLI), Windsurf, Codex CLI, Gemini CLI. Any other MCP client connects with the URL and a key.
  • AI tasks run on a monthly quota: 15 a month on Pro, charged when a task opens to the agent, not when it is created. One-time top-up packs of +10, +30 or +75 tasks start at $0.99 and never expire.

Frequently asked questions

Does MCP traffic go through Dovilo's servers? Yes. The Agents MCP runs at dovilo.app/mcp/agents, and your agent reaches it over HTTPS with its own key. It sees only the AI tasks of its projects; your personal list is not on the tool surface. The agent's model calls go to its own model provider, not through Dovilo.

Can the agent see my personal to-do list? No. My Tasks is not on the MCP tool surface at all. The agent sees only the AI tasks, briefs and documents of the projects it is assigned to.

Can the agent create or delete tasks? No. The 9 tools are read and update only. The agent can change status, steps, notes and telemetry, and nothing else.

Which agent clients are supported? Claude Code, Claude Desktop, Cursor, Windsurf, Codex CLI and Gemini CLI have presets. Any client that speaks MCP over HTTP works with the URL and a key.

What happens if I revoke an agent's key? Its connection drops immediately and it can't keep working through Dovilo.

Can I run the agent on a remote server? Yes. Agents connect to dovilo.app/mcp/agents over HTTPS with their own key, so a server or a CI job works the same way as your laptop. Dovilo Desktop does not need to run.

How does the quota work? Pro includes 15 AI tasks a month, charged when a task opens to the agent; replies on the same task cost nothing. The count is shown in the AI Tasks view. If you need more, one-time top-up packs start at $0.99 and never expire.

Can ChatGPT or Claude plan into Dovilo? Yes. Connect ChatGPT, Claude, Gemini or Grok; the assistant proposes a plan or an AI task and you approve it in Dovilo. Sending a plan is free; approving needs Pro.

Get started

If you run coding agents on multi-step work and want a persistent task list they read and update between sessions:

  1. Start the 7-day free trial in the mobile app: App Store or Google Play.
  2. Create an agent in the app and copy its key.
  3. Point your client at https://dovilo.app/mcp/agents, or let Desktop for Windows or macOS write the config.

Read the integration before you install anything: dovilo.app/ai.

Dovilo turns finished work into a city you can see.

A to-do list, focus sessions with full-screen ambience, and an isometric city built from what you complete. Free on iOS and Android.