atlassian-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JIRA_URL | Yes | URL of your self-hosted Jira instance | |
| BITBUCKET_URL | Yes | URL of your self-hosted Bitbucket instance | |
| JIRA_ACCESS_TOKEN | Yes | Personal Access Token for Jira | |
| BITBUCKET_ACCESS_TOKEN | Yes | Personal Access Token for Bitbucket |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| git_get_contextA | Start here for any coding or review task: current branch, upstream ahead/behind, remote URL, recent commits, working tree status, diff stat summary, and Jira keys detected in the branch name. Pass includeDiff=true to also include the full uncommitted diff. |
| git_get_diffA | Get a diff between two git refs or commits. Use when you need to compare a feature branch to main, inspect a specific commit range, or review changes between two refs. For large diffs, increase maxChars or use charOffset to page through them. |
| get_dev_contextA | Master entry point for "what am I working on / what's the status", and before any review or coding task. Returns: git branch + upstream state, Jira ticket overview (status, transitions, sprint, comments), open PR with reviewer approvals, and actionable next-step hints (create PR, merge, address blockers). |
| start_workA | Start working on a Jira ticket end-to-end: resolves the ticket (by key or free-text search with a picker when multiple match), creates a local branch with an auto-generated name, fetches the project README from Bitbucket so you have commit/PR conventions in context, and prints a next-steps summary. If issueKey is omitted, provide query for free-text search. |
| jira_searchA | Discover Jira resources (tickets, projects, boards, sprints, versions, users). Set resource:
• "issues" (default) — search by text, JQL, project, status, assignee, issue type, or mine=true for your queue
• "projects" — list all projects and their keys
• "issue_types" — valid types and statuses for a project
• "boards" — list boards (pass project to filter by project key); use this to find the boardId before fetching sprints or board_overview
• "sprints" — sprints for a board (pass boardId); if you don't know the boardId, first use resource=boards
• "board_overview" — active/future sprints with their issues for a board (pass boardId); use when asked "what's in the sprint", "show me the board", or "what's everyone working on"
• "versions" — list fix versions/releases for a project (pass project; optionally pass query to filter by name substring). If the version you need does not exist, create it yourself with |
| jira_getA | Full details for one Jira issue: summary, description, status, assignee, sprint, available transitions, recent comments, and a list of attachments (filename, size, mime type, attachment ID). To view an attachment's contents (e.g. an image), call jira_get_attachment with the attachment ID surfaced here. |
| jira_mutateA | Create/update a ticket, transition status, assign, comment, link issues, or log work — bundles create/update/transition/comment/link/worklog in one call. Use Jira wiki markup (Atlassian renderer syntax), not GitHub/CommonMark markdown. |
| jira_get_attachmentA | Fetch a Jira attachment by ID and return its contents inline. Images are auto-resized + re-encoded; text/JSON/XML return as text; videos and animated images (GIF/APNG/animated WebP) are decoded with ffmpeg into sampled frames (re-call with start/end/frames or mode=scenes to refine); audio returns as an audio block; PDFs return extracted text. Oversized/non-renderable files are saved to a temp file and the path returned. Use jira_get first to discover attachment IDs. |
| jira_commentA | Add, update, or delete a comment on a Jira issue. action defaults to "add". Can only edit/delete your own comments. Use Jira wiki markup (Atlassian renderer syntax), not GitHub/CommonMark markdown. |
| jira_versionA | Manage Jira fix versions (releases): create, update, release, archive, delete. action defaults to "create". For create pass projectKey + name. For update/release/archive/delete pass id (look it up via jira_search resource=versions). "release" sets released=true and defaults releaseDate to today. Once a version exists you can set it on tickets via jira_mutate update.fixVersion. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
git_get_context and get_dev_context both claim to be the master entry point for coding/review tasks and return heavily overlapping git+Jira status information, making it unclear which one to call. jira_comment also duplicates the comment capability already bundled inside jira_mutate, further blurring tool boundaries.
Most Jira tools follow a readable jira_<verb_or_noun> pattern and Git tools use git_get_*, but get_dev_context and start_work break the prefix convention, and jira_mutate uses a vague verb instead of a concrete resource-action name. The naming is still mostly predictable despite these deviations.
10 tools is a reasonable size for a combined Jira/Git workflow and covers the major operations without feeling bloated. The count is slightly higher than needed because of overlapping entry-point tools and duplicated comment functionality, but it is still well within an appropriate range.
The set covers core Jira lifecycle operations, attachment retrieval, version management, git context, and diff inspection. Notable gaps include PR creation/merging despite those actions being hinted at in descriptions, and no explicit issue deletion, but most workflows can be completed with the existing tools.