Atlassian MCP Server
An MCP (Model Context Protocol) server that enables Claude and Claude Code to interact with Atlassian Cloud (Confluence and Jira).
Features
Confluence
- Spaces: List, get details, create new spaces
- Pages: Full CRUD (create, read, update, delete)
- Comments: Read and add comments on pages
- Attachments: List and upload attachments
- Search: Query using CQL (Confluence Query Language)
Jira
- Projects: List, get details, create new projects
- Issues: Full CRUD (create, read, update, delete)
- Comments: Read and add comments on issues
- Attachments: List and upload attachments
- Search: Query using JQL (Jira Query Language)
Installation
# Clone or navigate to the project
cd atlassian-mcp
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install the package
pip install -e .
Configuration
- Copy the example environment file:
cp .env.example .env
- Edit
.envwith your Atlassian credentials:
ATLASSIAN_DOMAIN=yourcompany # yourcompany.atlassian.net
ATLASSIAN_EMAIL=you@example.com
ATLASSIAN_API_TOKEN=your_api_token
- Get your API token from: https://id.atlassian.com/manage-profile/security/api-tokens
Usage
stdio Mode (for Claude Code)
# Run directly
python -m atlassian_mcp --stdio
# Or using the installed command
atlassian-mcp --stdio
SSE Mode (HTTP Server)
# Run the HTTP server
python -m atlassian_mcp --sse
# Server will start on http://127.0.0.1:8000
# SSE endpoint: http://127.0.0.1:8000/sse
# Health check: http://127.0.0.1:8000/health
Claude Code Configuration
Add to your Claude Code settings (~/.claude/settings.json or project-level):
{
"mcpServers": {
"atlassian": {
"command": "/path/to/atlassian-mcp/.venv/bin/python",
"args": ["-m", "atlassian_mcp", "--stdio"],
"cwd": "/path/to/atlassian-mcp"
}
}
}
The server reads credentials from the .env file in the project directory, so you don't need to specify them in settings.json.
Available Tools
Confluence Tools
| Tool | Description | |------|-------------| | confluence_list_spaces | List all Confluence spaces | | confluence_get_space | Get space details by key | | confluence_create_space | Create a new space | | confluence_list_pages | List pages (optionally by space) | | confluence_get_page | Get page content by ID | | confluence_create_page | Create a new page | | confluence_update_page | Update an existing page | | confluence_delete_page | Delete a page | | confluence_search | Search using CQL | | confluence_get_comments | Get comments on a page | | confluence_add_comment | Add a comment to a page | | confluence_list_attachments | List page attachments | | confluence_upload_attachment | Upload attachment to page |
Jira Tools
| Tool | Description | |------|-------------| | jira_list_projects | List all Jira projects | | jira_get_project | Get project details by key | | jira_create_project | Create a new project | | jira_search_issues | Search using JQL | | jira_get_issue | Get issue details by key | | jira_create_issue | Create a new issue | | jira_update_issue | Update an existing issue | | jira_delete_issue | Delete an issue | | jira_get_comments | Get comments on an issue | | jira_add_comment | Add a comment to an issue | | jira_list_attachments | List issue attachments | | jira_upload_attachment | Upload attachment to issue |
Example Queries
Confluence CQL Examples
type=page AND space=TEAM
text ~ "search term"
creator=currentUser() AND created > now("-7d")
label=important
Jira JQL Examples
project = PROJ
assignee = currentUser() AND status != Done
created >= -7d ORDER BY created DESC
labels = bug AND priority = High
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
ruff format .
# Lint
ruff check .
License
MIT











