28 tools with consistent naming (verb_noun pattern) and basic schemas. All tools have descriptions (avg 60 chars, below 194-char baseline). Input schemas present but lack depth: most parameters missing descriptions, no enums for constrained values (e.g., status, sessionType), no output schemas documented. Error handling absent. Security: API key injected via env (good), but no permission gates on destructive ops (delete_*). Composition: tools are single-responsibility and chainable (e.g., get_project → update_project). Major gaps: parameter descriptions, output documentation, error recovery guidance.
Create a new client
Create a new project
Create a new time session
Create a new task
Delete a client
Delete a project
Delete a task
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., project_id from get_projects for chaining to update_project). Baseline: 100% of A+ tools document return types.
Parameter descriptions missing or minimal. 'query', 'statuses', 'first', 'after' in list tools lack guidance on format, range, or constraints. Baseline: 100% of A+ tools have param descriptions; avg 72 chars per param.
Constrained values not declared as enums. 'status' param in update_* tools accepts free-form strings; should be enum ['active', 'archived']. 'sessionType' in create_session correctly uses enum, but others do not. Invites hallucinated invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Extend the current session by specified minutes
Get apps and websites usage within a time range
Get time spent by category within a time range
Get a specific client by ID
Get time entries by client within a time range
List all clients with optional filtering
Get the currently active session
Get the current authenticated user profile
Get a specific project by ID
Get time entries by project within a time range
List all projects with optional filtering
Get sessions within a time range
Get productivity summary (total, focus, meeting, break time) within a time range
Get a specific task by ID
Get time entries by task within a time range
List all tasks with optional filtering
Start a new focus session timer
Stop the current session timer
Update an existing client
Update an existing project
Update an existing task
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, or next steps. E.g., delete_project should warn it is destructive and irreversible; get_project should guide 'not found' recovery.
Tool 'get_apps_and_websites' violates single-responsibility principle (pattern:tool). Name contains 'and', suggesting two concerns. Should split into get_apps and get_websites for independent composition.