A roadmap an agent can maintain
Zeitlines ships an MCP server, so Claude Code can list your timelines, read one, add items, move dates and keep a pricing matrix current. It works against the live deployment rather than a local copy, so the change is live the moment the tool call returns.
Why this exists
Keeping a roadmap current is exactly the kind of work that gets skipped: the plan changed in a conversation, and nobody opens the tool to write it down. An agent that already has the conversation in front of it can do that part — if the roadmap is reachable as tools rather than as a web interface.
That is all the MCP server is: the same HTTP API the browser uses, exposed as tool calls with names an agent can pick correctly.
What the agent can do
| Tool | Effect |
|---|---|
list_timelines | Every database-backed timeline, with id, name and description |
get_timeline | One complete timeline: items and groups |
add_item / update_item / delete_item | Item-level changes; an update patches only the fields given and merges metadata |
add_group / update_group / delete_group | The lanes |
list_users | The people an item's owner can be set to |
set_custom_fields | The timeline's own custom item fields |
replace_timeline | A whole timeline at once, for bulk work |
set_pricing, set_versions | Seed or replace the pricing model and its version list |
add_/update_/delete_feature, …_tier, …_highlight | Single rows of the pricing model, written directly |
set_tier_value | One matrix cell, optionally with the version it applies from |
The pricing tools write their row directly rather than reading the whole model and writing it back, which is what keeps an agent's edit from clobbering a person's edit made a second earlier.
Setting it up
Three things have to line up.
- A deployment backed by Postgres, with the auth gate on. Without the gate the token bypass does not take effect.
-
A shared token:
MCP_API_TOKENset on the deployment and given to the local server, together withTIMELINES_LIVE_URLnaming the deployment. The URL is required and has no default, so a misconfiguration stops the server instead of quietly pointing it somewhere else. - The server registered with your agent.
claude mcp add -s user timelines -- \
<repo>/node_modules/.bin/tsx <repo>/scripts/mcp/server.ts Registering it at user scope makes the roadmap available from any directory, which is the point — the conversation that changes the plan is rarely held in the roadmap's own repository.
The safety properties worth knowing
- Only database-backed timelines are exposed. File sources are read-only on a deployment, so an agent cannot touch them.
- The same rules apply. An item whose end lies before its start and an overlapping phase are rejected for the agent exactly as they are for the interface, because the rule lives in one place and every write path goes through it.
- Edits are attributed. A write that arrives through the token
bypass is recorded as coming from
mcp, so the history separates agent edits from human ones. - No token, no bypass. Leave
MCP_API_TOKENunset and the mechanism does not exist; the deployment stays behind its sign-in.
Related
- The roadmap and pricing model an agent maintains
- Self-hosting Zeitlines with Postgres
- The MCP chapter in the documentation
Frequently asked questions
- Can Claude Code edit a Gantt chart or roadmap?
- Yes. Zeitlines ships an MCP server that exposes a roadmap as tools: list the timelines, read one, add and update items and groups, move dates, and maintain the pricing model. Register it once and Claude Code can work on the roadmap from any directory.
- Which MCP clients does it work with?
- It is a standard stdio MCP server, so any client that speaks the Model Context Protocol can run it. Claude Code is what it is developed against and what the registration example below uses.
- Does the agent work against a local copy or the live roadmap?
- The live deployment, always. Every read and write goes through the deployment’s HTTP API to the database, so there is no local copy that can drift and no synchronisation step. A change is visible to everyone the moment the tool call returns.
- How is the agent authenticated?
- With a shared service token sent as an
X-MCP-Tokenheader, compared in constant time by the edge function. If the token is not configured on the deployment, the bypass simply does not exist and the site stays behind its normal sign-in for everyone. - Can I tell which changes came from the agent?
- Yes. Writes that arrive through the token bypass are attributed to
mcpin the row’s audit fields, alongside the timestamp — so the history distinguishes an agent edit from a person’s. - Can an agent edit a file-based timeline?
- No. Only database-backed timelines are exposed. A file source is read-only on the deployment, so there is nothing for the agent to write to.