io.revise/mcp-server
Official14 toolsRevise
Collaborative word processor you can use with your agent.
Collaborative word processor for real-time document editing with agents.
Captured live from the server via tools/list.
create_document
Create a Revise document without a Revise account, seeded with markdown. Returns: url (give this to your user — they open it to view the document and create a free account to keep it, in one step) and edit_token (keep it; use it as your Authorization Bearer token in future requests to read and edit this document). The document is private and deleted after 7 days if unclaimed.
Parameters (3)
- titlestringrequired
Document title
- content_markdownstring
Initial content as markdown
- created_bystring
Your name (e.g. "Codex", "Claude") so the user sees who made the document. Recommended.
import_document
Create a Revise document from a file at a public http(s) URL (.md, .markdown, .txt, .html, .htm, .docx; PDFs/images not yet supported). The server fetches the URL — file bytes are never passed inline. For a LOCAL file, use upload_document instead (it streams the file to the server). Returns the new document id and URL. Returns url (give it to your user — they view the document and create a free account to keep it, in one step) and edit_token (your Bearer token for future edits). The document is private and deleted after 7 days if unclaimed.
Parameters (4)
- urlstringrequired
Public http(s) URL of the file for the server to fetch
- filenamestring
Filename override — its extension selects the converter (otherwise taken from the URL)
- titlestring
Document title
- created_bystring
Your name (e.g. "Codex", "Claude") so the user sees who made the document. Recommended.
upload_document
Create a Revise document from a LOCAL file (docx, md, txt, html; PDFs/images not yet supported) without a Revise account and without putting its bytes in your context. Returns a one-time upload_url and a ready-to-run curl command — run the curl to stream the file. The curl response contains url (give it to your user — they view the document and create a free account to keep it, in one step) and edit_token (your Bearer token for future edits). For a public http(s) URL or a tiny inline file, use import_document instead. The document is private and deleted after 7 days if unclaimed.
Parameters (2)
- filenamestringrequired
The file's name (its extension selects the converter)
- created_bystring
Your name (e.g. "Codex", "Claude") so the user sees who made the document. Recommended.
read_document
Read a Revise document's content. Use format "markdown" (default) for editing workflows, "text" for plain text. Set with_block_ids to true to interleave <!-- block:xxxxxx --> anchors usable with edit_document.
Parameters (3)
- idstringrequired
Document ID
- formatstring
- with_block_idsboolean
Interleave block id anchors (markdown format only)
search_within_document
Find where a query matches inside one document. Returns the matching blocks as markdown with <!-- block:xxxxxx --> anchors (usable with edit_document), each with a few neighboring blocks for context. Case-insensitive.
Parameters (3)
- idstringrequired
Document ID
- querystringrequired
Text to find (case-insensitive)
- context_blocksinteger
Neighboring blocks to include on each side (default 2)
get_document_outline
Get a document's heading outline with block ids and per-section word counts. Cheap way to orient in a long document before reading specific sections.
Parameters (1)
- idstringrequired
Document ID
get_recent_changes
See what changed in a document since YOU last looked at it — e.g. edits the human (or another collaborator) made in between. Returns added, removed, and changed blocks (with block ids), all in the accepted/projected state. Great for catching up before continuing work ("how does it look now?"). The first call on a document just establishes a baseline. Each call advances your baseline to the current state.
Parameters (1)
- idstringrequired
Document ID
get_document_info
Get a document's metadata: title, sharing state, URLs, timestamps, and word count.
Parameters (1)
- idstringrequired
Document ID
export_document
Export a document by id to markdown, txt, html, docx, pdf. Text formats (markdown, txt, html) are returned inline. Binary formats (docx, pdf) are hosted at a temporary download URL (expires in ~24h) returned in the response, not streamed back inline.
Parameters (2)
- idstringrequired
Document ID
- formatstringrequired
edit_document
Apply targeted edits to a document. On a substantial document (20+ words) the default is mode "suggest": edits land as pending tracked changes the owner can accept or reject in the editor. On a short/new document (under 20 words) the default is "apply" (there's little to review). Pass mode "apply" explicitly to edit a substantial document directly, recorded in its revision history. Get block ids from read_document with with_block_ids: true.
Parameters (3)
- idstringrequired
Document ID
- modestring
suggest: tracked changes (default for documents with 20+ words); apply: edit directly (default for documents under 20 words). Pass apply explicitly to edit a substantial document without suggesting.
- editsarrayrequired
Edits to perform, in order
rename_document
Change a document's title.
Parameters (2)
- idstringrequired
Document ID
- titlestringrequired
New document title
set_page_layout
Set a document's page layout: page size, orientation, margins, page numbers, line/paragraph spacing, pageless mode, or the APA-7 preset. Length values are strings with explicit units (e.g. "1in", "2.54cm", "72px").
Parameters (14)
- idstringrequired
Document ID
- presetstring
Layout preset applied before other overrides
- pagelessboolean
Enable pageless (continuous) mode
- page_sizestring
Named page size
- orientationstring
- marginstring
Uniform margin for all sides, e.g. "1in"
- margin_topstring
- margin_rightstring
- margin_bottomstring
- margin_leftstring
- block_spacingstring
Vertical spacing between blocks, e.g. "0.125in"
- show_page_numbersboolean
- page_number_positionstring
- page_number_startinteger
replace_document_content
Replace the ENTIRE content of a document with new markdown. Destructive: existing content is removed (it remains recoverable via the document's revision history). Prefer edit_document for targeted changes.
Parameters (2)
- idstringrequired
Document ID
- content_markdownstringrequired
New full document content
resolve_suggestions
Accept or reject the tracked-change suggestions YOU made on a document — only your own, never the user's edits or another agent's suggestions. Use this when the user approves your suggested changes (e.g. they say "lgtm" / "looks good") to apply them on their behalf, or asks you to withdraw them. Covers the whole document by default; pass block_ids to limit to specific blocks. (Edits made with edit_document in "apply" mode are already applied — this is for edits left as suggestions in "suggest" mode.)
Parameters (3)
- idstringrequired
Document ID
- actionstringrequired
accept: apply your suggested changes; reject: withdraw them
- block_idsarray
Limit to suggestions in these blocks (from read_document with_block_ids); omit to review the whole document
README not available yet.
Install
claude_desktop_config.json
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.revise.io/mcp"
]
}
}
}Desktop config is stdio-only; this bridges via mcp-remote. Native remote: Settings > Connectors.