Bun + WebView desktop app scaffold that hosts MCP tools on a Claude Code / Codex subscription.
Three tools with clear verb-noun naming and documented schemas. Descriptions are present but brief (10-50 chars), below the 50-200 char LLM-optimized baseline. All tools have input schemas with type constraints. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are correctly applied. However, parameter descriptions are minimal, and output schemas are not formally documented. Error handling is absent, tools return success messages but no guidance for failure cases. The server is in-process (no IPC boundary), which is architecturally sound but limits reusability.
Append a note to the notes panel in the app window.
Read the current app state: the status line and every note.
Set the status line shown in the app header. Use it to report what you are doing.
Descriptions are too brief (10-50 chars vs. 50-200 char baseline). 'Set the status line shown in the app header' lacks context on WHEN to use it or what happens on error.
No output schema documentation. Tools return JSON responses but LLMs cannot infer the structure of getState() output or what fields set_status/add_note return.
No error handling or recovery guidance. If setStatus() or addNote() fails (e.g., state mutation error), tools return no actionable error message for the LLM.
Parameter descriptions are minimal. 'The status line to display' and 'The note to append' lack format guidance, constraints, or examples of valid input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
STDIO transport only. Server is not remotely accessible and cannot be used by hosted MCP clients. Limits deployment flexibility.