The gap
An agent connected to Kookee could read every entry in your project, drafts included, and write a decent blog post. What it could not do was finish. It could see that a changelog entry had a Type of "Bug Fix" — the field came back on every read — and it had no way to set one. Every entry an agent wrote came out untyped, and somebody had to open the dashboard to fix it by hand.
That is now closed, along with the rest of the half-finished edges.
Structured fields
create_entry and update_entry take a fields array. Fields are named the way a human would name them, and select options are matched on their key, their label, or their id:
{
"type": "changelog",
"title": "v1.6.0 — …",
"fields": [
{ "field": "changelogType", "value": "feature" },
{ "field": "version", "value": "1.6.0" }
]
}
A new list_fields tool reports every field of an entry type and the options of each select field, so an agent can discover the vocabulary instead of guessing at it. This covers the changelog's type, version and link, an announcement's type, a feedback post's category, and any field you have added yourself.
list_entries gained a matching filter, so "every bug fix since 1.4" is now one call rather than a full scan.
Publication dates
publish_entry accepts publishedAt. Release notes written the morning after can carry yesterday's date, and a correction to a date no longer means editing in the dashboard. create_entry and update_entry accept unpublishAt for content that should retire on a schedule.
Feedback triage
move_feedback moves a post between board columns by name — "Planned", "In Progress", "Done". Agents could read your feedback board since day one and never do anything about it.
Comments
list_comments reads a thread; create_comment posts a reply. Both work on feedback posts, which is where a reply usually belongs. Comments an agent posts are public and marked official, the same as one written by an owner in the dashboard.
Also
update_entrycan change an entry's slug, clear its category, and set a parent and sort position for nested pages.Parent references are validated: an entry cannot become its own ancestor.
Notes
Everything above needs an MCP key, and agents still create drafts unless told otherwise. Nothing an agent does over MCP goes live without someone asking it to.