MCP Hub
Back to servers

mcp-atlassian-extended

Extended MCP server for Jira and Confluence with custom fields and agile tools.

Registry
Stars
1
Updated
Feb 27, 2026

Quick Install

uvx mcp-atlassian-extended

mcp-atlassian-extended

PyPI version PyPI downloads Python License: MIT CI MCP Registry

mcp-atlassian-extended is a Model Context Protocol (MCP) server that extends mcp-atlassian with 23 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, calendars, time-off tracking, and sprint capacity planning. Works with Claude Desktop, Claude Code, Cursor, Windsurf, VS Code Copilot, and any MCP-compatible client.

Built with FastMCP, httpx, and Pydantic.

Relationship to mcp-atlassian

This project runs alongside mcp-atlassian, not as a replacement. Configure both servers:

  • mcp-atlassian handles: issues, search, transitions, comments, worklog, pages, Confluence search
  • mcp-atlassian-extended handles: attachments, agile, users, fields, calendars, time-off

There is no tool overlap — this server only implements tools that mcp-atlassian lacks.

1-Click Installation

Install in Cursor

Install in VS Code Install in VS Code Insiders

💡 Tip: For other AI assistants (Claude Code, Windsurf, IntelliJ), visit the Atlassian Extended MCP Installation Gateway.

Manual Setup Guides (Click to expand)

Prerequisite: Install uv first (required for all uvx install flows). Install uv.

Claude Code

claude mcp add atlassian-extended -- uvx mcp-atlassian-extended

Windsurf & IntelliJ

Windsurf: Add to ~/.codeium/windsurf/mcp_config.json IntelliJ: Add to Settings | Tools | MCP Servers

Note: The actual server config starts at atlassian-extended inside the mcpServers object.

{
  "mcpServers": {
    "atlassian-extended": {
      "command": "uvx",
      "args": ["mcp-atlassian-extended"],
      "env": {
        "JIRA_URL": "https://your-company.atlassian.net",
        "JIRA_USERNAME": "your.email@company.com",
        "JIRA_API_TOKEN": "your_api_token",
        "CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
        "CONFLUENCE_USERNAME": "your.email@company.com",
        "CONFLUENCE_API_TOKEN": "your_api_token"
      }
    }
  }
}

pip / uv

uv pip install mcp-atlassian-extended

Configuration

Jira Cloud (Basic Auth)

