Local MCP server for Jira worklogs, issue updates, and Bitbucket pull requests, with previews and configurable permissions.
Server defines 20 tools with consistent naming (verb_noun pattern: jira_*, bitbucket_*) and basic descriptions. All tools have input schemas with typed parameters. However, descriptions are terse (avg ~50 chars, well below the 194-char baseline), parameter descriptions lack detail on constraints and formats, and output schemas are not documented. Error handling is present but minimal. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification (READ_ONLY, WRITE, IRREVERSIBLE). Missing guidance on parameter relationships (e.g., 'confirmed' flag behavior) and recovery paths.
Add a comment to a Bitbucket pull request
Approve a Bitbucket pull request
Create a new pull request in a Bitbucket repository
Decline a Bitbucket pull request
Get details of a specific Bitbucket pull request
List pull requests in a Bitbucket repository
List Bitbucket repositories in a workspace
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., issue_id from jira_get_issue, pr_id from bitbucket_create_pull_request). Breaks tool chaining.
Descriptions are terse (avg ~50 chars vs 194-char baseline). Missing context on WHEN to use each tool and what it returns. E.g., 'Get issues without time entries for a specified period' does not explain the period format or output structure.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification. LLMs cannot distinguish safe reads from irreversible writes (e.g., bitbucket_merge_pull_request marked IRREVERSIBLE but no annotation).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Merge a Bitbucket pull request
Request changes on a Bitbucket pull request
Update a Bitbucket pull request
Add a comment to a Jira issue
Create a time entry (worklog) on a Jira issue
Get metadata for editing a Jira issue
Get details of a specific Jira issue
Get own time entries for a specified period
Get issues without time entries for a specified period
Get available transitions for a Jira issue
Search for Jira issues using JQL
Transition a Jira issue to a new status
Update fields on a Jira issue
Parameter 'confirmed' (boolean) appears on all WRITE/IRREVERSIBLE tools but lacks description. LLMs do not know if this is a dry-run flag, a confirmation gate, or a no-op. Breaks confirmation-request pattern.
Parameter 'period' (jira_get_my_hours, jira_get_my_unlogged_issues) accepts free-form strings ('last_week', 'this_week', date ranges) but no enum or format constraint. LLMs will hallucinate invalid values like 'last_fortnight' or 'Q3'.