A reification layer between LLM conversations and your commitments. MCP server + floating pane.
StickyInc has 6 tools with basic registration and descriptions, but significant gaps in schema completeness and parameter documentation. Tool names follow verb_noun convention (add_task, list_tasks, complete_task), which is good. However, input schemas are not visible in the provided source code, only handler imports are shown. Descriptions are present but brief (34 - 194 chars, within baseline range). No parameter-level descriptions are evident. Error handling and output schema documentation are absent. The server lacks tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite having clear read/write semantics. Overall, this is a functional but under-documented implementation typical of early-stage community tools.
Add a todo to StickyInc. The user sees it appear in their floating pane.
Parse a free-text phrase like 'call dentist Friday 3pm' into a task with optional due date, using the configured LLM (Anthropic/OpenRouter/OpenAI).
Mark a StickyInc task done by id.
List recently completed StickyInc tasks, with optional archive of older completions.
List open StickyInc tasks (or all, with include_completed=true).
Schedule an event. v0.1 stores as a dated task; v0.3 will call Google Calendar create_event.
Input schemas not visible in source code. Tool registration shows only handler imports (e.g., addTaskSchema, listTasksSchema) but actual schema definitions are not provided. Cannot verify parameter types, descriptions, or constraints.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear semantic differences. add_task, add_task_natural, complete_task, and schedule_event are destructive writes; list_tasks and list_done are read-only. LLMs cannot infer safety/retry semantics without explicit hints.
Output schemas not documented. No indication of what fields list_tasks, list_done, or add_task return. LLMs cannot plan downstream tool calls or extract required IDs (e.g., task_id for complete_task) without knowing response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
No pagination support visible. list_tasks and list_done likely return unbounded results. Large task lists will blow context windows. No limit, offset, or cursor parameters evident.
add_task_natural delegates parsing to an external LLM (Anthropic/OpenRouter/OpenAI). No error handling documented for LLM failures, timeouts, or parsing ambiguities. If the LLM cannot parse 'call dentist Friday 3pm', what does the tool return?