VariableRequiredDefaultDescription
JIRA_URLYes-Jira instance URL (e.g. https://your-company.atlassian.net)
JIRA_USERNAMEYes-Email address for Jira Cloud
JIRA_API_TOKENYes-API token from id.atlassian.com/manage-profile/security/api-tokens

Jira Data Center / Self-Hosted (Bearer Token)

VariableRequiredDefaultDescription
JIRA_URLYes-Jira instance URL
JIRA_PATYes-Personal access token (see fallback order below)

The server checks these environment variables in order — first match wins:

  1. JIRA_PAT
  2. JIRA_PERSONAL_TOKEN
  3. JIRA_TOKEN

Confluence Cloud (Basic Auth)

VariableRequiredDefaultDescription
CONFLUENCE_URLYes-Confluence URL (e.g. https://your-company.atlassian.net/wiki)
CONFLUENCE_USERNAMEYes-Email address for Confluence Cloud
CONFLUENCE_API_TOKENYes-API token (same as Jira if same Atlassian account)

Confluence Data Center / Self-Hosted (Bearer Token)

VariableRequiredDefaultDescription
CONFLUENCE_URLYes-Confluence instance URL
CONFLUENCE_PATYes-Personal access token (see fallback order below)

The server checks these environment variables in order — first match wins:

  1. CONFLUENCE_PAT
  2. CONFLUENCE_PERSONAL_TOKEN
  3. CONFLUENCE_TOKEN

Optional settings

VariableDefaultDescription
ATLASSIAN_READ_ONLYfalseSet to true to globally disable write operations across tools
JIRA_TIMEOUT30HTTP request timeout for Jira in seconds
JIRA_SSL_VERIFYtrueSet to false to skip SSL verification for Jira
CONFLUENCE_TIMEOUT30HTTP request timeout for Confluence in seconds
CONFLUENCE_SSL_VERIFYtrueSet to false to skip SSL verification for Confluence

Compatibility

ClientSupportedInstall Method
Claude DesktopYesclaude_desktop_config.json
Claude CodeYesclaude mcp add
CursorYesOne-click deeplink or .cursor/mcp.json
WindsurfYes~/.codeium/windsurf/mcp_config.json
VS Code CopilotYes.vscode/mcp.json
Any MCP clientYesstdio or HTTP transport

Tools (23)

CategoryCountTools
Jira Issues3create (with custom fields), update (with custom fields), create epic
Jira Links2create link, delete link
Jira Attachments4get, upload, download, delete
Jira Users1search by name/email
Jira Metadata3list projects, list fields, backlog
Jira Agile4get board, board config, get sprint, move to sprint
Confluence Calendars6list, search, time-off, who-is-out, person time-off, sprint capacity
Full tool reference (click to expand)

Jira Issues

ToolDescription
jira_create_issueCreate issue with standard and custom fields
jira_update_issueUpdate issue fields and custom fields
jira_create_epicCreate an epic (sets issue type automatically)

Jira Links

ToolDescription
jira_create_linkCreate a link between two issues (Relates, Blocks, etc.)
jira_delete_linkDelete an issue link by ID

Jira Attachments

ToolDescription
jira_get_attachmentsList attachments on an issue
jira_upload_attachmentUpload file to issue
jira_download_attachmentDownload attachment to local file
jira_delete_attachmentDelete an attachment

Jira Users

ToolDescription
jira_search_usersSearch users by name/email

Jira Metadata

ToolDescription
jira_list_projectsList all accessible projects
jira_list_fieldsList fields (with search/custom filter)
jira_backlogGet backlog issues for a board

Jira Agile

ToolDescription
jira_get_boardGet board details
jira_board_configGet board column configuration
jira_get_sprintGet sprint details
jira_move_to_sprintMove issues to a sprint

Confluence Calendars

ToolDescription
confluence_list_calendarsList all calendars
confluence_search_calendarsSearch calendars by name/space
confluence_get_time_offGet time-off events for date range
confluence_who_is_outCheck who is out on a date
confluence_get_person_time_offGet person's time-off events
confluence_sprint_capacityCalculate sprint capacity with time-off

Resources (15)

The server exposes curated Jira and Confluence workflow guides as MCP resources.

URINameDescription
resource://rules/jira-hierarchyJira Issue HierarchyEpic/story/task/subtask relationships, when to use each level
resource://rules/jira-ticket-writingJira Ticket Writing StandardsSummary format, description structure, acceptance criteria placement
resource://rules/acceptance-criteriaAcceptance Criteria StandardsGiven/When/Then format, testability, DoD vs AC
resource://rules/sprint-hygieneSprint Hygiene RulesCapacity planning, carryover policy, sprint goals, retrospective items
resource://rules/jira-workflowJira Workflow & AutomationStatus transitions, automation triggers, post-functions
resource://rules/issue-linkingIssue Linking Best PracticesLink types (blocks, relates, duplicates), cross-project links, epic links
resource://guides/story-pointsStory Point EstimationFibonacci scale, relative sizing, team calibration, anti-patterns
resource://guides/definition-of-doneDefinition of Done ChecklistsChecklist format, team-level vs org-level DoD, verification steps
resource://guides/jira-labelsJira Label TaxonomyNaming conventions, label categories, label vs component
resource://guides/jql-libraryJQL Query LibraryCommon queries, date functions, custom field syntax, saved filters
resource://guides/custom-fieldsJira Custom Field GovernanceField types, screen schemes, context, naming standards
resource://guides/confluence-spacesConfluence Space OrganizationSpace types, permission schemes, archiving, templates
resource://guides/agile-ceremoniesAgile Ceremony StandardsStandup, planning, review, retro formats and time-boxing
resource://guides/git-jira-integrationGit-Jira Integration PatternsSmart commits, branch naming, PR linking, status transitions
resource://templates/confluence-pagesConfluence Page TemplatesADR, runbook, onboarding, postmortem page structures

Prompts (5)

The server provides MCP prompts — reusable multi-tool workflow templates that clients can surface as slash commands.

PromptParametersWorkflow
create_ticketproject_key, issue_typeGather fields → set custom fields (DoD, privacy, security) → create → add links
plan_sprintboard_id, sprint_idCheck sprint → review backlog → calculate capacity → suggest scope → move issues
close_ticketissue_keyVerify DoD → check linked MR → transition statuses → add closing comment
team_availabilityteam_members, start_date, end_dateCheck who is out → per-person time-off → calculate capacity → flag conflicts
manage_attachmentsissue_keyList attachments → identify stale/duplicates → upload/download → clean up

Usage Examples

Issue Management

"Create a story in PROJ with custom story points"
→ jira_create_issue(project_key="PROJ", summary="Add OAuth login", issue_type="Story",
    custom_fields={"customfield_10004": 5})

"Update a ticket's priority and add labels"
→ jira_update_issue(issue_key="PROJ-123", fields={"priority": {"name": "High"}, "labels": ["urgent"]})

"Create an epic and link related stories"
→ jira_create_epic(project_key="PROJ", epic_name="Q1 Auth Overhaul")
→ jira_create_link(link_type="Relates", inward_issue="PROJ-100", outward_issue="PROJ-200")

Attachments

"List attachments on PROJ-123"
→ jira_get_attachments(issue_key="PROJ-123")

"Upload a screenshot to a ticket"
→ jira_upload_attachment(issue_key="PROJ-123", file_path="./screenshot.png")

"Download an attachment"
→ jira_download_attachment(content_url="https://jira.example.com/rest/api/2/attachment/content/456",
    save_path="./downloads/report.pdf")

Agile & Sprint Management

"Get the current sprint for board 42"
→ jira_get_board(board_id=42) → jira_get_sprint(sprint_id=7)

"Move tickets into the next sprint"
→ jira_move_to_sprint(sprint_id=8, issue_keys=["PROJ-1", "PROJ-2", "PROJ-3"])

"View backlog for board 42"
→ jira_backlog(board_id=42, max_results=50)

Time-Off & Sprint Capacity

"Who is out today?"
→ confluence_who_is_out(date="today")

"Get team time-off for the next two weeks"
→ confluence_get_time_off(start_date="today", end_date="+14d", group_by_person=True)

"Calculate sprint capacity accounting for PTO"
→ confluence_sprint_capacity(
    team_members=["Alice", "Bob", "Carol"],
    sprint_start="2025-03-03", sprint_end="2025-03-14")

Security Considerations

  • Token scope: For Jira Cloud, use API tokens scoped to the minimum required permissions. For Data Center, use PATs with project-level access.
  • Read-only mode: Set ATLASSIAN_READ_ONLY=true to disable all write operations (create, update, delete, upload). Enforced server-side before any API call.
  • File upload validation: jira_upload_attachment validates file paths (no traversal, max 100MB, file must exist).
  • Download path restriction: jira_download_attachment only accepts relative paths resolved within the working directory. Absolute paths and path traversal (../) are rejected.
  • Download URL validation: Attachment download URLs are validated against the configured Jira URL domain to prevent SSRF.
  • SSL verification: Enabled by default for both Jira and Confluence. Only disable for self-signed certificates in trusted networks.
  • MCP tool annotations: Each tool declares readOnlyHint, destructiveHint, and idempotentHint for client-side permission prompts.
  • No credential storage: Tokens are read from environment variables at startup and never persisted.

Rate Limits & Permissions

Rate Limits

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.

Required Permissions

OperationMinimum Jira Permission
List projects, fields, boardsBrowse Projects
Search usersBrowse Users
Create/update issues, epicsCreate Issues + Edit Issues
Create/delete issue linksLink Issues
Upload/delete attachmentsCreate Attachments + Delete Own Attachments
Move issues to sprintManage Sprints
Confluence calendars/time-offView space content

CLI & Transport Options

# Default: stdio transport (for MCP clients)
uvx mcp-atlassian-extended

# HTTP transport (SSE or streamable-http)
uvx mcp-atlassian-extended --transport sse --host 127.0.0.1 --port 8000
uvx mcp-atlassian-extended --transport streamable-http --port 9000

# CLI overrides for config
uvx mcp-atlassian-extended --jira-url https://jira.example.com --jira-token xxx --read-only

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.

Attribution

Inspired by mcp-atlassian by sooperset. Architecture and patterns follow similar conventions.

Development

git clone https://github.com/vish288/mcp-atlassian-extended.git
cd mcp-atlassian-extended
uv sync --all-extras

uv run pytest --cov
uv run ruff check .
uv run ruff format --check .

License

MIT

Reviews

No reviews yet

Sign in to write a review