nanyang12138/mcp-atlassian
If you are the rightful owner of mcp-atlassian and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
MCP server for Atlassian tools (Confluence, Jira) provides a seamless integration and management solution for Atlassian products using the Model Context Protocol.
MCP Atlassian
Model Context Protocol (MCP) server for Atlassian Cloud products (Confluence and Jira). This integration is designed specifically for Atlassian Cloud instances and does not support Atlassian Server or Data Center deployments.
Feature Demo
Resources
confluence://{space_key}: Access Confluence spaces and pagesconfluence://{space_key}/pages/{title}: Access specific Confluence pagesjira://{project_key}: Access Jira project and its issuesjira://{project_key}/issues/{issue_key}: Access specific Jira issues
Tools
Confluence Tools
-
confluence_search- Search Confluence content using CQL
- Inputs:
query(string): CQL query string (e.g. 'type=page AND space=DEV')limit(number, optional): Results limit (1-50, default: 10)
- Returns: Array of search results with page_id, title, space, url, last_modified, type, and excerpt
-
confluence_get_page- Get content of a specific Confluence page by ID
- Inputs:
page_id(string): Confluence page IDinclude_metadata(boolean, optional): Include page metadata (default: true)
- Returns: Page content and optional metadata
-
confluence_get_page_by_title- Get content of a Confluence page by space key and title
- Inputs:
space_key(string): Confluence space keytitle(string): Page title
- Returns: Page content and metadata
-
confluence_get_comments- Get comments for a specific Confluence page
- Input:
page_id(string): Confluence page ID
- Returns: Array of comments with author, creation date, and content
-
confluence_list_spaces- List all available Confluence spaces
- Inputs:
limit(number, optional): Maximum number of spaces to return (1-100, default: 25)
- Returns: Array of spaces with key, name, and description
-
confluence_get_space_pages- Get all pages from a specific Confluence space
- Inputs:
space_key(string): Confluence space keylimit(number, optional): Maximum number of pages to return (1-100, default: 25)
- Returns: Array of pages with page_id, title, url, and version
-
confluence_get_page_children- Get child pages of a specific Confluence page
- Inputs:
page_id(string): Parent page IDlimit(number, optional): Maximum number of children to return (1-100, default: 25)
- Returns: Array of child pages with page_id, title, url, and parent_id
-
confluence_create_page- Create a new Confluence page
- Inputs:
space_key(string): Space key where page will be createdtitle(string): Page titlebody(string): Page content in Confluence storage formatparent_id(string, optional): Parent page ID
- Returns: Created page content and metadata
-
confluence_update_page- Update an existing Confluence page
- Inputs:
page_id(string): Page ID to updatetitle(string): New page titlebody(string): New page content in Confluence storage formatversion(number): Current page version number
- Returns: Updated page content and metadata
Jira Tools
-
jira_get_issue- Get details of a specific Jira issue
- Inputs:
issue_key(string): Jira issue key (e.g., 'PROJ-123')expand(string, optional): Fields to expand
- Returns: Issue details including content and metadata
-
jira_search- Search Jira issues using JQL
- Inputs:
jql(string): JQL query stringfields(string, optional): Comma-separated fields (default: "*all")limit(number, optional): Results limit (1-50, default: 10)
- Returns: Array of matching issues with metadata
-
jira_get_project_issues- Get all issues for a specific Jira project
- Inputs:
project_key(string): Project keylimit(number, optional): Results limit (1-50, default: 10)
- Returns: Array of project issues with metadata
-
jira_get_projects- Get all accessible Jira projects
- Returns: Array of all projects accessible to the authenticated user
-
jira_get_issue_comments- Get comments for a specific Jira issue
- Inputs:
issue_key(string): Jira issue key (e.g., 'PROJ-123')
- Returns: Array of comments with author, creation date, and content
-
jira_get_transitions- Get available status transitions for an issue
- Inputs:
issue_key(string): Jira issue key (e.g., 'PROJ-123')
- Returns: Array of available transitions with id and name
-
jira_get_board_issues- Get issues from a specific Agile board
- Inputs:
board_id(number): Board IDlimit(number, optional): Maximum number of results (1-50, default: 50)
- Returns: Array of board issues with key, title, type, status, and link
-
jira_create_issue- Create a new Jira issue
- Inputs:
project_key(string): Project keysummary(string): Issue summary/titleissue_type(string): Issue type (e.g., 'Bug', 'Task', 'Story')description(string, optional): Issue descriptionpriority(string, optional): Priority nameassignee(string, optional): Assignee account IDlabels(array, optional): Array of label strings
- Returns: Created issue content and metadata
-
jira_update_issue- Update an existing Jira issue
- Inputs:
issue_key(string): Issue key to updatesummary(string, optional): New summarydescription(string, optional): New descriptionpriority(string, optional): New priorityassignee(string, optional): New assignee account IDlabels(array, optional): New labels
- Returns: Updated issue content and metadata
-
jira_add_comment- Add a comment to a Jira issue
- Inputs:
issue_key(string): Issue keycomment(string): Comment text
- Returns: Added comment details
-
jira_transition_issue- Transition a Jira issue to a new status
- Inputs:
issue_key(string): Issue keytransition_id(string): Transition ID
- Returns: Transition result
Installation
Prerequisites
- Python 3.10 or higher
- uv (recommended) or pip
Using uv (Recommended)
-
Clone the Repository:
git clone https://github.com/nanyang12138/mcp-atlassian.git cd mcp-atlassian -
Install with uv:
uv pip install -e .
Using pip
-
Clone the Repository:
git clone https://github.com/nanyang12138/mcp-atlassian.git cd mcp-atlassian -
Create Virtual Environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate -
Install Dependencies:
pip install -e .
Configuration
The MCP Atlassian integration supports using either Confluence, Jira, or both services. You only need to provide the environment variables for the service(s) you want to use.
Usage with Claude Desktop
-
Get API tokens from: https://id.atlassian.com/manage-profile/security/api-tokens
-
Add to your
claude_desktop_config.jsonwith only the services you need:
For Confluence only:
{
"mcpServers": {
"mcp-atlassian": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-atlassian",
"run",
"mcp-atlassian"
],
"env": {
"CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "your.email@domain.com",
"CONFLUENCE_API_TOKEN": "your_api_token"
}
}
}
}
For Jira only:
{
"mcpServers": {
"mcp-atlassian": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-atlassian",
"run",
"mcp-atlassian"
],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your.email@domain.com",
"JIRA_API_TOKEN": "your_api_token"
}
}
}
}
For both services:
{
"mcpServers": {
"mcp-atlassian": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-atlassian",
"run",
"mcp-atlassian"
],
"env": {
"CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "your.email@domain.com",
"CONFLUENCE_API_TOKEN": "your_api_token",
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your.email@domain.com",
"JIRA_API_TOKEN": "your_api_token"
}
}
}
}
Alternative: Using Python directly (if not using uv):
{
"mcpServers": {
"mcp-atlassian": {
"command": "python",
"args": ["-m", "mcp_atlassian.server"],
"env": {
"CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "your.email@domain.com",
"CONFLUENCE_API_TOKEN": "your_api_token",
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your.email@domain.com",
"JIRA_API_TOKEN": "your_api_token"
}
}
}
}
Usage with Cline
Add to your MCP settings in Cline. There are two methods:
Method 1: Using Python directly (recommended for development)
{
"mcpServers": {
"mcp-atlassian": {
"command": "/path/to/mcp-atlassian/.venv/bin/python",
"args": [
"-m",
"mcp_atlassian.server"
],
"env": {
"CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "your.email@domain.com",
"CONFLUENCE_API_TOKEN": "your_api_token",
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your.email@domain.com",
"JIRA_API_TOKEN": "your_api_token"
}
}
}
}
Method 2: Using the entry point (requires package installation)
{
"mcpServers": {
"mcp-atlassian": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-atlassian",
"run",
"mcp-atlassian"
],
"env": {
"CONFLUENCE_URL": "https://your-domain.atlassian.net/wiki",
"CONFLUENCE_USERNAME": "your.email@domain.com",
"CONFLUENCE_API_TOKEN": "your_api_token",
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your.email@domain.com",
"JIRA_API_TOKEN": "your_api_token"
}
}
}
}
Debugging
You can use the MCP inspector to debug the server:
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-atlassian run mcp-atlassian
Or if using Python directly:
npx @modelcontextprotocol/inspector python -m mcp_atlassian.server
View logs with:
- macOS:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log - Windows: Check
%APPDATA%\Claude\logs\ - Linux: Check
~/.config/Claude/logs/
Development
Running Tests
uv run pytest
Code Formatting
uv run ruff format .
Type Checking
uv run mypy src/
Security
- Never share API tokens
- Keep .env files secure and private
- Use API tokens with minimal required permissions
- Regularly rotate your API tokens
- See for best practices
Dependencies
atlassian-python-api>=3.41.16- Atlassian API clientbeautifulsoup4>=4.12.3- HTML parsinghttpx>=0.28.0- HTTP clientmcp>=1.0.0- Model Context Protocol SDKpython-dotenv>=1.0.1- Environment variable managementmarkdownify>=0.11.6- HTML to Markdown conversion
License
Licensed under MIT - see file. This is not an official Atlassian product.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Note: This is a fork of the original mcp-atlassian repository.