Model Context Protocol server for Jira integration
This server has 5 tools with basic descriptions and Zod-validated input schemas. However, the definitions have significant gaps: descriptions are minimal (averaging ~60 chars, well below the 194-char baseline for A-grade tools), output schemas are not documented, error handling is generic, and parameter descriptions lack constraint details (format, range, allowed values). All tools are read-only, which is good for safety, but the tool interface does not guide LLM decision-making effectively. The naming is clean (verb_noun pattern), but descriptions are too terse to help LLMs distinguish when to use each tool or understand dependencies between them.
Get issues assigned to the current user in a project
Get detailed information about a Jira issue
Get list of available Jira issue types
Get issues of a specific type
Get list of available Jira projects
Output schemas not documented. src/server.ts returns all results as JSON text without specifying structure, field names, or types. LLMs cannot plan downstream tool calls or extract specific fields without seeing the schema.
Parameter descriptions lack actionable constraints. 'issueKey' is described as 'The key of the Jira issue to fetch (e.g., PROJECT-123)' but does not state format (uppercase, required pattern, length). 'maxResults' lacks min/max bounds. LLMs cannot validate inputs without explicit constraints.
Tool descriptions are minimal (40 - 60 chars, well below 194-char baseline). E.g., 'Get detailed information about a Jira issue' does not explain when to use this vs get_assigned_issues, what fields are returned, or how to chain with other tools. LLMs struggle to select the right tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 58 | - | v1 |
No pagination support documented. get_assigned_issues and get_issues_by_type accept maxResults but no cursor/offset or total count in response. Large result sets could exhaust context, and LLMs cannot determine if results are truncated.
Error responses are generic. All errors return 'Error fetching X: {error}' without guidance on recovery (retryable? user-fixable? fatal?). LLMs cannot determine next steps.
No tool annotations present. Jira tools are all read-only, but readOnlyHint is not declared in schemas. This leaves LLMs uncertain whether a tool modifies state.