Todog
A task manager that ships its own MCP server, so my assistant can file a task as well as I can.
- TypeScript
- Next.js
- MCP
What it is
A task manager I actually use. Projects nest, so work can sit under Work → Work day instead of in one undifferentiated pile, and meetings get captured alongside the tasks that came out of them. The part that makes it more than another todo app is the MCP server it ships with. Tasks can be created, searched and updated by an AI assistant with the same fidelity as by hand.
Why I built it
I kept hitting the same wall with every other task app. The assistant could only reach it by pretending to be a human: scrape a page, drive a browser, or hope there’s a REST API with an OAuth dance attached and no notion of what a “project” means. All of that is brittle, and it produces the worst kind of failure, which is silently creating the task in the wrong place.
Meanwhile I was finding that half my tasks arrived mid-conversation. “Remind me to chase that” is a sentence I say to Claude far more often than it’s a thing I type into an app. If capture is the hard part of any task system, the assistant needs to be a proper client and not a guest.
How it works
A fairly ordinary Next.js app over a relational store, with the usual hierarchy of projects, tasks and meetings. The MCP server sits alongside the web UI over that same domain model instead of on top of it. Tools cover the operations that matter conversationally: create a task, search across projects, update status, list projects, pull recent meetings.
The design constraint is that the tool surface has to be small enough for a model to use well and specific enough that it can’t quietly do the wrong thing. The project hierarchy is the sharp edge, because a task created at the wrong level is invisible in practice. So the tools push toward naming a project explicitly instead of letting the model guess.
Where it is now
Live, and running my week. The Memory MCP vault came out of the same instinct pointed at a different problem, and both of them give the assistant the real domain model instead of a screen to read.