Back to Blog
ARTICLE

Ask about any project, from any session

September 30, 2026
Milad Nalbandi
2 min read
0 readers
keel

If you run more than one project, the question you actually have is rarely about the repo you're sitting in. It's "is anything waiting on me anywhere?"

keel answers that over MCP. Six tools, all read-only, all available from any session:

ToolAnswers
keel_statusthe whole board for a project
keel_projectsevery project on this machine, one line each
keel_nextthe single next action
keel_timelinewhat just happened
keel_explainwhat a phase permits and refuses
keel_dashboardthe dashboard URL

What it looks like in practice

keel_projects, keel_status and keel_explain answering in a session

Every tool takes a project argument, so one session can ask about another. You're deep in the API repo; you ask keel_projects; you find out the blog repo has been sitting at a gate for twenty minutes waiting for a yes.

That's the whole point. The alternative is remembering to go and look.

The same answer the dashboard gives

These aren't a separate implementation of the board — they read the same state the dashboard draws:

Two projects on one dashboard, one of them waiting on a question

keel_status in a chat and the card on that page are the same facts. Which means the answer you get in conversation can't drift from the answer on screen, because there's only one of them.

keel_explain is the one I underrated

The others report state. This one reports rules:

> keel_explain phase: red

  RED writes the failing test and nothing else. Production
  code is denied. A compile error is not a red test.

When an agent is about to do something the phase forbids, it can ask what the phase allows before it tries — rather than attempting the edit, being blocked by a hook, and having to work out why from an error message.

Setting it up

If you have the keel plugin installed, the MCP server comes with it — the plugin manifest points at it, and Claude Code starts it with the session.

One thing worth knowing: the MCP connection is established at session start. If you've just installed or upgraded keel, /reload-plugins picks up the code, but a genuinely stale connection sometimes needs a fresh session. If the tools aren't there, that's usually why — not a broken install.

You can check the server directly:

printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{...}}' \
  | node mcp/server.js

A clean handshake means the server is fine and the client just needs to reconnect.

It is read-only, on purpose

Every one of these six tools reads. None of them moves a phase, approves a gate, or edits a file.

A tool that can advance the flow is a tool that can advance it by accident — and keel's entire argument is that the human gates are the point. Asking where you are and deciding what happens next are different things, and only one of them belongs in a tool call.


keel is a Claude Code plugin. github.com/MiladNalbandi/keel

Milad Nalbandi
Software Engineer & Writer