April 28, 2026
Read docs as markdown or plain text.
Agents no longer need a ProseMirror parser. `GET /doc` accepts `?format=markdown` for CommonMark+GFM, `?format=text` for plain text, or returns the TipTap JSON by default. `Accept` headers work too. MCP `get_doc` returns all three shapes in one call.
API
- `GET /api/workspaces/:slug/doc?format=markdown` returns `{ markdown }`. Every TipTap node maps to CommonMark+GFM: headings, lists, blockquotes, code blocks with language, tables, marks, images. Lossy round-trip; use `format=json` for structural edits.
- `GET /api/workspaces/:slug/doc?format=text` returns plain text.
- `Accept: text/markdown` and `Accept: text/plain` negotiate the format when `?format` is absent. Query param wins when both are set.
- MCP `get_doc` returns `content`, `markdown`, and `text` in a single response.
Docs
- `/docs/api` and `/docs/mcp` describe the three formats and negotiation rules. The OpenAPI spec at `/openapi.json` lists the new `format` query parameter.