Server has 10 tools with basic schemas and descriptions, but significant quality gaps. All tools have descriptions (10-100 chars, mostly 80-120 chars) and input schemas with type definitions. However, descriptions lack actionable context (WHEN to use, prerequisites, state-change implications). Parameter descriptions are minimal. No output schemas documented. Error handling is absent from definitions. Naming is verb-first but some tools are redundant (execute_jql vs get_only_ticket_name_and_description). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Schemas are present but sparse, many parameters lack constraints, ranges, or enums. This is typical C-grade community server work.
Add an attachment from a public url to a ticket on Jira on the api /rest/api/3/issue/{issueIdOrKey}/attachments. Do not use markdown in your query.
Assign a ticket on Jira on the api /rest/api/3/issue/{issueIdOrKey}/assignee. Do not use markdown in your query.
Create a ticket on Jira on the api /rest/api/3/issue. Do not use markdown in any field.
Delete a ticket on Jira on the api /rest/api/3/issue/{issueIdOrKey}. Do not use markdown in your query.
Edit a ticket on Jira on the api /rest/api/3/issue/{issueIdOrKey}. Do not use markdown in any field.
Execute a JQL query on Jira on the api /rest/api/3/search. Do not use markdown in your query.
No output schemas documented. LLMs cannot predict response structure, forcing them to guess at field names and types for downstream tool chaining. This breaks composition patterns.
Descriptions lack actionable context. Most are 40-100 chars and state only WHAT (e.g. 'Execute a JQL query') without WHEN to use, prerequisites, or state-change implications. LLMs cannot reliably select the right tool.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). delete_ticket and edit_ticket are marked DESTRUCTIVE/WRITE but lack schema hints. Agents cannot infer safety properties without explicit annotations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Get all the status on Jira on the api /rest/api/3/status. Do not use markdown in your query.
Get the name and description of the requested tickets on the api /rest/api/3/search. Do not use markdown in your query.
List all the projects on Jira on the api /rest/api/3/project. Do not use markdown in your query.
Query assignables to a ticket on Jira on the api /rest/api/3/user/assignable/search?project={project-name}. Do not use markdown in your query.
Redundant tools: execute_jql and get_only_ticket_name_and_description both accept JQL and return tickets. LLMs waste reasoning cycles choosing between them. Consolidate with an optional 'fields' parameter.
Parameters lack constraints and enums. 'issuetype.name' accepts free-form strings (no enum of valid types). 'number_of_results' has no min/max bounds. LLMs can pass invalid values; no validation guidance in descriptions.