Unix-socket MCP server that proxies tool calls from an MCP client into the running Mindle app. Exposes annotation feedback channel — what files are open, what the user has annotated, and allows agents to mark annotations as addressed, comment on them, and react with emoji.
Mindle MCP has well-structured tool definitions with clear, action-oriented names (list_, get_, create_, clear_, comment_, react_, open_, wait_for_, get_collaborators). All 9 tools have descriptions (avg ~180 chars, within 10-1024 baseline). Input schemas are present and properly typed with required fields and descriptions. However, output schemas are not documented, responses are inferred from descriptions only. Error handling is minimal; no recovery guidance or categorization. Parameter descriptions are good but lack format constraints (e.g., timeout_ms has no min/max bounds). The annotation workflow is well-designed for composition, but missing idempotency guarantees and confirmation patterns for destructive ops (clear_annotation, create_annotation).
Mark an annotation as addressed and remove it from the file's sidebar. Provide a short summary of what you did so the user can see in their review pass. Call this after you've actually edited the file to address what the annotation asked for — clearing without addressing leaves the user confused.
Add a message to an annotation's thread without dismissing the annotation. Use this to reply to the user's note, ask a clarifying question before editing, or report progress on a multi-step change. The user sees your message inline under their annotation, with the same back-and-forth feel as a code review comment thread.
Create a new agent-authored annotation on a file currently open in Mindle. The annotation highlights a span of text and includes an optional note. Returns the new annotation's UUID. Use this to flag issues, suggest improvements, or mark sections for the user to review.
Return every annotation (highlight or note) the user has placed on a file currently open in Mindle. Each annotation includes its id, the highlighted text verbatim, surrounding context, the user's note (often empty for plain highlights), and a creation timestamp. Use the annotation as the user's instruction to you: read it, address it with your normal file-editing tools, then call clear_annotation to mark it done.
Return metadata about all collaborators currently active on a file (e.g., other agents, users, or integrations that have written annotations or messages). Each collaborator includes a display name, color, and type ('human', 'agent', etc.).
Output schemas not documented. Descriptions mention return structure (e.g., 'annotation includes id, text, context, note, timestamp') but no formal JSON Schema for responses. LLMs cannot plan downstream tool calls without knowing exact field names and types.
Numeric parameter timeout_ms lacks bounds. No min/max specified; LLMs could pass 0, negative, or absurdly large values. Should declare 100 - 300000 ms range.
Destructive operations (clear_annotation, create_annotation) lack confirmation or dry-run pattern. Agents can irreversibly clear annotations without preview. Should support a 'dry_run' param or require explicit confirmation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
List the absolute paths of every file currently open in Mindle (across all windows and tabs). Use this to see what the user is reading right now.
Open a file in Mindle. If the file is already open in any window, activates that tab. Otherwise opens a new tab in the most-recently-active window. Returns the file URL and whether the app was brought to the foreground. Fails silently if the file doesn't exist or no window is available.
Add a lightweight emoji reaction to an annotation or to a specific thread message — '+1' / 'heart' / 'laugh'. Use this when a written reply would be overkill: acknowledging that you've seen the user's note, agreeing with a thread message, or celebrating a resolved issue.
Long-poll for annotation events (user creates, updates, or deletes an annotation). Blocks until an event occurs or the timeout expires. Filters out events from the same client (by clientID) to avoid echoing back the agent's own writes. Returns the event type ('created', 'updated', 'deleted'), the annotation details, and the file path.
Error responses not documented. No guidance on retryability, user-fixable vs fatal errors, or recovery steps. E.g., 'file not open in Mindle' error has no suggestion to call list_open_files first.
Idempotency not guaranteed. create_annotation, comment_on_annotation, and react_to_annotation do not document whether repeated calls with identical params produce duplicate entries or are deduplicated. Agents retry on ambiguous failures.