MCP Atlassian
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
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)
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click Create API token, name it
- Copy the token immediately
B. Personal Access Token (Server/Data Center)
- Go to your profile (avatar) → Profile → Personal Access Tokens
- Click Create token, name it, set expiry
- Copy the token immediately
C. OAuth 2.0 Authentication (Cloud only)
-
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)
-
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"
-
Follow the browser prompt to authorize the application
-
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.jsonFor Cursor: Open Settings → MCP → + Add new global MCP server
Configuration Methods
There are two main approaches to configure the Docker container:
- Passing Variables Directly (shown in examples below)
- Using an Environment File with
--env-fileflag (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 operationsMCP_VERBOSE: Set to "true" for more detailed loggingENABLED_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_VERIFYandJIRA_SSL_VERIFYto "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.pyscript to get your access token and cloud ID. OAuth 2.0 authentication takes precedence over other authentication methods if configured.
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
-
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
-
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 CQLconfluence_get_page: Get content of a specific pageconfluence_create_page: Create a new pageconfluence_update_page: Update an existing page
Jira Tools
jira_get_issue: Get details of a specific issuejira_search: Search issues using JQLjira_create_issue: Create a new issuejira_update_issue: Update an existing issuejira_transition_issue: Transition an issue to a new statusjira_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:
-
Tool Filtering: Use
--enabled-toolsflag orENABLED_TOOLSenvironment 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" ...
-
Read/Write Control: Tools are categorized as read or write operations. When
READ_ONLY_MODEis enabled, only read operations are available regardless ofENABLED_TOOLSsetting.
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_USERNAMEandCONFLUENCE_API_TOKEN(where token is your password)
- SSL Certificate Issues: If using Server/Data Center and encounter SSL errors, set
CONFLUENCE_SSL_VERIFY=falseorJIRA_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:
- Check out our CONTRIBUTING.md guide for detailed development setup instructions.
- 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.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_atlassian-0.10.1.tar.gz | 299.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_atlassian-0.10.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 443.8 kB
Release files / mcp_atlassian-0.10.1.tar.gz
| Download URL | mcp_atlassian-0.10.1.tar.gz |
|---|---|
| Size | 299.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3edd4ea508bddbe273a0696924475cf8ccd6d6ef12909e5b1cb3b6b3c8bd8c52
|
|
BLAKE2b-256 checksum How to use checksums |
1a0f5bb7529ec0ffca8322cf5d580bfa75327a01ebf8c21d7eb841fad6766795
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.0
|
Release files / mcp_atlassian-0.10.1-py3-none-any.whl
| Download URL | mcp_atlassian-0.10.1-py3-none-any.whl |
|---|---|
| Size | 143.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4509f7a2d20ea564c916856bd30fbfea68f7139f85b51a139ab27d7a7196720e
|
|
BLAKE2b-256 checksum How to use checksums |
992a5cbb0f531fcd2084f057e903ac4a9aefc8bd6430a51d2d471a17b2f4a611
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.0
|