Rapier - Markdown Editor & Art
Server Details
Markdown editor for writing, notes, editable diagrams, drawing and painting with your AI assistant.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- jackskip22/rapier-plugins
- GitHub Stars
- 0
TDQS
Scored across 6 tools
Each tool has a distinct primary role (edit=mutate, open=create/resume, read=inspect, show=present to human, export=deliver, undo=revert), so an agent can generally pick correctly. However, heavy mode-overloading within each tool (e.g., read vs show both touch human context/preview, open vs edit both create content) creates some fuzzy boundaries.
All six tools are single lowercase verbs (edit, export, open, read, show, undo), a perfectly consistent and predictable convention.
Six tools is well-scoped for a markdown editor/art server; each tool earns its place, and the surface is compact rather than sprawling.
Create (open), read, update (edit), revert (undo), and output (export) are covered, but there is no explicit delete/remove/close operation for documents or notes, leaving a potential dead end.
Available Tools
6 toolseditEdit RapierDestructiveInspect
Apply unique exact-text changes atomically as one undoable act (act is its id string), rename with filename, or set Note fields with note. At a moved numeric revision, literal edits apply if untouched since; whole-document replacement needs the current revision. A conflict returns current context; decide afresh. Drawings, painting, Water, comments and HTML objects use fenced text; painting needs an open editor and an operation_id.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| agent | No | Your display name on acts; never grants authority. | |
| label | No | Short description of this edit in history. | |
| fields | No | Note fields, with note and without changes. | |
| changes | No | ||
| turn_id | No | Groups acts for undo {turn_id}. | |
| document | Yes | ||
| filename | No | ||
| revision | Yes | From your latest read or open; a Note's is its sha256. | |
| operation_id | No |
exportSave or export RapierInspect
to:"file" (default) delivers markdown, html (the offline editor), page, txt, docx or pdf; to:"save" saves to the bound destination; to:"clipboard" copies a passage as plain, markdown, formatted or complete. to:"sync" alone syncs the Notes store and can replace files. On the hosted Door, page, docx and pdf need the person's paired, open editor; a self-hosted server can provide a renderer. Inspect delivery; export never publishes a website.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| text | No | ||
| agent | No | Your display name on acts; never grants authority. | |
| block | No | ||
| format | No | ||
| heading | No | ||
| document | Yes | ||
| revision | No | ||
| compare_id | No | ||
| operation_id | No |
openOpen RapierInspect
Create {text, filename}, resume {document}, open a Note {document, note}, create one {document, note:"new", text, title} (title only there), or import a host file {file}. Returns revision and whole text when it fits a page; otherwise a document map. A browser code goes to show {target:"pair", code}. Share editor_url when available; keep document private.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | This Door's editor_url, through its authorized connection. Use alone; other URLs are not fetched. | |
| file | No | ||
| note | No | ||
| text | No | ||
| agent | No | Your display name on acts; never grants authority. | |
| title | No | ||
| document | No | ||
| filename | No | ||
| createToken | No | ||
| operation_id | No |
readRead RapierRead-onlyIdempotentInspect
Read exact text, a heading/fence map (as:"outline") or a PNG (as:"image") of the page or of the named block, heading or lines. query finds lines here; search lists Notes. Continue next_cursor with cursor alone. Check human context and omissions before editing. state:true reports pending work and the person’s presence; after_revision with wait_ms waits for their next change. guide returns instructions; guide resource URIs are not document IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| as | No | ||
| note | No | ||
| agent | No | Your display name on acts; never grants authority. | |
| block | No | ||
| guide | No | Instructions only; use no other read selectors and no document. | |
| limit | No | ||
| lines | No | [first, last], 1-based, inclusive. | |
| query | No | Literal text to find in this document. | |
| since | No | ||
| state | No | ||
| cursor | No | ||
| search | No | Search the Notes store; "" lists all. | |
| heading | No | ||
| history | No | ||
| version | No | ||
| wait_ms | No | Bounded wait (ms) for the next human revision. | |
| document | No | From open; not needed with guide. | |
| versions | No | ||
| return_id | No | ||
| comparison | No | ||
| preferences | No | Include editor preferences in state; omitted by default. | |
| operation_id | No | ||
| after_revision | No | With wait_ms: return when the revision passes this. |
showShow or ask in RapierInspect
Present work or ask the person. An omitted target is inferred from its fields. A 4-letter browser code pairs that editor (target:"pair"); a connected workspace's owner first approves at owner_approval_url, then the person chooses ALLOW. pairing.status: none, code_shown, owner_approval_required, awaiting_allow or paired; only paired confirms pairing. Inspect actual presentation; a request is not proof the person saw it. A comparison leaves source unchanged. Later human navigation wins.
| Name | Required | Description | Default |
|---|---|---|---|
| act | No | ||
| code | No | Browser pairing code (target:"pair"). | |
| name | No | Comparison title or target:plugin name: math|mermaid|pdf|ocr|letters-field|letters-relief|letters-leaf|letters-arabesque|letters-silhouette|letters-gothic|letters-sugar|letters-illuminated-1490|letters-tuscan-1845|letters-renaissance-alphabet. | |
| note | No | ||
| text | No | Exact passage, or for comparison the whole alternative document. | |
| view | No | ||
| wait | No | ask: message (default) or selection. | |
| agent | No | Your display name on acts; never grants authority. | |
| block | No | ||
| close | No | ||
| value | No | preferences: the setting; playback: false pauses, true plays. | |
| words | No | Pointer label. | |
| target | No | ||
| heading | No | ||
| turn_id | No | ||
| document | Yes | ||
| lifetime | No | ||
| question | No | ||
| revision | No | ||
| compare_id | No | ||
| preference | No | ||
| timeout_ms | No | ||
| operation_id | No | ||
| after_return_id | No |
undoUndo Rapier workDestructiveInspect
Undo one act or one turn (act or turn_id, not both), preserving later work.
| Name | Required | Description | Default |
|---|---|---|---|
| act | No | From edit; pass act or turn_id. | |
| agent | No | Your display name on acts; never grants authority. | |
| turn_id | No | Undo a whole turn; pass act or turn_id. | |
| document | Yes | ||
| operation_id | No |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Changed
open1 field changed- removed
Input schema / oneOfRemoved value: -[ - { - "propertyNames": { - "not": { - "enum": [ - "document", - "url", - "file", - "note", - "title" - ] - } - }, - "required": [ - "text" - ], - "type": "object" - }, - { - "else": { - "propertyNames": { - "not": { - "enum": [ - "text", - "title" - ] - } - }, - "type": "object" - }, - "if": { - "properties": { - "note": { - "const": "new", - "type": "string" - } - }, - "required": [ - "note" - ] - }, - "propertyNames": { - "not": { - "enum": [ - "url", - "file", - "filename", - "createToken" - ] - } - }, - "required": [ - "document" - ], - "then": { - "required": [ - "text" - ] - }, - "type": "object" - }, - { - "propertyNames": { - "not": { - "enum": [ - "document", - "url", - "text", - "filename", - "note", - "title" - ] - } - }, - "required": [ - "file" - ], - "type": "object" - }, - { - "propertyNames": { - "not": { - "enum": [ - "document", - "file", - "text", - "filename", - "note", - "title", - "createToken" - ] - } - }, - "required": [ - "url" - ], - "type": "object" - } -]
- Changed
read1 field changed- removed
Input schema / oneOfRemoved value: -[ - { - "propertyNames": { - "not": { - "enum": [ - "document", - "note", - "block", - "heading", - "lines", - "query", - "search", - "as", - "versions", - "version", - "cursor", - "limit", - "state", - "preferences", - "history", - "since", - "comparison", - "return_id", - "after_revision", - "wait_ms" - ] - } - }, - "required": [ - "guide" - ], - "type": "object" - }, - { - "anyOf": [ - { - "required": [ - "document" - ] - }, - { - "required": [ - "cursor" - ] - } - ], - "not": { - "required": [ - "guide" - ] - } - } -]
- Changed
show1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Comparison title or target:plugin name: math|mermaid|pdf|ocr|letters-field|letters-relief|letters-leaf|letters-arabesque."New value: +"Comparison title or target:plugin name: math|mermaid|pdf|ocr|letters-field|letters-relief|letters-leaf|letters-arabesque|letters-silhouette|letters-gothic|letters-sugar|letters-illuminated-1490|letters-tuscan-1845|letters-renaissance-alphabet."
- Changed
undo1 field changed- removed
Input schema / oneOfRemoved value: -[ - { - "required": [ - "act" - ] - }, - { - "required": [ - "turn_id" - ] - } -]
6 tool updates
- Changed
edit2 fields changed- added
Input schema / properties / agent / descriptionAdded value: +"Your display name on acts; never grants authority." - added
Input schema / properties / label / descriptionAdded value: +"Short description of this edit in history."
- Changed
export1 field changed- added
Input schema / properties / agent / descriptionAdded value: +"Your display name on acts; never grants authority."
- Changed
open3 fields changed- added
Input schema / oneOfAdded value: +[ + { + "propertyNames": { + "not": { + "enum": [ + "document", + "url", + "file", + "note", + "title" + ] + } + }, + "required": [ + "text" + ], + "type": "object" + }, + { + "else": { + "propertyNames": { + "not": { + "enum": [ + "text", + "title" + ] + } + }, + "type": "object" + }, + "if": { + "properties": { + "note": { + "const": "new", + "type": "string" + } + }, + "required": [ + "note" + ] + }, + "propertyNames": { + "not": { + "enum": [ + "url", + "file", + "filename", + "createToken" + ] + } + }, + "required": [ + "document" + ], + "then": { + "required": [ + "text" + ] + }, + "type": "object" + }, + { + "propertyNames": { + "not": { + "enum": [ + "document", + "url", + "text", + "filename", + "note", + "title" + ] + } + }, + "required": [ + "file" + ], + "type": "object" + }, + { + "propertyNames": { + "not": { + "enum": [ + "document", + "file", + "text", + "filename", + "note", + "title", + "createToken" + ] + } + }, + "required": [ + "url" + ], + "type": "object" + } +] - added
Input schema / properties / agent / descriptionAdded value: +"Your display name on acts; never grants authority." - added
Input schema / properties / url / descriptionAdded value: +"This Door's editor_url, through its authorized connection. Use alone; other URLs are not fetched."
- Changed
read3 fields changed- added
Input schema / oneOfAdded value: +[ + { + "propertyNames": { + "not": { + "enum": [ + "document", + "note", + "block", + "heading", + "lines", + "query", + "search", + "as", + "versions", + "version", + "cursor", + "limit", + "state", + "preferences", + "history", + "since", + "comparison", + "return_id", + "after_revision", + "wait_ms" + ] + } + }, + "required": [ + "guide" + ], + "type": "object" + }, + { + "anyOf": [ + { + "required": [ + "document" + ] + }, + { + "required": [ + "cursor" + ] + } + ], + "not": { + "required": [ + "guide" + ] + } + } +] - added
Input schema / properties / agent / descriptionAdded value: +"Your display name on acts; never grants authority." - added
Input schema / properties / preferencesAdded value: +{ + "description": "Include editor preferences in state; omitted by default.", + "type": "boolean" +}
- Changed
show1 field changed- added
Input schema / properties / agent / descriptionAdded value: +"Your display name on acts; never grants authority."
- Changed
undo2 fields changed- added
Input schema / oneOfAdded value: +[ + { + "required": [ + "act" + ] + }, + { + "required": [ + "turn_id" + ] + } +] - added
Input schema / properties / agent / descriptionAdded value: +"Your display name on acts; never grants authority."
38 tool updates
- Removed
document.apply_edits - Removed
document.ask_editor - Removed
document.comment - Removed
document.compare - Removed
document.create_return - Removed
document.draw - Removed
document.export - Removed
document.find - Removed
document.get_context - Removed
document.get_outline - Removed
document.inspect_visual - Removed
document.list_comments - Removed
document.open_text - Removed
document.pair_browser - Removed
document.point - Removed
document.propose - Removed
document.propose_edits - Removed
document.read_context - Removed
document.reveal - Removed
document.save - Removed
document.set_view - Removed
document.show_changes - Removed
document.undo_agent_change - Removed
document.wait_for_user - Added
edit - Added
export - Removed
notes.history - Removed
notes.list - Removed
notes.propose - Removed
notes.read - Removed
notes.set - Removed
notes.sync - Added
open - Removed
rapier.guide - Removed
rapier.open - Added
read - Added
show - Added
undo
38 tool updates
- Added
document.apply_edits - Added
document.ask_editor - Added
document.comment - Added
document.compare - Added
document.create_return - Added
document.draw - Added
document.export - Added
document.find - Added
document.get_context - Added
document.get_outline - Added
document.inspect_visual - Added
document.list_comments - Added
document.open_text - Added
document.pair_browser - Added
document.point - Added
document.propose - Added
document.propose_edits - Added
document.read_context - Added
document.reveal - Added
document.save - Added
document.set_view - Added
document.show_changes - Added
document.undo_agent_change - Added
document.wait_for_user - Removed
edit - Removed
export - Added
notes.history - Added
notes.list - Added
notes.propose - Added
notes.read - Added
notes.set - Added
notes.sync - Removed
open - Added
rapier.guide - Added
rapier.open - Removed
read - Removed
show - Removed
undo
1 tool update
- Changed
show1 field changed- added
Input schema / properties / text / descriptionAdded value: +"Exact passage, or for comparison the whole alternative document."
4 tool updates
- Changed
edit5 fields changed- changed
Input schema / properties / fields / additionalPropertiesPrevious value: -trueNew value: +false - changed
Input schema / properties / fields / descriptionPrevious value: -"Note controls: tags, pinned, archived, trashed, colour, reminder. See rapier://guide."New value: +"Note fields, with note and without changes." - added
Input schema / properties / fields / propertiesAdded value: +{ + "archived": { + "type": "boolean" + }, + "colour": { + "enum": [ + "", + "red", + "orange", + "yellow", + "green", + "teal", + "blue", + "purple", + "pink", + "brown" + ], + "type": "string" + }, + "pinned": { + "type": "boolean" + }, + "reminder": { + "description": "App only; {at} in ms.", + "type": [ + "object", + "null" + ] + }, + "section": { + "maxLength": 48, + "type": "string" + }, + "tags": { + "items": { + "maxLength": 128, + "type": "string" + }, + "maxItems": 64, + "type": "array" + }, + "trashed": { + "type": "boolean" + } +} - added
Input schema / properties / revision / descriptionAdded value: +"From your latest read or open; a Note's is its sha256." - added
Input schema / properties / turn_id / descriptionAdded value: +"Groups acts for undo {turn_id}."
- Changed
read6 fields changed- added
Input schema / properties / document / descriptionAdded value: +"From open; not needed with guide." - changed
Input schema / properties / guide / descriptionPrevious value: -"Instructions only; use no other read selectors. MCP still requires the current document from open."New value: +"Instructions only; use no other read selectors and no document." - added
Input schema / properties / lines / descriptionAdded value: +"[first, last], 1-based, inclusive." - added
Input schema / properties / query / descriptionAdded value: +"Literal text to find in this document." - added
Input schema / properties / search / descriptionAdded value: +"Search the Notes store; \"\" lists all." - changed
Input schema / requiredPrevious value: -[ - "document" -]New value: +[]
- Changed
show4 fields changed- changed
Input schema / properties / code / descriptionPrevious value: -"Browser pairing code; only with target:\"pair\"."New value: +"Browser pairing code (target:\"pair\")." - added
Input schema / properties / value / descriptionAdded value: +"preferences: the setting; playback: false pauses, true plays." - added
Input schema / properties / wait / descriptionAdded value: +"ask: message (default) or selection." - added
Input schema / properties / words / descriptionAdded value: +"Pointer label."
- Changed
undo2 fields changed- added
Input schema / properties / act / descriptionAdded value: +"From edit; pass act or turn_id." - added
Input schema / properties / turn_id / descriptionAdded value: +"Undo a whole turn; pass act or turn_id."
Related MCP Connectors
Markdown notes in folders, with files, that your AI assistant can read, write and organise.
Markdown notes in folders, with files, that your AI assistant can read, write and organise.
Markdown notes and whiteboards your AI agent can read and write.
Create, edit and organize hand-drawn diagrams (flowcharts, ER, architecture) from any AI agent.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants in Cursor, Claude Code, and Windsurf to turn plain descriptions of components, actors, or data into auto-laid-out, editable hand-drawn diagrams across 25 types — including architecture, flowcharts, sequence diagrams, Gantt charts, and charts — with architecture-aware styling and natural-language revision. It can optionally persist a system as a version-controlled, queryable knowledge graph, and it runs fully offline with no API keys, exporting to SVG and PNG.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to turn architecture and data into living, queryable knowledge graphs and generate 25 types of hand-drawn, auto-laid-out diagrams that remain editable. It supports natural-language revisions, architecture-aware styling, SVG/PNG export, and fully offline use without API keys.-
- FlicenseNot gradedqualityAmaintenanceEnables AI coding assistants to turn natural-language descriptions of systems and data into editable, auto-laid-out Excalidraw diagrams across 25 types — from architecture and sequence diagrams to Gantt charts and scatter plots — plus optionally persist the architecture as a queryable, version-controlled knowledge graph. Runs fully offline with export to SVG and PNG, and diagrams can be revised afterward in natural language.-
- FlicenseNot gradedqualityAmaintenanceEnables AI coding assistants to turn architecture and engineering concepts into auto-laid-out, hand-drawn Excalidraw diagrams across 25 types, with natural-language revision and SVG/PNG export. Optionally persists systems as a queryable, version-controlled architecture knowledge graph while running fully offline without API keys.-
Glama MCP Gateway
Add one secure layer between your agents and this server.