If no list name is provided use list name 'todo'. If an item is added or removed from a list return the number of items now in that list.
Server has 4 tools with basic schemas and descriptions. All tools have input schemas with typed parameters and descriptions, meeting minimum requirements. However, descriptions are generic and lack actionable context for LLM selection. Output schemas are not documented, tools return free-text strings rather than structured objects. No error handling guidance, no parameter constraints (enums), and no documentation of side effects. Tool naming follows verb_noun convention (add_, get_, complete_) which is good, but descriptions don't explain WHEN to use each tool or what distinguishes them. Missing pagination for list operations and no guidance on idempotency for write operations.
Adds an item to a list identified by channel_id and list_name. Creates the list if it doesn't exist.
Marks a list item as completed instead of deleting it
Gets all items for a specific list identified by channel_id and list_name. By default only shows active items, set show_completed=True to see completed items too.
Gets all lists, optionally filtered by channel_id
Output schemas not documented. All tools return free-text strings instead of structured JSON objects. LLMs cannot parse results reliably or chain tool calls.
Descriptions lack actionable context. 'Gets all lists, optionally filtered by channel_id' does not explain WHEN to call this vs get_list_items, or what the LLM should do with the result.
No error handling guidance. Exceptions return raw error strings (e.g. 'Error adding item to list: ...') without recovery hints. LLM cannot determine if error is retryable or user-fixable.
No pagination support. get_lists and get_list_items lack limit/offset or cursor parameters. Large result sets will blow context window.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Descriptions do not declare side effects. add_list_item and complete_list_item modify state but descriptions don't explicitly say 'Creates list if it doesn't exist' or 'Marks item as completed (irreversible)'.