DEV Community

Alexander Karpov
Alexander Karpov

Posted on

Claude Fixed the Bug. The Task Board Was Still Wrong.

Claude fixes the bug. The tests pass. The task board still says In progress.

This kept happening to me. The useful work was done, but I still had to switch tabs, move the card, paste a summary, add a comment, and log the time. If I forgot, the board slowly turned into fiction.

So I built the workflow I actually wanted: Claude picks up a task, works on it, and leaves the board in the state it found in the real world.

I am the developer of Kelvia, the product in this post.

Claude Code reads a Kelvia task, posts an update, logs work, and moves the card through the hosted MCP endpoint.


Claude reads the card, posts an update, logs two hours, and moves the task to Done.

Nothing spectacular happens in the demo. That is the point.

Claude reads an existing card, adds a short progress note, logs work, and moves it to Done. I can watch the same card change in the browser. When the session ends, there is no second round of project-management chores waiting for me.

Kelvia is hosted. The MCP connection talks to the remote Kelvia API; it does not install the product or its database locally. There is an optional stdio package, but it is only a bridge to the same API.

I did not want another anonymous bot

The first version could have used my token and called it a day. I did not like what that did to the board history. A comment written by Claude would appear to be mine, and every automated change would be mixed with my own work.

In Kelvia, an agent gets a name and access to specific boards. Its key can read, create, edit, or delete. My Claude agent has read, create, and edit. Delete is disabled.

That gives me an activity feed I can actually read:

Kelvia task activity records changes attributed to a named Release Agent rather than the human account owner.


The board records the Release Agent as the author instead of pretending that I made the change.

This is less about enterprise audit language and more about a basic question: when I open a card tomorrow, can I tell what happened?

58 tools was too much

The server currently covers boards, tasks, comments, worklogs, stages, members, tags, and the day planner. That adds up to 58 tools.

Loading all of them into every coding session made no sense, so the server has toolsets. For this workflow I expose only tasks and comments: 21 tools including get_current_user.

export KELVIA_API_TOKEN='klv_your_agent_key'

claude mcp add-json --scope user kelvia \
  '{"type":"http","url":"https://mcp.kelvia.app/mcp","headers":{"Authorization":"Bearer ${KELVIA_API_TOKEN}","X-MCP-Toolsets":"tasks,comments"}}'

After that, the prompt can stay boring:

Take task #42 from the product board.
Move it to In Progress before you start.
When finished, leave a short comment, log the time spent,
and move it to Done only if the tests pass.

The board becomes shared state instead of a report I reconstruct after the coding session.

The part I am still figuring out

I am not sure how much freedom an agent should have by default.

Read access is easy. Comments are low risk. Moving a task feels reasonable when the status follows a clear event such as a passing test. Editing descriptions and deleting tasks are different. I currently keep delete out of the default connection and would rather add a missing permission later than discover that an agent was over-equipped.

I am also curious whether people want one agent per coding client, per repository, or per workflow. I prefer per workflow because the board history is clearer, but it creates more keys to manage.

Kelvia is early, and I am looking for the places where this falls apart in real use. The MCP server is open source, and the hosted product is at kelvia.app.

Would you let an agent move cards and log work if every action had its own author, or would you keep the board read-only?

Top comments (0)