This server has significant gaps in definition quality. Tool names follow verb_noun convention (good), but descriptions are minimal (10-30 chars, well below the 50-200 char baseline for A+ tools). Parameter descriptions exist but lack detail on constraints, formats, and valid values. Schemas are partially defined using Zod but not fully exposed in the tool registration, the schema property uses Zod shape objects rather than proper JSON Schema. No output schemas documented. Error handling is minimal (basic try-catch with console.error). The server lacks guidance on when to use each tool vs. similar ones, and does not document dependencies between tools (e.g., get_all_users should be called before create_ticket with assigneeId).
Create a jira project
Create a jira ticket
Get all Jira projects with optional pagination.
Get all jira tickets for a specific project.
Get all jira users.
Get available transitions for a Jira issue
Transition a Jira issue to a new status
Descriptions are too short (10-30 chars) and lack context. Baseline for A+ tools is 50-200 chars. LLMs cannot determine when to select a tool vs. similar ones without richer descriptions.
Parameter descriptions lack constraint details. E.g., 'priority' accepts free-form strings instead of enums (Highest|High|Medium|Low|Lowest). 'dueDate' says 'ISO format' but doesn't validate. LLMs hallucinate invalid values.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what does create_project return? Is it a project object with key, name, self?). Baseline: 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Update an existing Jira ticket. Only pass updated fields as parameters
No pagination support documented. get_all_projects and get_all_tickets may return large result sets. Baseline: tools returning lists should accept limit/offset and return total count. Without pagination, large results blow context window.
Error handling is minimal. CreateTicketTool catches errors and returns isError=true, but most tools throw raw errors. No recovery guidance (e.g., 'User not found. Try get_all_users() first.'). Baseline: error responses must tell LLM what to do next.