Skip to main content
Glama

Rapier - Markdown Editor & Art

Show or ask in Rapier

show
Destructive

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.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "document": "<document>"
    },
    "name": "show"
  }
}

Input Schema

NameRequiredDescriptionDefault
actNo
codeNoBrowser pairing code (target:"pair").
nameNoComparison 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.
noteNo
textNoExact passage, or for comparison the whole alternative document.
viewNo
waitNoask: message (default) or selection.
agentNoYour display name on acts; never grants authority.
blockNo
closeNo
valueNopreferences: the setting; playback: false pauses, true plays.
wordsNoPointer label.
targetNo
headingNo
turn_idNo
documentYes
lifetimeNo
questionNo
revisionNo
compare_idNo
preferenceNo
timeout_msNo
operation_idNo
after_return_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / preference / enum
      Previous value: -[
      -  "accent",
      -  "theme",
      -  "fontSize",
      -  "defaultDocumentFont",
      -  "checker",
      -  "lineNums",
      -  "imageStorage",
      -  "inkColour",
      -  "inkWidth",
      -  "inkStylus",
      -  "wrap",
      -  "dim",
      -  "lineFit",
      -  "showPlayButton",
      -  "highlights",
      -  "highlightColor",
      -  "headings",
      -  "invertImageAlpha",
      -  "layout",
      -  "startIn",
      -  "notesSort",
      -  "notesLayout",
      -  "notesColour"
      -]New value: +[
      +  "accent",
      +  "theme",
      +  "fontSize",
      +  "defaultDocumentFont",
      +  "checker",
      +  "lineNums",
      +  "imageStorage",
      +  "inkColour",
      +  "inkWidth",
      +  "inkStylus",
      +  "wrap",
      +  "dim",
      +  "lineFit",
      +  "showPlayButton",
      +  "focus",
      +  "typewriter",
      +  "highlights",
      +  "highlightColor",
      +  "headings",
      +  "invertImageAlpha",
      +  "layout",
      +  "startIn",
      +  "notesSort",
      +  "notesLayout",
      +  "notesColour",
      +  "audioSpeed"
      +]
    • changedInput schema / properties / target / enum
      Previous value: -[
      -  "passage",
      -  "block",
      -  "pointer",
      -  "read_aloud",
      -  "playback",
      -  "comparison",
      -  "view",
      -  "preferences",
      -  "plugin",
      -  "file",
      -  "return",
      -  "note",
      -  "ask",
      -  "pair"
      -]New value: +[
      +  "passage",
      +  "block",
      +  "pointer",
      +  "read_aloud",
      +  "playback",
      +  "comparison",
      +  "view",
      +  "preferences",
      +  "plugin",
      +  "file",
      +  "record",
      +  "attachment",
      +  "return",
      +  "note",
      +  "ask",
      +  "pair"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / name / description
      Previous 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."
  3. Changed1 schema field changed
    • addedInput schema / properties / agent / description
      Added value: +"Your display name on acts; never grants authority."
  4. Added
  5. Removed
  6. Changed1 schema field changed
    • addedInput schema / properties / text / description
      Added value: +"Exact passage, or for comparison the whole alternative document."
  7. Changed4 schema fields changed
    • changedInput schema / properties / code / description
      Previous value: -"Browser pairing code; only with target:\"pair\"."New value: +"Browser pairing code (target:\"pair\")."
    • addedInput schema / properties / value / description
      Added value: +"preferences: the setting; playback: false pauses, true plays."
    • addedInput schema / properties / wait / description
      Added value: +"ask: message (default) or selection."
    • addedInput schema / properties / words / description
      Added value: +"Pointer label."
  8. Changed2 schema fields changed
    • removedInput schema / allOf
      Removed value: -[
      -  {
      -    "if": {
      -      "properties": {
      -        "target": {
      -          "const": "playback",
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "target"
      -      ]
      -    },
      -    "then": {
      -      "properties": {
      -        "value": {
      -          "type": "boolean"
      -        }
      -      },
      -      "required": [
      -        "revision",
      -        "value"
      -      ]
      -    }
      -  }
      -]
    • changedInput schema / properties / preference / enum
      Previous value: -[
      -  "accent",
      -  "theme",
      -  "fontSize",
      -  "defaultDocumentFont",
      -  "checker",
      -  "lineNums",
      -  "imageStorage",
      -  "inkColour",
      -  "inkWidth",
      -  "inkStylus",
      -  "wrap",
      -  "dim",
      -  "lineFit",
      -  "showPlayButton",
      -  "highlights",
      -  "highlightColor",
      -  "headings",
      -  "invertImageAlpha",
      -  "layout",
      -  "notesStart",
      -  "notesSort",
      -  "notesLayout",
      -  "notesColour"
      -]New value: +[
      +  "accent",
      +  "theme",
      +  "fontSize",
      +  "defaultDocumentFont",
      +  "checker",
      +  "lineNums",
      +  "imageStorage",
      +  "inkColour",
      +  "inkWidth",
      +  "inkStylus",
      +  "wrap",
      +  "dim",
      +  "lineFit",
      +  "showPlayButton",
      +  "highlights",
      +  "highlightColor",
      +  "headings",
      +  "invertImageAlpha",
      +  "layout",
      +  "startIn",
      +  "notesSort",
      +  "notesLayout",
      +  "notesColour"
      +]
  9. Added
  10. Removed
  11. Added

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive=true, readOnly=false and non-idempotent, so the safety profile is partly covered. The description adds real value beyond that: the pairing state machine, the owner-approval prerequisite, "a request is not proof the person saw it," "a comparison leaves source unchanged," and "later human navigation wins." It never explains what is destroyed or which targets mutate, leaving the destructiveHint unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead sentence is front-loaded and correct, but the body is telegraphic fragments ("pairing.status: none, code_shown, ...") that mix high-value state rules with cryptic asides. Every sentence is arguably load-bearing, yet the density makes it hard to parse rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a polymorphic 24-parameter tool with no output schema and destructive annotations, the description is far too thin: it does not map targets to behaviors, does not say what a successful call returns or how the human response arrives, and covers under a third of the parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 24 parameters and only 29% schema description coverage, the description must compensate and largely does not. It clarifies code, target:"pair", wait, comparison text, and that agent "never grants authority," but leaves act, block, close, value, words, heading, revision, compare_id, preference, lifetime, operation_id and after_return_id undocumented in both schema and prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Present work or ask the person" gives a verb+object, but 'work' is undefined and the 16 possible targets (comparison, plugin, pair, playback, read_aloud, etc.) are never enumerated as a whole. The result is a purpose an agent can only half-recognize, and no sibling (open, read, edit, export) is named for contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The pairing flow is explained step by step, but there is no guidance on when to choose 'show' over open/read/edit/export, nor which target to pick for a given goal. Usage is only inferable from scattered fragments like "target:\"pair\"".

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.