databasedmcp

← Articles

Alternative to Trello: a personal kanban board with Claude

Keep boards, lists and cards for your own projects, and move cards along by telling Claude what you're working on.

6 min read

databasedmcp gives your AI assistant databases it keeps between conversations, so everything in this article works from the day you connect it. Free to start, no card.

Get started free

Why build it yourself

A typical Trello setup is a board per project, three or four lists across it, and cards that move left to right as work gets done. One look at the board tells you what's waiting, what's in progress and what's finished.

That's three tables, and moving a card means changing one number. If you talk projects through with Claude, it can keep the board as you go: "I've started on the tiles" moves the card to Doing. A board shows what's been stuck for two weeks only if you look closely. Here you ask, and a query answers.

Connect Claude to databasedmcp

databasedmcp is a remote MCP server that gives AI assistants private SQLite databases, with nothing to install.

In Claude on the web, desktop or mobile, open Settings → Connectors, choose Add custom connector and enter https://databasedmcp.com/mcp. Select Connect, sign in to databasedmcp with your email or Google, and select Allow. Then turn databasedmcp on for a conversation from the tools menu.

Claude asks before it runs anything that changes or deletes data. Reading runs without asking.

Any other MCP client works the same way; the docs have the details.

Copy this prompt to build it

Paste this into Claude to set up the database, its tables and its guide in one go. The rest of this article walks through what it makes and how you use it.

prompt
Set up a personal kanban board for me in databasedmcp, in one go.

1. Create a database called kanban, described as "My kanban boards: boards, lists and cards, moved by Claude when I say what I'm working on".
2. Create three tables:
   - boards: id, name (required, unique), archived_at (NULL while the board is in use).
   - lists: id, board_id (references boards), name (required, such as To do, Doing, Done), position (number, left to right).
   - cards: id, list_id (references lists), title (required), description, position (number, top to bottom), due (date, optional), created_at and moved_at (both default to now).
3. Write the database a guide that says what each table is for, that a new board gets the lists To do, Doing and Done unless I ask for others, that moving a card means changing its list_id and setting moved_at, that a new card goes to the bottom of its list, and the queries for "show me the board", "what's been stuck in Doing for two weeks" and "what got done this month".

From then on: when I mention something for a project, add a card to its board. When I say I've started or finished something, move the card. When I ask to see a board, list its cards by list and position. Show me the tables when you're finished.

Ask for the database

You don't write the schema. Describe what you want:

Set up a kanban board in databasedmcp: boards, lists like To do, Doing and Done, and cards. When I mention a task for a project, add a card; when I start or finish it, move it.

Claude creates a database called kanban and its tables:

schema
CREATE TABLE boards (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL UNIQUE,
  archived_at TEXT
);

CREATE TABLE lists (
  id INTEGER PRIMARY KEY,
  board_id INTEGER NOT NULL REFERENCES boards(id),
  name TEXT NOT NULL,
  position INTEGER NOT NULL
);

CREATE TABLE cards (
  id INTEGER PRIMARY KEY,
  list_id INTEGER NOT NULL REFERENCES lists(id),
  title TEXT NOT NULL,
  description TEXT,
  position INTEGER NOT NULL,
  due TEXT,
  created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
  moved_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
);

It also writes the database a guide on how the tables are meant to be used. The guide comes back with the schema whenever an assistant looks the database up. Claude files things the same way next week as today, and so does any other assistant you connect.

guide
# kanban: my boards

- **boards**: one per project. Look one up by name before adding. A new board gets the lists To do, Doing, Done.
- **lists**: columns on a board, left to right by `position`.
- **cards**: one per piece of work. A new card goes to the bottom of its list (max position + 1). To move a card, set `list_id` and `moved_at`.

The board: `SELECT l.name AS list, c.id, c.title, c.due FROM lists l LEFT JOIN cards c ON c.list_id = l.id WHERE l.board_id = 1 ORDER BY l.position, c.position`

Stuck in Doing: `SELECT c.title, c.moved_at FROM cards c JOIN lists l ON l.id = c.list_id WHERE l.name = 'Doing' AND c.moved_at < datetime('now', '-14 days')`

Use it

From here on you talk, and Claude writes the rows. Each request below is one statement:

Start a board for the kitchen renovation.
execute
INSERT INTO boards (name) VALUES (?) RETURNING id
-- params: ["Kitchen renovation"]

Claude gives it the usual lists.

execute
INSERT INTO lists (board_id, name, position) VALUES (?, ?, 1), (?, ?, 2), (?, ?, 3)
-- params: [1,"To do",1,"Doing",1,"Done"]
Add a card to pick the wall tiles, by the end of the month.
execute
INSERT INTO cards (list_id, title, position, due) VALUES (?, ?, (SELECT coalesce(max(position), 0) + 1 FROM cards WHERE list_id = ?), date('now', 'start of month', '+1 month', '-1 day'))
-- params: [1,"Pick the wall tiles",1]
And one to get three quotes for the worktop, with a note that it has to be oak.
execute
INSERT INTO cards (list_id, title, description, position) VALUES (?, ?, ?, (SELECT coalesce(max(position), 0) + 1 FROM cards WHERE list_id = ?))
-- params: [1,"Get three worktop quotes","Has to be oak.",1]
I've started on the tiles.
execute
UPDATE cards SET list_id = (SELECT id FROM lists WHERE board_id = ? AND name = ?), moved_at = datetime('now') WHERE id = ?
-- params: [1,"Doing",1]

Ask it questions

Once there's data, each report you'd pay for is a single query:

Show me the kitchen board.
query
SELECT l.name AS list, c.id, c.title, c.due FROM lists l LEFT JOIN cards c ON c.list_id = l.id WHERE l.board_id = ? ORDER BY l.position, c.position
-- params: [1]
What's been stuck in Doing for more than two weeks?
query
SELECT b.name AS board, c.title, c.moved_at FROM cards c JOIN lists l ON l.id = c.list_id JOIN boards b ON b.id = l.board_id WHERE l.name = ? AND c.moved_at < datetime('now', '-14 days') ORDER BY c.moved_at
-- params: ["Doing"]
What did I get done this month, per board?
query
SELECT b.name AS board, count(*) AS done FROM cards c JOIN lists l ON l.id = c.list_id JOIN boards b ON b.id = l.board_id WHERE l.name = ? AND c.moved_at >= date('now', 'start of month') GROUP BY b.id ORDER BY done DESC
-- params: ["Done"]

You can also open the database on the website, page through its rows and run read-only SQL yourself.

What you give up

You don't see a board. Trello's whole idea is the picture: columns side by side, cards you drag with a mouse or a thumb, labels and covers. Here Claude lists the board when you ask, and the databasedmcp website shows the rows as tables, not columns. If you think by moving cards around, you'll miss that.

It's built for one person. Trello has apps for every device, works with a team on the same board, and adds checklists, attachments, due-date notifications and automations. Anyone you invite to your account can see the database. But nobody can comment, nothing sends notifications and nothing runs on its own. For a team's shared board, Trello does the job better.

Try it

databasedmcp is free to start, with no card. Free has 100 tool calls a week, enough to set this up and try it for a week. Starter has 1,000 for everyday use.

Create an account

More articles · databasedmcp · Docs