Skip to content

sooperset/mcp-atlassian

Repository files navigation

MCP Atlassian

smithery badge

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.

Atlassian MCP server

Feature Demo

Demo

Resources

Note: The MCP server filters resources to only show Confluence spaces and Jira projects that the user is actively interacting with, based on their contributions and assignments. This makes the integration more efficient and focused on relevant content.

  • confluence://{space_key}: Access Confluence spaces
  • jira://{project_key}: Access Jira projects

Tools

Confluence Tools

  1. confluence_search

    • Search Confluence content using CQL
    • Inputs:
      • query (string): CQL query string
      • 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
  2. confluence_get_page

    • Get content of a specific Confluence page
    • Inputs:
      • page_id (string): Confluence page ID
      • include_metadata (boolean, optional): Include page metadata (default: true)
    • Returns: Page content and optional metadata
  3. 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
  4. confluence_create_page

    • Create a new Confluence page
    • Inputs:
      • space_key (string): The key of the space to create the page in
      • title (string): The title of the page
      • content (string): The content of the page in Markdown format
      • parent_id (string, optional): Optional parent page ID
    • Returns: Created page details with metadata
    • Note: Uses markdown-to-confluence library for proper Confluence storage format conversion
  5. confluence_update_page

    • Update an existing Confluence page
    • Inputs:
      • page_id (string): The ID of the page to update
      • title (string): The new title of the page
      • content (string): The new content of the page in Markdown format
      • minor_edit (boolean, optional): Whether this is a minor edit (default: false)
      • version_comment (string, optional): Optional comment for this version (default: "")
    • Returns: Updated page details with metadata
    • Note: Uses markdown-to-confluence library for proper Confluence storage format conversion

Jira Tools

  1. 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
      • comment_limit (integer, optional): Maximum number of comments to include (0 or null for no comments)
    • Returns: Issue details including content and metadata
  2. jira_search

    • Search Jira issues using JQL
    • Inputs:
      • jql (string): JQL query string
      • fields (string, optional): Comma-separated fields (default: "*all")
      • limit (number, optional): Results limit (1-50, default: 10)
    • Returns: Array of matching issues with metadata
  3. jira_get_project_issues

    • Get all issues for a specific Jira project
    • Inputs:
      • project_key (string): Project key
      • limit (number, optional): Results limit (1-50, default: 10)
    • Returns: Array of project issues with metadata
  4. jira_create_issue

    • Create a new issue in Jira
    • Inputs:
      • project_key (string): The JIRA project key (e.g. 'PROJ')
      • summary (string): Summary/title of the issue
      • issue_type (string): Issue type (e.g. 'Task', 'Bug', 'Story')
      • description (string, optional): Issue description
      • additional_fields (string, optional): JSON string of additional fields
    • Returns: Created issue details with metadata
  5. jira_update_issue

    • Update an existing Jira issue
    • Inputs:
      • issue_key (string): Jira issue key
      • fields (string): JSON object of fields to update
      • additional_fields (string, optional): JSON string of additional fields
    • Returns: Updated issue details with metadata
  6. jira_delete_issue

    • Delete an existing Jira issue
    • Inputs:
      • issue_key (string): Jira issue key (e.g. PROJ-123)
    • Returns: Success confirmation message

Installation

Using uv (recommended)

On macOS:

brew install uv

When using uv, no specific installation is needed. We will use uvx to directly run mcp-atlassian.

uvx mcp-atlassian

Using PIP

Alternatively you can install mcp-atlassian via pip:

pip install mcp-atlassian

Installing via Smithery

To install Atlassian Integration for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install mcp-atlassian --client claude

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

  1. Get API tokens from: https://id.atlassian.com/manage-profile/security/api-tokens

  2. Add to your claude_desktop_config.json using one of the following methods:

Note: For all configuration methods, include only the environment variables needed for your services:

  • For Confluence only: Include CONFLUENCE_URL, CONFLUENCE_USERNAME, and CONFLUENCE_API_TOKEN
  • For Jira only: Include JIRA_URL, JIRA_USERNAME, and JIRA_API_TOKEN
  • For both services: Include all six variables
Using uvx
{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "uvx",
      "args": ["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"
      }
    }
  }
}
Using pip
{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "python",
      "args": ["-m", "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"
      }
    }
  }
}
Using docker

There are two ways to configure the Docker environment:

  1. Using environment variables directly in the config:
{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "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"
      }
    }
  }
}
  1. Using an environment file:
{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--env-file",
        "/path/to/your/.env",
        "mcp/atlassian"
      ]
    }
  }
}

The .env file should contain:

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

Cursor IDE Configuration

To integrate the MCP server with Cursor IDE:

image

Configure the server:

  • Open Cursor Settings
  • Navigate to Features > MCP Servers
  • Click Add new MCP server
  • Enter this configuration:
    name: mcp-atlassian
    type: command
    command: uvx mcp-atlassian --confluence-url=https://your-domain.atlassian.net/wiki --confluence-username=your.email@domain.com --confluence-token=your_api_token --jira-url=https://your-domain.atlassian.net --jira-username=your.email@domain.com --jira-token=your_api_token

Using a Local Development Version

If you've cloned the repository and want to run a local version of mcp-atlassian:

Configure in Claude Desktop:

{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/your/mcp-atlassian",
        "run", "mcp-atlassian",
        "--confluence-url=https://your-domain.atlassian.net",
        "--confluence-username=your.email@domain.com",
        "--confluence-token=your_api_token",
        "--jira-url=https://your-domain.atlassian.net",
        "--jira-username=your.email@domain.com",
        "--jira-token=your_api_token"
      ]
    }
  }
}

Debugging

You can use the MCP inspector to debug the server:

npx @modelcontextprotocol/inspector uvx mcp-atlassian

For development installations:

cd path/to/mcp-atlassian
npx @modelcontextprotocol/inspector uv run mcp-atlassian

View logs with:

tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Development

For local development testing:

  1. Use the MCP inspector (see Debugging)
  2. Test with Claude Desktop or Cursor IDE using the configuration above

Build

Docker build:

docker build -t mcp/atlassian .

Security

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

License

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

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published