Server has explicit tool definitions with schemas and descriptions, but quality is inconsistent. All 6 tools have names starting with action verbs (list_, get_, create_) and descriptions present. However, descriptions are generic (avg ~40 chars, well below the 194-char baseline for A+ tools). Parameter descriptions are minimal or absent for several tools. Output schemas are not documented, responses are JSON-stringified without field-level guidance. Error handling is basic (catch-all with error.message). No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinction. Missing pagination guidance for list tools despite accepting page parameters.
Create a new pull request
Get details of a specific pull request
Get details of a specific repository
List issues for a repository
List pull requests for a repository
List repositories for a workspace
Output schemas not documented. Responses are JSON-stringified without field-level guidance. LLMs cannot plan downstream calls or extract specific fields reliably.
Descriptions are generic and under 50 chars (avg ~40). Baseline for A+ tools is 194 chars. Descriptions lack WHEN to use, WHAT it returns, and dependencies. Example: 'List repositories for a workspace' does not explain pagination behavior or result structure.
No tool annotations (readOnlyHint/destructiveHint). bitbucket_create_pull_request is a write operation but lacks destructiveHint. Agents cannot distinguish safe retries from irreversible actions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
List tools (bitbucket_list_repositories, bitbucket_list_pull_requests, bitbucket_list_issues) accept page parameter but lack result limit documentation and pagination guidance. No mention of total count or next_cursor in descriptions.
Error handling is generic catch-all with error.message. No recovery guidance, error classification (retryable vs user-fixable), or actionable next steps for LLM.