MCP server providing tools to interact with Jira and Confluence via Atlassian REST APIs, with OAuth 2.0 authentication and user-based access control
Server provides 4 read-only tools for Jira/Confluence with basic schemas and descriptions. All tools have verb-noun naming (search_*, get_*) and non-empty descriptions (40-60 chars each). Input schemas are present with typed parameters. However, descriptions are minimal and lack context about when to use each tool or what to do with results. Parameter descriptions are present but generic. No output schemas documented. No error handling guidance. No pagination support despite search tools that could return large result sets. Missing tool annotations (readOnlyHint present in metadata but not in schema). Overall structure is functional but below production baseline (194 char avg for A+ tools; these average ~50 chars).
Retrieve detailed content of a specific Confluence page by ID
Retrieve detailed information about a specific Jira issue by key
Search for Confluence pages using CQL (Confluence Query Language)
Search for Jira issues using JQL (Jira Query Language)
Descriptions are too brief (35-50 chars vs 194 char baseline). Missing context: when to use search vs get, what fields are returned, prerequisites (e.g., 'requires valid JQL syntax'), and next steps after retrieval.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., issue_key, page_id for chaining). Violates pattern:tool requirement.
Search tools lack pagination (limit/offset, max_results only). Large result sets will blow context window. No guidance on result limits or how to handle >100 results.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No error handling guidance. If JQL is invalid or page_id not found, LLM receives raw error with no recovery path. Missing pattern:recovery-guide.
Parameter descriptions are generic ('JQL query string', 'Confluence page ID'). Missing format constraints, examples of valid input, and dependencies (e.g., 'page_id is numeric; use search_confluence_pages to find it first').