TaskLite MCP server: build a full backend (projects, boards, data, REST endpoints), deploy a frontend onto it, and get a ready-made admin, from Claude Code and other MCP clients
TaskLite MCP has 37 well-named tools with consistent verb_noun patterns (create_*, list_*, delete_*, etc.). All tools have descriptions and input schemas are present. However, many parameter descriptions are minimal (under 50 chars), output schemas are not documented, and error handling lacks recovery guidance. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are declared in ANNOTATIONS constant but not visible in all tool registrations. The server sanitizes sensitive user fields (resetPasswordToken, googleId, mfaEnabled) before returning responses, which is good security practice. Composition is sound, tools chain well (e.g., list_projects → create_board → query_items). Main gaps: parameter constraints (enums, ranges) are sparse, descriptions don't explain WHEN to use each tool vs. similar ones, and output field documentation is absent.
Add comment to an item
Configure external user access
Connect or switch TaskLite account
Check TaskLite connection
Create app
Create app API key
Create app endpoint
Output schemas not documented. Tools return JSON but LLMs cannot see what fields to expect (e.g., does list_projects return {id, name, description, owner} or {projectId, projectName, ...}?). This forces agents to guess field names and breaks downstream tool chaining.
Parameter descriptions lack constraints and format guidance. E.g., 'registrationPolicy' accepts 'open', 'approval', or 'closed' but description doesn't state this as an enum. 'limit' and 'offset' in query_items have no min/max bounds. LLMs cannot validate inputs without explicit constraints.
Error handling lacks recovery guidance. No evidence of actionable error messages (e.g., 'User not found. Try search_users() first.'). Errors likely return raw API responses or stack traces, giving agents no path forward.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 71 | 2026-07-28+ | v2 |
Create automation
Create board
Add column
Create item
Create project
Delete board
Delete column
Delete item
Delete project
Deploy frontend
Disconnect TaskLite account
Export project as JSON
Get app specification
Read board schema
Get frontend generation prompt
List comments on an item
List organizations
List projects
Sign in to TaskLite with email and password
Publish app
Push status
List items
Reorder columns
Rollback deployment
Search across organization
Send a test push
Update cell value
Create TaskLite account
Update board
Update column
Ambiguous tool names reduce clarity. 'push_status' is vague, does it push a status update, or retrieve push status? 'search' is generic, search what? (items, projects, users?). LLMs conflate similar names and waste reasoning cycles.
set_cell parameter 'value' has type null and no description of valid types. LLMs cannot infer whether to pass strings, numbers, booleans, arrays, or objects. This is a critical schema gap.