Skip to main content

MCP Atlassian

PyPI Version PyPI - Downloads PePy - Total Downloads Run Tests License

Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). This integration supports both Confluence & Jira Cloud and Server/Data Center deployments.

Example Usage

Ask your AI assistant to:

  • 📝 Automatic Jira Updates - "Update Jira from our meeting notes"
  • 🔍 AI-Powered Confluence Search - "Find our OKR guide in Confluence and summarize it"
  • 🐛 Smart Jira Issue Filtering - "Show me urgent bugs in PROJ project from last week"
  • 📄 Content Creation & Management - "Create a tech design doc for XYZ feature"

Feature Demo

https://github.com/user-attachments/assets/35303504-14c6-4ae4-913b-7c25ea511c3e

Confluence Demo

https://github.com/user-attachments/assets/7fe9c488-ad0c-4876-9b54-120b666bb785

Compatibility

Product Deployment Type Support Status
Confluence Cloud ✅ Fully supported
Confluence Server/Data Center ✅ Supported (version 6.0+)
Jira Cloud ✅ Fully supported
Jira Server/Data Center ✅ Supported (version 8.14+)

Quick Start Guide

1. Authentication Setup

MCP Atlassian supports three authentication methods:

A. API Token Authentication (Cloud)

  1. Go to https://id.atlassian.com/manage-profile/security/api-tokens
  2. Click Create API token, name it
  3. Copy the token immediately

B. Personal Access Token (Server/Data Center)

  1. Go to your profile (avatar) → Profile → Personal Access Tokens
  2. Click Create token, name it, set expiry
  3. Copy the token immediately

C. OAuth 2.0 Authentication (Cloud only)

  1. Create an OAuth 2.0 integration in Atlassian:

    • Go to https://developer.atlassian.com/console/myapps/
    • Click "Create" and select "OAuth 2.0 integration"
    • Follow the wizard to create your app
    • Configure permissions for both Jira and Confluence as needed
    • Add a callback URL (e.g., http://localhost:8080/callback)
  2. Run the OAuth authorization helper:

    uvx mcp-atlassian@latest --oauth-setup
    

    This will guide you through the setup process by prompting for the required values (Client ID, Client Secret, etc.).

    Alternatively, you can clone the repository and run the script directly:

    # Clone the repository if you haven't already
    git clone https://github.com/sooperset/mcp-atlassian.git
    cd mcp-atlassian
    
    # Run the OAuth authorization script
    python scripts/oauth_authorize.py \
      --client-id YOUR_CLIENT_ID \
      --client-secret YOUR_CLIENT_SECRET \
      --redirect-uri "http://localhost:8080/callback" \
      --scope "read:jira-work write:jira-work read:confluence-space.summary write:confluence-content"
    
  3. Follow the browser prompt to authorize the application

  4. After successful authorization, add the displayed environment variables to your .env file

2. Installation

MCP Atlassian is distributed as a Docker image. This is the recommended way to run the server, especially for IDE integration. Ensure you have Docker installed.

# Pull Pre-built Image
docker pull ghcr.io/sooperset/mcp-atlassian:latest

IDE Integration

MCP Atlassian is designed to be used with AI assistants through IDE integration.

[!TIP] For Claude Desktop: Locate and edit the configuration file directly:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

For Cursor: Open Settings → MCP → + Add new global MCP server

Configuration Methods

There are two main approaches to configure the Docker container:

  1. Passing Variables Directly (shown in examples below)
  2. Using an Environment File with --env-file flag (shown in collapsible sections)

[!NOTE] Common environment variables include:

  • CONFLUENCE_SPACES_FILTER: Filter by space keys (e.g., "DEV,TEAM,DOC")
  • JIRA_PROJECTS_FILTER: Filter by project keys (e.g., "PROJ,DEV,SUPPORT")
  • READ_ONLY_MODE: Set to "true" to disable write operations
  • MCP_VERBOSE: Set to "true" for more detailed logging
  • ENABLED_TOOLS: Comma-separated list of tool names to enable (e.g., "confluence_search,jira_get_issue")

See the .env.example file for all available options.

Configuration Examples

Method 1 (Passing Variables Directly):

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "CONFLUENCE_URL",
        "-e", "CONFLUENCE_USERNAME",
        "-e", "CONFLUENCE_API_TOKEN",
        "-e", "JIRA_URL",
        "-e", "JIRA_USERNAME",
        "-e", "JIRA_API_TOKEN",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ],
      "env": {
        "CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
        "CONFLUENCE_USERNAME": "your.email@company.com",
        "CONFLUENCE_API_TOKEN": "your_confluence_api_token",
        "JIRA_URL": "https://your-company.atlassian.net",
        "JIRA_USERNAME": "your.email@company.com",
        "JIRA_API_TOKEN": "your_jira_api_token"
      }
    }
  }
}
Alternative: Using Environment File
{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--env-file",
        "/path/to/your/mcp-atlassian.env",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ]
    }
  }
}
Server/Data Center Configuration

