Rapier
What this MCP does
Supports controlled editing, review, comparison, comments, diagrams, visualization, and local or workspace saving for Markdown documents.
Tools
Input schema
{'type': 'object', 'required': ['document', 'operation_id', 'edits'], 'properties': {'note': {'type': 'string', 'maxLength': 240, 'description': 'A sentence for the person about this change.'}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'edits': {'type': 'array', 'items': {'type': 'object', 'required': ['context_handle', 'text'], 'properties': {'text': {'type': 'string', 'maxLength': 262144, 'description': 'The replacement, or the text to insert. Send actual Markdown without an outer display fence; close Mermaid fences before prose resumes.'}, 'placement': {'enum': ['replace', 'before', 'after'], 'type': 'string', 'description': 'replace (default) swaps the disclosed text; before or after inserts beside it.'}, 'context_handle': {'type': 'string', 'maxLength': 128, 'description': 'The handle for exactly the text this edit touches, from read_context or find.'}}, 'additionalProperties': False}, 'maxItems': 16, 'minItems': 1, 'description': 'Up to 16 edits, settled together.'}, 'label': {'type': 'string', 'maxLength': 120, 'description': 'A short name the person sees for this change.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'pending': {'type': ['object', 'null'], 'properties': {'kind': {'enum': ['surface-fact', 'human-review']}, 'requestId': {'type': 'string', 'maxLength': 128}, 'proposalId': {'type': 'string', 'maxLength': 128}, 'requirements': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}, 'changeId': {'type': ['string', 'null'], 'maxLength': 128}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'editCount': {'type': 'integer', 'minimum': 0}, 'structure': {'type': 'object', 'additionalProperties': True}, 'documentId': {'type': 'string'}, 'transaction': {'type': 'object', 'additionalProperties': True}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id', 'action'], 'properties': {'text': {'type': 'string', 'maxLength': 4096}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'action': {'enum': ['create', 'reply', 'resolve', 'reopen'], 'type': 'string'}, 'anchor': {'enum': ['document', 'text', 'image', 'drawing'], 'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}, 'object_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 64, 'minLength': 1}, 'recipient': {'type': 'string', 'maxLength': 64}, 'thread_id': {'type': 'string', 'maxLength': 128}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}, 'context_handle': {'type': 'string', 'maxLength': 128}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'pending': {'type': ['object', 'null'], 'properties': {'kind': {'enum': ['surface-fact', 'human-review']}, 'requestId': {'type': 'string', 'maxLength': 128}, 'proposalId': {'type': 'string', 'maxLength': 128}, 'requirements': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}, 'changeId': {'type': ['string', 'null'], 'maxLength': 128}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'threadId': {'type': 'string', 'maxLength': 128}, 'editCount': {'type': 'integer', 'minimum': 0}, 'messageId': {'type': 'string', 'maxLength': 128}, 'structure': {'type': 'object', 'additionalProperties': True}, 'documentId': {'type': 'string'}, 'transaction': {'type': 'object', 'additionalProperties': True}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'editorKey', 'expectedRevision', 'text', 'commitId'], 'properties': {'text': {'type': 'string', 'maxLength': 26214400}, 'docKind': {'enum': ['markdown', 'text', 'code'], 'type': 'string', 'description': 'markdown, text or code; the filename decides when absent.'}, 'commitId': {'type': 'string', 'maxLength': 128}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'filename': {'type': 'string', 'maxLength': 256}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'name': {'type': 'string', 'maxLength': 256, 'description': 'open: a name for the comparison.'}, 'text': {'type': 'string', 'maxLength': 26214400, 'description': 'open: the whole alternative document.'}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'action': {'enum': ['open', 'accept', 'reject', 'close'], 'type': 'string', 'description': 'open (default), accept, reject or close.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'change_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 128, 'minItems': 1, 'description': 'accept or reject: the differences; none means every remaining one.', 'uniqueItems': True}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'name': {'type': 'string', 'maxLength': 512}, 'open': {'type': 'integer', 'minimum': 0}, 'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'items': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'closed': {'type': 'boolean'}, 'reason': {'type': 'string'}, 'changes': {'type': 'integer', 'minimum': 0}, 'decided': {'type': 'integer', 'minimum': 0}, 'outcome': {'type': 'string'}, 'visible': {'type': 'boolean', 'description': 'Present only when a local editor confirmed the comparison. Omitted for asynchronous hosted rendering; this is not editor presence. get_context reports presence.'}, 'accepted': {'type': 'integer', 'minimum': 0}, 'changeId': {'type': ['string', 'null'], 'maxLength': 128}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'rejected': {'type': 'integer', 'minimum': 0}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'compareId': {'type': 'string', 'maxLength': 128}, 'editCount': {'type': 'integer', 'minimum': 0}, 'remaining': {'type': 'integer', 'minimum': 0}, 'structure': {'type': 'object', 'additionalProperties': True}, 'documentId': {'type': 'string'}, 'transaction': {'type': 'object', 'additionalProperties': True}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'editorKey', 'expectedRevision', 'expectedVersion', 'compareId', 'action', 'decisionId'], 'properties': {'action': {'enum': ['accept', 'reject', 'close'], 'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'changeIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 128, 'minItems': 1, 'uniqueItems': True}, 'compareId': {'type': 'string', 'maxLength': 128}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}, 'decisionId': {'type': 'string', 'maxLength': 128}, 'expectedVersion': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'max_bytes': {'type': 'integer', 'minimum': 0}, 'return_id': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'return_url': {'type': 'string', 'maxLength': 512}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}, 'return_expires_at': {'type': 'string', 'maxLength': 64}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'editorKey'], 'properties': {'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'alt': {'type': 'string', 'maxLength': 240, 'minLength': 1, 'description': 'The caption, as the person reads it (required on create).'}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'label': {'type': 'string', 'maxLength': 120, 'description': 'A short name the person sees for this change.'}, 'recipe': {'type': 'object', 'description': 'A full drawing recipe, as a read returns it.', 'additionalProperties': True}, 'shapes': {'type': 'object', 'required': [], 'properties': {'add': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'maxItems': 128, 'description': 'Figures or shapes to add.'}, 'remove': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 64, 'minLength': 1}, 'maxItems': 128, 'minItems': 1, 'description': 'The ids to remove.', 'uniqueItems': True}, 'replace': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'maxItems': 128, 'description': 'Complete replacement shapes, each by its id. Copy the inspected shape and change only the intended fields; id and label alone are not a shape.'}}, 'description': 'A patch to an existing drawing.', 'additionalProperties': False}, 'figures': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'maxItems': 128, 'description': 'Figures use kind, not type. Example: [{"kind":"rect","id":"start","label":"Start"},{"kind":"rect","id":"end","label":"Finish"},{"kind":"arrow","from":"start","to":"end"}]. Omit x, y, w and h for automatic layout.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'direction': {'enum': ['down', 'across', 'up', 'back'], 'type': 'string', 'description': 'The direction of an automatic figure layout; down by default.'}, 'operations': {'type': 'array', 'items': {'type': 'object', 'required': ['type'], 'properties': {'dx': {'type': 'number', 'maximum': 65536, 'minimum': -65536, 'description': 'move or duplicate: the horizontal offset.'}, 'dy': {'type': 'number', 'maximum': 65536, 'minimum': -65536, 'description': 'move or duplicate: the vertical offset.'}, 'ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 64, 'minLength': 1}, 'maxItems': 128, 'minItems': 1, 'description': 'The ids of the shapes it acts on.', 'uniqueItems': True}, 'ink': {'type': ['string', 'null'], 'maxLength': 16, 'description': 'set_look: the ink, or null for none.'}, 'axis': {'enum': ['x', 'y'], 'type': 'string', 'description': 'distribute or flip: the axis.'}, 'dash': {'type': ['string', 'null'], 'maxLength': 8, 'description': 'set_look: the dash, or null for solid.'}, 'step': {'type': ['integer', 'null'], 'maximum': 99, 'minimum': 1, 'description': 'set_step: the number a box shows above its words in the order a flow is read, or null for none.'}, 'type': {'enum': ['group', 'ungroup', 'lock', 'unlock', 'unlockAll', 'delete', 'front', 'back', 'forward', 'backward', 'duplicate', 'align', 'distribute', 'flip', 'move', 'clean', 'unclean', 'set_look', 'set_label', 'set_step'], 'type': 'string', 'description': 'The operation.'}, 'brush': {'type': 'string', 'maxLength': 24, 'description': 'set_look: the brush.'}, 'group': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 64, 'minLength': 1, 'description': 'group: the id the new group takes.'}, 'label': {'type': 'string', 'maxLength': 4096, 'description': 'set_label: the words of the shape (empty removes them).'}, 'style': {'type': 'string', 'maxLength': 16, 'description': 'set_look: the fill style.'}, 'border': {'type': ['string', 'null'], 'maxLength': 16, 'description': 'set_look: the border ink, or null for none.'}, 'newIds': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 64, 'minLength': 1}, 'maxItems': 128, 'minItems': 1, 'description': 'duplicate: the ids the copies take.', 'uniqueItems': True}, 'alignment': {'enum': ['left', 'center', 'right', 'top', 'middle', 'bottom'], 'type': 'string', 'description': 'align: the edge or centre to line up.'}}, 'additionalProperties': False}, 'maxItems': 64, 'description': 'Edits to existing shapes by id, applied in order.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}, 'recipe_handle': {'type': 'string', 'maxLength': 128, 'description': 'Edit: the handle from reading the drawing.'}, 'context_handle': {'type': 'string', 'maxLength': 128, 'description': 'Create: place the drawing after this block.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'asset': {'type': 'object', 'additionalProperties': True}, 'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'width': {'type': 'integer', 'minimum': 0}, 'height': {'type': 'integer', 'minimum': 0}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'changeId': {'type': ['string', 'null'], 'maxLength': 128}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'editCount': {'type': 'integer', 'minimum': 0}, 'structure': {'type': 'object', 'additionalProperties': True}, 'documentId': {'type': 'string'}, 'transaction': {'type': 'object', 'additionalProperties': True}, 'recipe_handle': {'type': ['string', 'null'], 'maxLength': 128}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id', 'query'], 'properties': {'kind': {'enum': ['declaration', 'reference', 'call', 'construct', 'write', 'member', 'import', 'export'], 'type': 'string', 'description': 'Code syntax to match by name instead of text.'}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'limit': {'type': 'integer', 'maximum': 16, 'minimum': 1, 'description': 'Matches per page.'}, 'query': {'type': 'string', 'maxLength': 512, 'description': 'The exact text to find, or a name when kind is given.'}, 'cursor': {'type': 'string', 'maxLength': 128, 'description': 'Continues the previous page.'}, 'within': {'type': 'string', 'maxLength': 128, 'description': 'An outline ref to stay inside.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}, 'case_sensitive': {'type': 'boolean', 'description': 'Match case exactly (default: no).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'properties': {'end': {'type': 'integer', 'minimum': 0}, 'start': {'type': 'integer', 'minimum': 0}, 'handle': {'type': ['string', 'null'], 'maxLength': 128}, 'matched': {'type': 'string', 'maxLength': 12288}, 'section': {'type': 'string', 'maxLength': 192}, 'snippet': {'type': 'string', 'maxLength': 192}, 'section_ref': {'type': 'string', 'maxLength': 128}, 'handle_scope': {'enum': ['matched', 'change'], 'type': 'string'}}, 'additionalProperties': True}}, 'omitted': {'type': 'integer', 'minimum': 0}, 'outcome': {'type': 'string'}, 'pending': {'type': ['object', 'null'], 'properties': {'kind': {'enum': ['surface-fact', 'human-review']}, 'requestId': {'type': 'string', 'maxLength': 128}, 'proposalId': {'type': 'string', 'maxLength': 128}, 'requirements': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}, 'complete': {'type': 'boolean'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'remaining': {'type': 'integer', 'minimum': 0}, 'documentId': {'type': 'string'}, 'next_cursor': {'type': ['string', 'null'], 'maxLength': 128}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'law': {'type': 'object', 'required': ['default', 'regions', 'laws'], 'properties': {'laws': {'type': 'array', 'items': {'enum': ['edit', 'append', 'keep']}}, 'faults': {'type': 'array', 'items': {'type': 'object', 'required': [], 'properties': {'end': {'type': 'integer', 'minimum': 0}, 'line': {'type': 'integer', 'minimum': 0}, 'mode': {'type': 'string', 'maxLength': 64}, 'start': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}}, 'default': {'enum': ['edit', 'append', 'keep']}, 'regions': {'type': 'integer', 'minimum': 0}, 'faultCount': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'brief': {'type': 'object', 'required': ['text', 'start', 'end', 'sectionEnd', 'complete', 'remaining'], 'properties': {'end': {'type': 'integer', 'minimum': 0}, 'text': {'type': 'string', 'maxLength': 2048}, 'start': {'type': 'integer', 'minimum': 0}, 'reason': {'type': 'string', 'maxLength': 64}, 'complete': {'type': 'boolean'}, 'omissions': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'remaining': {'type': 'integer', 'minimum': 0}, 'sectionEnd': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'chars': {'type': 'integer', 'minimum': 0}, 'notes': {'type': 'object', 'additionalProperties': True}, 'images': {'type': 'object', 'additionalProperties': True}, 'layout': {'type': 'object', 'additionalProperties': True}, 'reason': {'type': 'string'}, 'compare': {'type': 'object', 'properties': {'name': {'type': 'string', 'maxLength': 512}, 'open': {'type': 'integer', 'minimum': 0}, 'items': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'changes': {'type': 'integer', 'minimum': 0}, 'accepted': {'type': 'integer', 'minimum': 0}, 'rejected': {'type': 'integer', 'minimum': 0}, 'compareId': {'type': 'string', 'maxLength': 128}, 'remaining': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': True}, 'docKind': {'enum': ['markdown', 'text', 'code'], 'type': 'string', 'description': 'markdown, text or code; the filename decides when absent.'}, 'editing': {'type': 'object', 'required': ['mode', 'reason'], 'properties': {'mode': {'enum': ['read_only', 'yield', 'review_pending', 'review_required', 'blocked', 'inspect']}, 'reason': {'enum': ['document_read_only', 'human_edit_in_progress', 'will', 'ask', 'check', 'proposal', 'document_law', 'review_history_unavailable', 'inspect_target']}}, 'additionalProperties': False}, 'history': {'type': 'object', 'additionalProperties': True}, 'outcome': {'type': 'string'}, 'posture': {'enum': ['free', 'check', 'ask']}, 'returns': {'type': 'array', 'items': {'type': 'object', 'required': ['return_id', 'receivedAt', 'bytes', 'chars'], 'properties': {'name': {'type': 'string', 'maxLength': 256}, 'bytes': {'type': 'integer', 'minimum': 0}, 'chars': {'type': 'integer', 'minimum': 0}, 'return_id': {'type': 'string', 'maxLength': 128}, 'receivedAt': {'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}}, 'surface': {'type': 'object', 'required': ['kind', 'next'], 'properties': {'kind': {'enum': ['editor', 'headless']}, 'next': {'enum': ['continue', 'deliver_page']}}, 'additionalProperties': False}, 'comments': {'type': 'object', 'required': ['total', 'open', 'stale'], 'properties': {'open': {'type': 'integer', 'minimum': 0}, 'stale': {'type': 'integer', 'minimum': 0}, 'total': {'type': 'integer', 'minimum': 0}, 'reason': {'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'filename': {'type': 'string', 'maxLength': 256}, 'readOnly': {'type': 'boolean'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'collaboration': {'type': 'object', 'required': ['posture', 'readOnly', 'presence', 'review'], 'properties': {'review': {'type': ['object', 'null'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'law': {'enum': ['edit', 'append', 'keep']}, 'kind': {'enum': ['proposal', 'inline', 'check']}, 'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'label': {'type': 'string', 'maxLength': 120}, 'reason': {'type': 'string', 'maxLength': 128}, 'region': {'type': 'integer', 'minimum': 0}, 'status': {'enum': ['pending', 'approved', 'declined', 'invalidated']}, 'changes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'reason': {'type': 'string', 'maxLength': 128}, 'status': {'type': 'string', 'maxLength': 32}, 'excerpt': {'type': 'string', 'maxLength': 80}}, 'additionalProperties': False}}, 'complete': {'type': 'boolean'}, 'revision': {'type': 'integer', 'minimum': 0}, 'changeIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}}, 'editCount': {'type': 'integer', 'minimum': 0}, 'expiresAt': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': True}, 'posture': {'enum': ['free', 'check', 'ask']}, 'presence': {'type': ['object', 'null'], 'additionalProperties': True}, 'readOnly': {'type': 'boolean'}}, 'additionalProperties': False}, 'returnWaiting': {'type': 'boolean'}, 'sourceChanges': {'type': 'object', 'required': ['sinceRevision', 'throughRevision', 'complete', 'changes'], 'properties': {'reason': {'enum': ['first_observation', 'retained_history_limited']}, 'changes': {'type': 'array', 'items': {'type': 'object', 'required': ['changeId', 'revision', 'actor', 'yours', 'targets'], 'properties': {'actor': {'enum': ['agent', 'human']}, 'label': {'type': 'string', 'maxLength': 96}, 'yours': {'type': 'boolean'}, 'targets': {'type': 'array', 'items': {'type': 'object', 'required': ['ref', 'chars'], 'properties': {'ref': {'type': 'string', 'maxLength': 128}, 'chars': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}}, 'changeId': {'type': 'string', 'maxLength': 128}, 'revision': {'type': 'integer', 'minimum': 0}, 'operation': {'type': 'string', 'maxLength': 64}, 'removedChars': {'type': 'integer', 'minimum': 0}, 'insertedChars': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}}, 'omitted': {'type': 'integer', 'minimum': 0}, 'complete': {'type': 'boolean'}, 'sinceRevision': {'type': ['integer', 'null'], 'minimum': 0}, 'retainedChanges': {'type': 'integer', 'minimum': 0}, 'throughRevision': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'limit': {'type': 'integer', 'maximum': 32, 'minimum': 1, 'description': 'Items per page.'}, 'cursor': {'type': 'string', 'maxLength': 128, 'description': 'Continues the previous page.'}, 'within': {'type': 'string', 'maxLength': 128, 'description': 'An outline ref to stay inside.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'items': {'type': 'array', 'items': {'type': 'object', 'properties': {'ref': {'type': ['string', 'null'], 'maxLength': 128}, 'kind': {'type': 'string', 'maxLength': 64}, 'chars': {'type': 'integer', 'minimum': 0}, 'depth': {'type': 'integer', 'minimum': 0}, 'label': {'type': 'string', 'maxLength': 192}, 'layout': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}}, 'total': {'type': 'integer', 'minimum': 0}, 'engine': {'type': ['string', 'null']}, 'reason': {'type': 'string'}, 'omitted': {'type': 'integer', 'minimum': 0}, 'outcome': {'type': 'string'}, 'pending': {'type': ['object', 'null'], 'properties': {'kind': {'enum': ['surface-fact', 'human-review']}, 'requestId': {'type': 'string', 'maxLength': 128}, 'proposalId': {'type': 'string', 'maxLength': 128}, 'requirements': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}, 'complete': {'type': 'boolean'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'remaining': {'type': 'integer', 'minimum': 0}, 'documentId': {'type': 'string'}, 'next_cursor': {'type': ['string', 'null'], 'maxLength': 128}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'editorKey', 'expectedRevision', 'contextId', 'sequence', 'visible', 'editing'], 'properties': {'focus': {'type': ['object', 'null'], 'required': ['start', 'end'], 'properties': {'end': {'type': 'integer', 'maximum': 26214400, 'minimum': 0}, 'start': {'type': 'integer', 'maximum': 26214400, 'minimum': 0}}, 'additionalProperties': False}, 'editing': {'type': 'boolean'}, 'visible': {'type': 'boolean'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'sequence': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'contextId': {'type': 'string', 'maxLength': 128}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}, 'selection': {'type': ['object', 'null'], 'required': ['start', 'end'], 'properties': {'end': {'type': 'integer', 'maximum': 26214400, 'minimum': 0}, 'start': {'type': 'integer', 'maximum': 26214400, 'minimum': 0}}, 'additionalProperties': False}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id', 'expectedRevision'], 'properties': {'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'scope': {'enum': ['viewport', 'page', 'focus', 'selection'], 'type': 'string', 'description': 'The rendered area to inspect; viewport by default.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'The documentRevision from current context.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'pending': {'type': ['object', 'null'], 'properties': {'kind': {'enum': ['surface-fact', 'human-review']}, 'requestId': {'type': 'string', 'maxLength': 128}, 'proposalId': {'type': 'string', 'maxLength': 128}, 'requirements': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'observation': {'type': 'object', 'additionalProperties': True}, 'representation': {'enum': ['source', 'visual'], 'type': 'string'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'cursor': {'type': 'string', 'maxLength': 128, 'description': 'Continues the previous page.'}, 'status': {'enum': ['open', 'resolved', 'all'], 'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'thread_id': {'type': 'string', 'maxLength': 128}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'total': {'type': 'integer', 'minimum': 0}, 'reason': {'type': 'string'}, 'thread': {'type': 'object', 'additionalProperties': True}, 'omitted': {'type': 'integer', 'minimum': 0}, 'outcome': {'type': 'string'}, 'threads': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'complete': {'type': 'boolean'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'messages': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'remaining': {'type': 'integer', 'minimum': 0}, 'documentId': {'type': 'string'}, 'next_cursor': {'type': ['string', 'null'], 'maxLength': 128}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id', 'text'], 'properties': {'text': {'type': 'string', 'maxLength': 26214400, 'description': 'The whole new document.'}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'docKind': {'enum': ['markdown', 'text', 'code'], 'type': 'string', 'description': 'markdown, text or code; the filename decides when absent.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'filename': {'type': 'string', 'maxLength': 256, 'description': 'Its name; the extension sets the kind.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'docKind': {'enum': ['markdown', 'text', 'code'], 'type': 'string', 'description': 'markdown, text or code; the filename decides when absent.'}, 'outcome': {'type': 'string'}, 'changeId': {'type': ['string', 'null'], 'maxLength': 128}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'filename': {'type': 'string', 'maxLength': 256}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'editCount': {'type': 'integer', 'minimum': 0}, 'structure': {'type': 'object', 'additionalProperties': True}, 'documentId': {'type': 'string'}, 'transaction': {'type': 'object', 'additionalProperties': True}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id', 'edits'], 'properties': {'note': {'type': 'string', 'maxLength': 240, 'description': 'A sentence for the person about this change.'}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'edits': {'type': 'array', 'items': {'type': 'object', 'required': ['context_handle', 'text'], 'properties': {'text': {'type': 'string', 'maxLength': 262144, 'description': 'The replacement, or the text to insert. Send actual Markdown without an outer display fence; close Mermaid fences before prose resumes.'}, 'placement': {'enum': ['replace', 'before', 'after'], 'type': 'string', 'description': 'replace (default) swaps the disclosed text; before or after inserts beside it.'}, 'context_handle': {'type': 'string', 'maxLength': 128, 'description': 'The handle for exactly the text this edit touches, from read_context or find.'}}, 'additionalProperties': False}, 'maxItems': 16, 'minItems': 1, 'description': 'Up to 16 edits, settled together.'}, 'label': {'type': 'string', 'maxLength': 120, 'description': 'A short name the person sees for this change.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'review': {'type': 'object', 'additionalProperties': True}, 'outcome': {'type': 'string'}, 'pending': {'type': ['object', 'null'], 'properties': {'kind': {'enum': ['surface-fact', 'human-review']}, 'requestId': {'type': 'string', 'maxLength': 128}, 'proposalId': {'type': 'string', 'maxLength': 128}, 'requirements': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}, 'changeId': {'type': ['string', 'null'], 'maxLength': 128}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'editCount': {'type': 'integer', 'minimum': 0}, 'structure': {'type': 'object', 'additionalProperties': True}, 'documentId': {'type': 'string'}, 'transaction': {'type': 'object', 'additionalProperties': True}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'end': {'type': 'integer', 'maximum': 26214400, 'minimum': 0, 'description': 'One past the last UTF-16 unit.'}, 'ref': {'type': 'string', 'maxLength': 128, 'description': 'An outline ref to read.'}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'limit': {'type': 'integer', 'maximum': 4096, 'minimum': 256, 'description': 'Units per page.'}, 'start': {'type': 'integer', 'maximum': 26214400, 'minimum': 0, 'description': 'The first UTF-16 unit.'}, 'cursor': {'type': 'string', 'maxLength': 128, 'description': 'Continues a long passage.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}, 'return_id': {'type': 'string', 'maxLength': 128, 'description': 'A received page from get_context or wait_for_user; read by start and limit, without an edit handle.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}, 'context_handle': {'type': 'string', 'maxLength': 128, 'description': 'A handle from find or an earlier read, or a change handle while a comparison is open.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'end': {'type': 'integer', 'minimum': 0}, 'name': {'type': 'string', 'maxLength': 256}, 'text': {'type': 'string', 'maxLength': 12288}, 'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'start': {'type': 'integer', 'minimum': 0}, 'handle': {'type': ['string', 'null'], 'maxLength': 128}, 'images': {'type': 'object', 'additionalProperties': True}, 'layout': {'type': 'object', 'additionalProperties': True}, 'reason': {'type': 'string'}, 'status': {'type': 'string', 'maxLength': 32}, 'omitted': {'type': 'integer', 'minimum': 0}, 'outcome': {'type': 'string'}, 'removed': {'type': 'string', 'maxLength': 4096}, 'complete': {'type': 'boolean'}, 'coverage': {'type': 'object', 'additionalProperties': True}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'inserted': {'type': 'string', 'maxLength': 4096}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'change_id': {'type': 'string', 'maxLength': 128}, 'omissions': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'remaining': {'type': 'integer', 'minimum': 0}, 'return_id': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'receivedAt': {'type': 'string', 'maxLength': 64}, 'next_cursor': {'type': ['string', 'null'], 'maxLength': 128}, 'expires_in_ms': {'type': 'integer', 'minimum': 0}, 'removed_chars': {'type': 'integer', 'minimum': 0}, 'comment_handle': {'type': 'string', 'maxLength': 128}, 'inserted_chars': {'type': 'integer', 'minimum': 0}, 'representation': {'const': 'source'}, 'complete_handle': {'type': 'string', 'maxLength': 128}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id', 'context_handle'], 'properties': {'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}, 'context_handle': {'type': 'string', 'maxLength': 128, 'description': 'The handle of the passage or difference to show.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'revealed': {'type': 'boolean'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'editorKey', 'expectedRevision', 'expectedVersion', 'reviewId', 'action', 'decisionId'], 'properties': {'action': {'enum': ['approve', 'decline', 'apply', 'drop'], 'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'changeIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 128, 'minItems': 1, 'description': 'Pending change ids: apply and drop act on them; approve keeps them and drops the rest; decline takes none.', 'uniqueItems': True}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}, 'decisionId': {'type': 'string', 'maxLength': 128}, 'expectedVersion': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'editorKey'], 'properties': {'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'sealed': {'type': 'string', 'maxLength': 512}, 'outcome': {'type': 'string'}, 'rotated': {'type': 'boolean'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'rotatedAt': {'type': 'string', 'maxLength': 64}, 'rotations': {'type': 'integer', 'minimum': 0}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'saved': {'type': 'boolean'}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'filename': {'type': 'string', 'maxLength': 256}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'verified': {'type': 'boolean'}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'editorKey', 'expectedRevision', 'expectedVersion', 'decisionId'], 'properties': {'posture': {'enum': ['free', 'check', 'ask'], 'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'readOnly': {'type': 'boolean'}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}, 'decisionId': {'type': 'string', 'maxLength': 128}, 'expectedVersion': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'change_id': {'type': 'string', 'maxLength': 128, 'description': 'The changeId to show (default: your latest).'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'name': {'type': 'string', 'maxLength': 512}, 'open': {'type': 'integer', 'minimum': 0}, 'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'items': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'reason': {'type': 'string'}, 'changes': {'type': 'integer', 'minimum': 0}, 'outcome': {'type': 'string'}, 'visible': {'type': 'boolean', 'description': 'Present only when a local editor confirmed the comparison. Omitted for asynchronous hosted rendering; this is not editor presence. get_context reports presence.'}, 'accepted': {'type': 'integer', 'minimum': 0}, 'changeId': {'type': 'string', 'maxLength': 128}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'rejected': {'type': 'integer', 'minimum': 0}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'compareId': {'type': 'string', 'maxLength': 128}, 'remaining': {'type': 'integer', 'minimum': 0}, 'documentId': {'type': 'string'}, 'review_only': {'type': 'boolean'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'editorKey'], 'properties': {'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}, 'afterVersion': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'afterRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'change_id': {'type': 'string', 'maxLength': 128, 'description': "The changeId to reverse. Omit it to reverse the latest change under this call's agent name."}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'changeId': {'type': ['string', 'null'], 'maxLength': 128}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'editCount': {'type': 'integer', 'minimum': 0}, 'structure': {'type': 'object', 'additionalProperties': True}, 'documentId': {'type': 'string'}, 'transaction': {'type': 'object', 'additionalProperties': True}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'editorKey', 'expectedRevision', 'viewId', 'status'], 'properties': {'reason': {'type': 'string', 'maxLength': 160}, 'status': {'enum': ['presented', 'refused'], 'type': 'string'}, 'viewId': {'type': 'string', 'maxLength': 128}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'editorKey', 'expectedRevision', 'visualId', 'fact'], 'properties': {'fact': {'type': 'object', 'required': ['documentId', 'revision', 'scope', 'outcome'], 'properties': {'image': {'type': 'object', 'required': ['mimeType', 'data', 'width', 'height'], 'properties': {'data': {'type': 'string', 'maxLength': 2796204}, 'width': {'type': 'integer', 'maximum': 4096, 'minimum': 1}, 'height': {'type': 'integer', 'maximum': 4096, 'minimum': 1}, 'mimeType': {'type': 'string', 'const': 'image/png'}}, 'additionalProperties': False}, 'scope': {'enum': ['viewport', 'page', 'focus', 'selection'], 'type': 'string'}, 'reason': {'type': 'string', 'maxLength': 128}, 'outcome': {'enum': ['ok', 'refused'], 'type': 'string'}, 'revision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'documentId': {'type': 'string', 'maxLength': 256}, 'sourceRange': {'type': ['object', 'null'], 'required': ['start', 'end'], 'properties': {'end': {'type': 'integer', 'maximum': 26214400, 'minimum': 0}, 'start': {'type': 'integer', 'maximum': 26214400, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'visualId': {'type': 'string', 'maxLength': 128}, 'editorKey': {'type': 'string', 'maxLength': 512, 'description': 'The editor key from the Apps UI resource, held by the host and editor alone.'}, 'expectedRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'enum': ['source', 'visual'], 'type': 'string'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'mode': {'enum': ['selection', 'message'], 'type': 'string', 'description': 'What to wait for: a selection or a message.'}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'timeout_ms': {'type': 'integer', 'maximum': 120000, 'minimum': 1000, 'description': 'How long to wait, in milliseconds.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}, 'after_return_id': {'type': 'string', 'maxLength': 128, 'description': 'Message mode: wait after this received return; absent, the latest retained return answers immediately.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'text': {'type': 'string', 'maxLength': 1500}, 'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'returned': {'type': 'object', 'additionalProperties': True}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'selection': {'type': 'object', 'additionalProperties': True}, 'truncated': {'type': 'boolean'}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id'], 'properties': {'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'limit': {'type': 'integer', 'maximum': 64, 'minimum': 1, 'description': 'Notes per page.'}, 'cursor': {'type': 'string', 'maxLength': 128, 'description': 'Continues the previous page.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'notes': {'type': 'array', 'items': {'type': 'object', 'properties': {'file': {'type': 'string', 'maxLength': 256}, 'title': {'type': 'string', 'maxLength': 192}, 'section': {'type': 'string', 'maxLength': 64}, 'modified': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': True}}, 'reason': {'type': 'string'}, 'omitted': {'type': 'integer', 'minimum': 0}, 'outcome': {'type': 'string'}, 'complete': {'type': 'boolean'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'remaining': {'type': 'integer', 'minimum': 0}, 'documentId': {'type': 'string'}, 'next_cursor': {'type': ['string', 'null'], 'maxLength': 128}, 'availability': {'enum': ['available', 'unavailable']}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['document', 'operation_id', 'file'], 'properties': {'file': {'type': 'string', 'maxLength': 256, 'description': "The note's file from notes.list."}, 'agent': {'type': 'string', 'maxLength': 64, 'description': "This assistant's display name."}, 'limit': {'type': 'integer', 'maximum': 12288, 'minimum': 256, 'description': 'Units per page.'}, 'start': {'type': 'integer', 'maximum': 26214400, 'minimum': 0, 'description': 'The first UTF-16 unit.'}, 'cursor': {'type': 'string', 'maxLength': 128, 'description': 'Continues the previous page.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'operation_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 128, 'minLength': 22, 'description': 'A fresh random id for this call (a UUID works). Resend it only to retry this call; the retry replays the recorded result.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'end': {'type': 'integer', 'minimum': 0}, 'file': {'type': 'string', 'maxLength': 256}, 'text': {'type': ['string', 'null'], 'maxLength': 12288}, 'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'found': {'type': 'boolean'}, 'start': {'type': 'integer', 'minimum': 0}, 'reason': {'type': 'string'}, 'omitted': {'type': 'integer', 'minimum': 0}, 'outcome': {'type': 'string'}, 'complete': {'type': 'boolean'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'remaining': {'type': 'integer', 'minimum': 0}, 'documentId': {'type': 'string'}, 'next_cursor': {'type': ['string', 'null'], 'maxLength': 128}, 'availability': {'enum': ['available', 'unavailable']}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome', 'instructions'], 'properties': {'outcome': {'const': 'ok'}, 'instructions': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': [], 'properties': {'file': {'type': 'object', 'required': ['name', 'resourceUri'], 'properties': {'name': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': 'The opened filename, without a path.'}, 'resourceUri': {'type': 'string', 'maxLength': 8192, 'minLength': 1, 'description': 'Opaque host resource URI. Only the editor reads it through the host bridge.'}}, 'additionalProperties': False}, 'text': {'type': 'string', 'maxLength': 26214400, 'description': "Create: the document's text."}, 'docKind': {'enum': ['markdown', 'text', 'code'], 'type': 'string', 'description': 'markdown, text or code; the filename decides when absent.'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'filename': {'type': 'string', 'maxLength': 256, 'description': 'Its name; the extension sets the kind.'}, 'createToken': {'type': 'string', 'maxLength': 128, 'description': 'A secret you generate for a retryable create: 22 or more random url-safe characters.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['outcome'], 'properties': {'cause': {'enum': ['will', 'ask', 'check', 'proposal']}, 'reason': {'type': 'string'}, 'created': {'type': 'boolean'}, 'message': {'type': 'string', 'maxLength': 256}, 'outcome': {'type': 'string'}, 'document': {'type': 'string', 'maxLength': 64, 'description': 'The MCP document capability from rapier.open. Keep it private and pass it to later calls.'}, 'replayed': {'type': 'boolean'}, 'reviewId': {'type': 'string', 'maxLength': 128}, 'documentId': {'type': 'string'}, 'representation': {'const': 'source'}, 'documentRevision': {'type': 'integer'}}, 'additionalProperties': True}
Recent tool changes
Similar MCP servers
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
Dayze — Life Context
Provides authenticated personal life-context data and tools for contacts, memories, events, expenses, trips, assets, places, and …
YouSpot
Connects personal contacts, companies, notes, files, CRM records, email, Slack, LinkedIn, and calendars, with search, relationshi…
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
personalbrain-mcp
Provides read and write access to a personal knowledge graph, including thoughts, notes, links, attachments, queries, and change …
Kaiku
Manages team issues, comments, attachments, projects, wiki pages, and related development workflows.
Dock
Provides collaborative workspaces with tables, documents, HTML surfaces, files, formulas, comments, activity tracking, agent mess…
ContextLayer
Stores and retrieves organizational documents and knowledge-graph context while managing projects, tasks, teams and work sessions.