The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the MCP Atlassian Extended listing page.
Install: uvx mcp-atlassian-extended | PyPI | MCP Registry | Changelog
mcp-atlassian-extended is a Model Context Protocol (MCP) server that extends mcp-atlassian with 26 tools, 15 resources, and 5 prompts for Jira and Confluence: issue creation with custom fields, issue links, attachments, agile boards, sprints, backlog management, user search, project versions (API v2), calendars, time-off tracking, and sprint capacity planning. Works with Claude Desktop, Claude Code, Cursor, Windsurf, VS Code Copilot, and any MCP-compatible client.
Supports Jira Cloud, Jira Data Center, Confluence Cloud, and Confluence Data Center (self-hosted). No Atlassian Premium required.
Built with FastMCP, httpx, and Pydantic.
This project runs alongside mcp-atlassian, not as a replacement. Configure both servers:
There is no tool overlap — this server only implements tools that mcp-atlassian lacks.
💡 Tip: For other AI assistants (Claude Code, Windsurf, IntelliJ, Gemini CLI), visit the Atlassian Extended MCP Installation Gateway.
Prerequisite: Install
uvfirst (required for alluvxinstall flows). Install uv.
Windsurf: Add to ~/.codeium/windsurf/mcp_config.json
IntelliJ: Add to Settings | Tools | MCP Servers
Note: The actual server config starts at
atlassian-extendedinside themcpServersobject.
| Variable | Required | Default | Description |
|---|---|---|---|
JIRA_URL | Yes | - | Jira instance URL (e.g. https://your-company.atlassian.net) |
JIRA_USERNAME | Yes | - | Email address for Jira Cloud |
JIRA_API_TOKEN | Yes | - | API token from id.atlassian.com/manage-profile/security/api-tokens |
| Variable | Required | Default | Description |
|---|---|---|---|
JIRA_URL | Yes | - | Jira instance URL |
JIRA_PAT | Yes | - | Personal access token (see fallback order below) |
The server checks these environment variables in order — first match wins:
JIRA_PATJIRA_PERSONAL_TOKENJIRA_TOKEN| Variable | Required | Default | Description |
|---|---|---|---|
CONFLUENCE_URL | Yes | - | Confluence URL (e.g. https://your-company.atlassian.net/wiki) |
CONFLUENCE_USERNAME | Yes | - | Email address for Confluence Cloud |
CONFLUENCE_API_TOKEN | Yes | - | API token (same as Jira if same Atlassian account) |
| Variable | Required | Default | Description |
|---|---|---|---|
CONFLUENCE_URL | Yes | - | Confluence instance URL |
CONFLUENCE_PAT | Yes | - | Personal access token (see fallback order below) |
The server checks these environment variables in order — first match wins:
CONFLUENCE_PATCONFLUENCE_PERSONAL_TOKENCONFLUENCE_TOKEN| Variable | Default | Description |
|---|---|---|
ATLASSIAN_READ_ONLY | false | Set to true to globally disable write operations across tools |
JIRA_TIMEOUT | 30 | HTTP request timeout for Jira in seconds |
JIRA_SSL_VERIFY | true | Set to false to skip SSL verification for Jira |
CONFLUENCE_TIMEOUT | 30 | HTTP request timeout for Confluence in seconds |
CONFLUENCE_SSL_VERIFY | true | Set to false to skip SSL verification for Confluence |
| Client | Supported | Install Method |
|---|---|---|
| Claude Desktop | Yes | claude_desktop_config.json |
| Claude Code | Yes | claude mcp add |
| Cursor | Yes | One-click deeplink or .cursor/mcp.json |
| Windsurf | Yes | ~/.codeium/windsurf/mcp_config.json |
| VS Code Copilot | Yes | .vscode/mcp.json |
| Any MCP client | Yes | stdio or HTTP transport |
| Category | Count | Tools |
|---|---|---|
| Jira Issues | 3 | create (with custom fields), update (with custom fields), create epic |
| Jira Links | 2 | create link, delete link |
| Jira Attachments | 4 | get, upload, download, delete |
| Jira Users | 1 | search by name/email |
| Jira Metadata | 3 | list projects, list fields, backlog |
| Jira Agile | 4 | get board, board config, get sprint, move to sprint |
| Jira Versions | 3 | get project versions, create version, update version |
| Confluence Calendars | 6 | list, search, time-off, who-is-out, person time-off, sprint capacity |
| Tool | Description |
|---|---|
jira_create_issue | Create issue with standard and custom fields |
jira_update_issue | Update issue fields and custom fields |
jira_create_epic | Create an epic (sets issue type automatically) |
| Tool | Description |
|---|---|
jira_create_link | Create a link between two issues (Relates, Blocks, etc.) |
jira_delete_link | Delete an issue link by ID |
| Tool | Description |
|---|---|
jira_get_attachments | List attachments on an issue |
jira_upload_attachment | Upload file to issue |
jira_download_attachment | Download attachment to local file |
jira_delete_attachment | Delete an attachment |
| Tool | Description |
|---|---|
jira_search_users | Search users by name/email |
| Tool | Description |
|---|---|
jira_list_projects | List all accessible projects |
jira_list_fields | List fields (with search/custom filter) |
jira_backlog | Get backlog issues for a board |
| Tool | Description |
|---|---|
jira_get_board | Get board details |
jira_board_config | Get board column configuration |
jira_get_sprint | Get sprint details |
jira_move_to_sprint | Move issues to a sprint |
| Tool | Description |
|---|---|
jira_get_project_versions | List all versions for a project (REST API v2, Server/DC + Cloud) |
jira_create_version | Create a new version in a project (REST API v2) |
jira_update_version | Update an existing version (REST API v2) |
| Tool | Description |
|---|---|
confluence_list_calendars | List all calendars |
confluence_search_calendars | Search calendars by name/space |
confluence_get_time_off | Get time-off events for date range |
confluence_who_is_out | Check who is out on a date |
confluence_get_person_time_off | Get person's time-off events |
confluence_sprint_capacity | Calculate sprint capacity with time-off |
The server exposes curated Jira and Confluence workflow guides as MCP resources.
| URI | Name | Description |
|---|---|---|
resource://rules/jira-hierarchy | Jira Issue Hierarchy | Epic/story/task/subtask relationships, when to use each level |
resource://rules/jira-ticket-writing | Jira Ticket Writing Standards | Summary format, description structure, acceptance criteria placement |
resource://rules/acceptance-criteria | Acceptance Criteria Standards | Given/When/Then format, testability, DoD vs AC |
resource://rules/sprint-hygiene | Sprint Hygiene Rules | Capacity planning, carryover policy, sprint goals, retrospective items |
resource://rules/jira-workflow | Jira Workflow & Automation | Status transitions, automation triggers, post-functions |
resource://rules/issue-linking | Issue Linking Best Practices | Link types (blocks, relates, duplicates), cross-project links, epic links |
resource://guides/story-points | Story Point Estimation | Fibonacci scale, relative sizing, team calibration, anti-patterns |
resource://guides/definition-of-done | Definition of Done Checklists | Checklist format, team-level vs org-level DoD, verification steps |
resource://guides/jira-labels | Jira Label Taxonomy | Naming conventions, label categories, label vs component |
resource://guides/jql-library | JQL Query Library | Common queries, date functions, custom field syntax, saved filters |
resource://guides/custom-fields | Jira Custom Field Governance | Field types, screen schemes, context, naming standards |
resource://guides/confluence-spaces | Confluence Space Organization | Space types, permission schemes, archiving, templates |
resource://guides/agile-ceremonies | Agile Ceremony Standards | Standup, planning, review, retro formats and time-boxing |
resource://guides/git-jira-integration | Git-Jira Integration Patterns | Smart commits, branch naming, PR linking, status transitions |
resource://templates/confluence-pages | Confluence Page Templates | ADR, runbook, onboarding, postmortem page structures |
The server provides MCP prompts — reusable multi-tool workflow templates that clients can surface as slash commands.
| Prompt | Parameters | Workflow |
|---|---|---|
create_ticket | project_key, issue_type | Gather fields → set custom fields (DoD, privacy, security) → create → add links |
plan_sprint | board_id, sprint_id | Check sprint → review backlog → calculate capacity → suggest scope → move issues |
close_ticket | issue_key | Verify DoD → check linked MR → transition statuses → add closing comment |
team_availability | team_members, start_date, end_date | Check who is out → per-person time-off → calculate capacity → flag conflicts |
manage_attachments | issue_key | List attachments → identify stale/duplicates → upload/download → clean up |
ATLASSIAN_READ_ONLY=true to disable all write operations (create, update, delete, upload). Enforced server-side before any API call.jira_upload_attachment validates file paths (no traversal, max 100MB, file must exist).jira_download_attachment only accepts relative paths resolved within the working directory. Absolute paths and path traversal (../) are rejected.readOnlyHint, destructiveHint, and idempotentHint for client-side permission prompts.Jira Cloud enforces per-user rate limits. When rate-limited, tools return a 429 error with a hint to wait. Confluence Calendar API calls may be slower due to the Team Calendars plugin architecture.
| Operation | Minimum Jira Permission |
|---|---|
| List projects, fields, boards | Browse Projects |
| Search users | Browse Users |
| Create/update issues, epics | Create Issues + Edit Issues |
| Create/delete issue links | Link Issues |
| Upload/delete attachments | Create Attachments + Delete Own Attachments |
| Move issues to sprint | Manage Sprints |
| Create/update versions | Administer Projects |
| Confluence calendars/time-off | View space content |
The server loads .env files from the working directory automatically via python-dotenv.
Partial configuration: If only Jira credentials are set, the server starts with Jira tools only (no Confluence tools). The reverse also works — set only Confluence credentials to get calendar/time-off tools without Jira.
Inspired by mcp-atlassian by sooperset. Architecture and patterns follow similar conventions.
MIT