For Server/Data Center deployments, use direct variable passing:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "CONFLUENCE_URL",
        "-e", "CONFLUENCE_PERSONAL_TOKEN",
        "-e", "CONFLUENCE_SSL_VERIFY",
        "-e", "JIRA_URL",
        "-e", "JIRA_PERSONAL_TOKEN",
        "-e", "JIRA_SSL_VERIFY",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ],
      "env": {
        "CONFLUENCE_URL": "https://confluence.your-company.com",
        "CONFLUENCE_PERSONAL_TOKEN": "your_confluence_pat",
        "CONFLUENCE_SSL_VERIFY": "false",
        "JIRA_URL": "https://jira.your-company.com",
        "JIRA_PERSONAL_TOKEN": "your_jira_pat",
        "JIRA_SSL_VERIFY": "false"
      }
    }
  }
}

[!NOTE] Set CONFLUENCE_SSL_VERIFY and JIRA_SSL_VERIFY to "false" only if you have self-signed certificates.

OAuth 2.0 Authentication Configuration

For Atlassian Cloud with OAuth 2.0:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "CONFLUENCE_URL",
        "-e", "JIRA_URL",
        "-e", "ATLASSIAN_OAUTH_CLIENT_ID",
        "-e", "ATLASSIAN_OAUTH_CLIENT_SECRET",
        "-e", "ATLASSIAN_OAUTH_REDIRECT_URI",
        "-e", "ATLASSIAN_OAUTH_SCOPE",
        "-e", "ATLASSIAN_OAUTH_CLOUD_ID",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ],
      "env": {
        "CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
        "JIRA_URL": "https://your-company.atlassian.net",
        "ATLASSIAN_OAUTH_CLIENT_ID": "your_client_id",
        "ATLASSIAN_OAUTH_CLIENT_SECRET": "your_client_secret",
        "ATLASSIAN_OAUTH_REDIRECT_URI": "http://localhost:8080/callback",
        "ATLASSIAN_OAUTH_SCOPE": "read:jira-work write:jira-work read:confluence-space.summary write:confluence-content",
        "ATLASSIAN_OAUTH_CLOUD_ID": "your_cloud_id"
      }
    }
  }
}

[!TIP] Run the scripts/oauth_authorize.py script to get your access token and cloud ID. OAuth 2.0 authentication takes precedence over other authentication methods if configured.

Proxy Configuration

MCP Atlassian supports routing API requests through standard HTTP/HTTPS/SOCKS proxies. Configure using environment variables:

  • Supports standard HTTP_PROXY, HTTPS_PROXY, NO_PROXY, SOCKS_PROXY.
  • Service-specific overrides are available (e.g., JIRA_HTTPS_PROXY, CONFLUENCE_NO_PROXY).
  • Service-specific variables override global ones for that service.

