A stdio MCP (Model Context Protocol) server wrapping the existing command socket protocol for md-mini (a minimalist live-preview markdown editor for macOS). Exposes tools for opening files, editing documents, and asking users questions directly within the editor.
mdmini MCP server defines 3 tools with strong descriptions and well-structured schemas. All tools have explicit descriptions (80-250 chars), comprehensive input schemas with type information and field descriptions, and clear use cases. Naming follows verb-noun conventions (show, edit, ask). Parameters are well-documented with constraints (mutually exclusive options, minItems/maxItems). However, output schemas are not explicitly documented, error handling guidance is absent, and no tool annotations (destructiveHint/readOnlyHint/idempotentHint) are present. No security scoping declared.
Ask the user a question with buttons rendered inside their open md-mini document; blocks until they answer. By default single-choice: returns the chosen option as `answer`. Set `multi: true` for checkbox mode — the user may check any number of options (including none) and confirms, and the response carries `answers` (an array) instead. Set `free_text: true` to also offer a free-text field — a typed answer comes back as `custom` (alongside `answers` in multi mode). Use for quick decisions while working on that document. Note: long timeout_secs values may exceed the calling MCP client's own request timeout — pick a value the client can actually wait for.
Replace the content of a document open in md-mini with new content. md-mini diffs against the live buffer, applies only the changed span, highlights it for the user, and autosaves. Send the COMPLETE new document, never a diff. Opens the file if not already open (must exist on disk).
Open a file in md-mini (the user's markdown editor), focus its window, and optionally scroll to a location with a pulse highlight — use it to point the user at a specific place. `line` and `find` are mutually exclusive.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
No tool annotations (destructiveHint, readOnlyHint, idempotentHint) present. 'show' and 'edit' modify editor state; 'ask' blocks execution, LLMs cannot assess safety/cost without hints.
No error handling guidance. Tools do not document failure modes, recovery steps, or actionable error messages. E.g., what happens if 'path' does not exist? If user does not answer 'ask' before timeout_secs expires?
No permission scopes declared. Tools modify editor state and require user interaction, no scope annotations (e.g., 'write:editor', 'interact:user') for audit or least-privilege enforcement.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
'ask' tool description contains timing advice (timeout_secs warning) but no explicit default or clamping behavior documented. Description mentions 'Clamped to 10-3600' but this should be in schema minValue/maxValue.
No confirmation or dry-run pattern for destructive operation 'edit'. Replacing entire document content is irreversible, should support a review or confirm step.