This is a mediocre MCP server with significant gaps in definition quality. The server provides 4 tools with basic schemas and Spanish-language descriptions. All tools are read-only and properly registered. However, the tool definitions lack depth in error handling guidance, parameter constraints, and output documentation. Descriptions are present but generic, they state WHAT the tool does but not WHEN to use it or what prerequisites exist. No enums are used for constrained inputs. Output schemas are not documented, forcing LLMs to infer result structure. Parameter descriptions are minimal (e.g., 'La clave del issue (ej: PROJ-123)' provides format hints via example but no validation rules). The jiraRequest() helper has basic error handling (checks response.ok) but error messages are generic ('Jira API error: {status} {statusText}') without recovery guidance. No timeout handling, rate limiting, or field-level output filtering is evident. The server accepts bareword credentials via environment variables (correct pattern: secret injection), but tool responses return raw Jira JSON structures with potentially sensitive metadata. The `search_issues` tool accepts arbitrary JQL, creating potential for injection attacks if user input is unsanitized. Tool composition is reasonable (4 separate read-only queries), but no dependency hints or multi-step guidance is documented.
Obtiene los detalles completos de un issue de Jira por su clave (ej: PROJ-123)
Obtiene todos los comentarios de un issue específico
Obtiene los issues asignados al usuario autenticado
Busca issues en Jira usando JQL (Jira Query Language)
Output schemas are not documented. LLMs cannot know which fields to expect in responses, forcing them to guess at downstream tool data availability. Tool descriptions state what is returned in English ('key', 'summary', 'status', etc.), but no formal schema with types is provided.
No error recovery guidance. When jiraRequest() throws 'Jira API error: 404 Not Found', the LLM receives no hint about how to proceed: Was the issue key invalid? Should it try search_issues()? Is this retryable? Generic error messages violate the recovery-guide pattern.
search_issues accepts free-form JQL without validation. No sanitization against injection is evident. An LLM could be tricked (via prompt injection) into passing 'project = PROJ) OR (project = *', a syntax error that wastes a call, or worse, exposes unintended data. JQL should be validated or parameterized.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 52 | - | v1 |
Tool descriptions lack context for LLM selection. 'Obtiene los detalles completos de un issue de Jira por su clave' (Gets complete details of a Jira issue by key) states WHAT but not WHEN or WHY. Compare to: 'Retrieve full issue details (summary, assignee, status, priority, description) by issue key. Use this to review an issue before commenting or updating it.' The latter guides the LLM to choose this tool in context.
Parameter constraints not formalized. 'maxResults' has a default of 10 but no min/max bounds declared. Could an LLM pass maxResults=999999? No type validation or limit enforcement is visible in the code. Numeric parameters should declare ranges (e.g., 1 - 100).
No pagination or result-limit enforcement documented. search_issues returns all results up to maxResults, but if the API returns 1000 issues and the limit is 100, the response will still include all 100 and bloat the context window. The description should state 'Returns max 10 issues' or the tool should cap results defensively.
Incomplete response handling. get_issue_comments is truncated in the source and the full response transformation is missing. If comments include fields like body, author, created, the response should only return LLM-relevant fields (not raw Jira metadata like internal IDs or audit trails).
Tool descriptions in Spanish, but no indication this is intentional for a specific audience. If the server targets Spanish-speaking LLMs or users, descriptions should be consistently translated and localized. If this is a global tool, descriptions should be in English (the lingua franca for programming and APIs).