Add the relevant proxy variables to the args (using -e) and env sections of your MCP configuration:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "... existing Confluence/Jira vars",
        "-e", "HTTP_PROXY",
        "-e", "HTTPS_PROXY",
        "-e", "NO_PROXY",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ],
      "env": {
        "... existing Confluence/Jira vars": "...",
        "HTTP_PROXY": "http://proxy.internal:8080",
        "HTTPS_PROXY": "http://proxy.internal:8080",
        "NO_PROXY": "localhost,.your-company.com"
      }
    }
  }
}

Credentials in proxy URLs are masked in logs. If you set NO_PROXY, it will be respected for requests to matching hosts.

Single Service Configurations

For Confluence Cloud only:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "CONFLUENCE_URL",
        "-e", "CONFLUENCE_USERNAME",
        "-e", "CONFLUENCE_API_TOKEN",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ],
      "env": {
        "CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
        "CONFLUENCE_USERNAME": "your.email@company.com",
        "CONFLUENCE_API_TOKEN": "your_api_token"
      }
    }
  }
}

For Confluence Server/DC, use:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "CONFLUENCE_URL",
        "-e", "CONFLUENCE_PERSONAL_TOKEN",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ],
      "env": {
        "CONFLUENCE_URL": "https://confluence.your-company.com",
        "CONFLUENCE_PERSONAL_TOKEN": "your_personal_token"
      }
    }
  }
}

For Jira Cloud only:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "JIRA_URL",
        "-e", "JIRA_USERNAME",
        "-e", "JIRA_API_TOKEN",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ],
      "env": {
        "JIRA_URL": "https://your-company.atlassian.net",
        "JIRA_USERNAME": "your.email@company.com",
        "JIRA_API_TOKEN": "your_api_token"
      }
    }
  }
}

For Jira Server/DC, use:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "JIRA_URL",
        "-e", "JIRA_PERSONAL_TOKEN",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ],
      "env": {
        "JIRA_URL": "https://jira.your-company.com",
        "JIRA_PERSONAL_TOKEN": "your_personal_token"
      }
    }
  }
}

SSE Transport Configuration

Using SSE Instead of stdio
  1. Start the server manually in a terminal:

    docker run --rm -p 9000:9000 \
      --env-file /path/to/your/.env \
      ghcr.io/sooperset/mcp-atlassian:latest \
      --transport sse --port 9000 -vv
    
  2. Configure your IDE to connect to the running server via its URL:

    {
      "mcpServers": {
        "mcp-atlassian-sse": {
          "url": "http://localhost:9000/sse"
        }
      }
    }
    

Tools

Key Tools

Confluence Tools

  • confluence_search: Search Confluence content using CQL
  • confluence_get_page: Get content of a specific page
  • confluence_create_page: Create a new page
  • confluence_update_page: Update an existing page

Jira Tools

  • jira_get_issue: Get details of a specific issue
  • jira_search: Search issues using JQL
  • jira_create_issue: Create a new issue
  • jira_update_issue: Update an existing issue
  • jira_transition_issue: Transition an issue to a new status
  • jira_add_comment: Add a comment to an issue
View All Tools

Tools marked with * are only available on Jira Cloud.

Confluence Tools Jira Tools
confluence_search jira_get_issue
confluence_get_page jira_search
confluence_get_page_children jira_get_project_issues
confluence_get_comments jira_create_issue
confluence_create_page jira_batch_create_issues
confluence_update_page jira_update_issue
confluence_delete_page jira_delete_issue
confluence_get_labels jira_get_transitions
confluence_add_label jira_transition_issue
jira_add_comment
jira_add_worklog
jira_get_worklog
jira_batch_get_changelogs*
jira_download_attachments
jira_link_to_epic
jira_get_agile_boards
jira_get_board_issues
jira_get_sprints_from_board
jira_get_sprint_issues
jira_create_sprint
jira_update_sprint
jira_get_issue_link_types
jira_create_issue_link
jira_remove_issue_link

