MCP server implementation for Asana integration
Server has 6 read-only tools with basic Zod schemas and minimal descriptions. All tools follow verb_noun naming (get_*), but descriptions are generic (10-50 chars, well below the 194-char baseline). No parameter descriptions beyond type hints. Output schemas are undocumented, responses are raw API data without field documentation. No error handling guidance, no pagination metadata in responses, and no indication of what fields downstream tools should expect. Schemas are present but sparse; parameters lack actionable constraints or format guidance.
This tool gets projects from asana
This tool gets sections from a asana project
This tool gets a task from asana
This tool gets stories/comments from a asana task
This tool gets asana tasks by project id
This tool gets tasks from asana by section id
Descriptions are too short (10-50 chars vs 194-char baseline). LLMs cannot determine when to select each tool or distinguish between similar tools (e.g., get_tasks_by_project vs get_tasks_by_section).
Parameter descriptions are missing. Zod schemas define types but lack human-readable guidance. E.g., 'offset' and 'limit' have no explanation of pagination behavior, format, or valid ranges.
Output schemas are undocumented. Tools return raw Asana API responses (data, next_page) without field documentation. LLMs cannot plan downstream calls or extract required IDs (e.g., task_id, section_id) for chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
No error handling guidance. Tools do not document what errors can occur (e.g., invalid task_id, permission denied) or how LLMs should recover. Raw API errors will confuse agents.
Pagination metadata (next_page) is returned but not documented. LLMs do not know how to use next_page to fetch subsequent results or when pagination is exhausted.