Tool Filtering and Access Control

The server provides two ways to control tool access:

  1. Tool Filtering: Use --enabled-tools flag or ENABLED_TOOLS environment variable to specify which tools should be available:

    # Via environment variable
    ENABLED_TOOLS="confluence_search,jira_get_issue,jira_search"
    
    # Or via command line flag
    docker run ... --enabled-tools "confluence_search,jira_get_issue,jira_search" ...
    
  2. Read/Write Control: Tools are categorized as read or write operations. When READ_ONLY_MODE is enabled, only read operations are available regardless of ENABLED_TOOLS setting.

Troubleshooting & Debugging

Common Issues

  • Authentication Failures:
    • For Cloud: Check your API tokens (not your account password)
    • For Server/Data Center: Verify your personal access token is valid and not expired
    • For older Confluence servers: Some older versions require basic authentication with CONFLUENCE_USERNAME and CONFLUENCE_API_TOKEN (where token is your password)
  • SSL Certificate Issues: If using Server/Data Center and encounter SSL errors, set CONFLUENCE_SSL_VERIFY=false or JIRA_SSL_VERIFY=false
  • Permission Errors: Ensure your Atlassian account has sufficient permissions to access the spaces/projects

Debugging Tools

# Using MCP Inspector for testing
npx @modelcontextprotocol/inspector uvx mcp-atlassian ...

# For local development version
npx @modelcontextprotocol/inspector uv --directory /path/to/your/mcp-atlassian run mcp-atlassian ...

# View logs
# macOS
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
# Windows
type %APPDATA%\Claude\logs\mcp*.log | more

Security

  • Never share API tokens
  • Keep .env files secure and private
  • See SECURITY.md for best practices

Contributing

We welcome contributions to MCP Atlassian! If you'd like to contribute:

  1. Check out our CONTRIBUTING.md guide for detailed development setup instructions.
  2. Make changes and submit a pull request.

We use pre-commit hooks for code quality and follow semantic versioning for releases.

License

Licensed under MIT - see LICENSE file. This is not an official Atlassian product.

Metadata

Release files for mcp-atlassian 0.10.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-atlassian 0.10.3
File Size Uploaded
mcp_atlassian-0.10.3.tar.gz 530.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-atlassian 0.10.3
File Interpreter ABI Platform
mcp_atlassian-0.10.3-py3-none-any.whl Python 3 none any Details

Total release size: 675.1 kB

Release files / mcp_atlassian-0.10.3.tar.gz

Download URL mcp_atlassian-0.10.3.tar.gz
Size 530.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f5d0e5eea45970823e1358a3fdebce1feb0561cd4560032b84f535e95908ea0c
BLAKE2b-256 checksum
How to use checksums
d20b40ae15b76ea67a4f1e03cd8e878feeb3a2725c02a19069149e95bb6b6d87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.0

Release files / mcp_atlassian-0.10.3-py3-none-any.whl

Download URL mcp_atlassian-0.10.3-py3-none-any.whl
Size 145.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
37f278940410d7ae8b29b88e896b4621eb6a95fdfb4d163db51e1da795129328
BLAKE2b-256 checksum
How to use checksums
69f0dcac59b48ac82588f84195e185d3f5c2fb029086a0d566612945d7d8ffdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.0

Release history Release notifications | RSS feed

0.23.1

2 release files

0.23.0

2 release files

0.22.1

2 release files

0.22.0

2 release files

0.21.1

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.1

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.3

2 release files

0.14.2

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.1

2 release files

0.12.0

2 release files

0.11.9

2 release files

0.11.8

2 release files

0.11.7

2 release files

0.11.6

2 release files

0.11.5

2 release files

0.11.4

2 release files

0.11.3

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.6

2 release files

0.10.5

2 release files

This release

0.10.3 This release

2 release files

0.9.0

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page