Atlassian

Atlassian

Tools for Atlassian products (Confluence and Jira). This integration supports both Atlassian Cloud and Jira Server/Data Center deployments.

10K+

18

37 Tools

Signed
Built by Docker
Requires Configuration
Requires Secrets
Add to Docker Desktop

Version 4.43 or later needs to be installed to add the server automatically

About

Atlassian MCP Server

Tools for Atlassian products (Confluence and Jira). This integration supports both Atlassian Cloud and Jira Server/Data Center deployments.

What is an MCP Server?

Characteristics

AttributeDetails
Docker Imagemcp/atlassian
Authorsooperset
Repositoryhttps://github.com/sooperset/mcp-atlassian
Dockerfilehttps://github.com/sooperset/mcp-atlassian/blob/v0.11.2/Dockerfile
Docker Image built byDocker Inc.
Docker Scout Health ScoreDocker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/atlassian --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceMIT License

Available Tools (37)

Tools provided by this ServerShort Description
confluence_add_commentAdd a comment to a Confluence page.
confluence_add_labelAdd label to an existing Confluence page.
confluence_create_pageCreate a new Confluence page.
confluence_delete_pageDelete an existing Confluence page.
confluence_get_commentsGet comments for a specific Confluence page.
confluence_get_labelsGet labels for a specific Confluence page.
confluence_get_pageGet content of a specific Confluence page by its ID, or by its title and space key.
confluence_get_page_childrenGet child pages of a specific Confluence page.
confluence_searchSearch Confluence content using simple terms or CQL.
confluence_update_pageUpdate an existing Confluence page.
jira_add_commentAdd a comment to a Jira issue.
jira_add_worklogAdd a worklog entry to a Jira issue.
jira_batch_create_issuesCreate multiple Jira issues in a batch.
jira_batch_get_changelogsGet changelogs for multiple Jira issues (Cloud only).
jira_create_issueCreate a new Jira issue with optional Epic link or parent for subtasks.
jira_create_issue_linkCreate a link between two Jira issues.
jira_create_sprintCreate Jira sprint for a board.
jira_delete_issueDelete an existing Jira issue.
jira_download_attachmentsDownload attachments from a Jira issue.
jira_get_agile_boardsGet jira agile boards by name, project key, or type.
jira_get_board_issuesGet all issues linked to a specific board filtered by JQL.
jira_get_issueGet details of a specific Jira issue including its Epic links and relationship information.
jira_get_link_typesGet all available issue link types.
jira_get_project_issuesGet all issues for a specific Jira project.
jira_get_project_versionsGet all fix versions for a specific Jira project.
jira_get_sprint_issuesGet jira issues from sprint.
jira_get_sprints_from_boardGet jira sprints from board by state.
jira_get_transitionsGet available status transitions for a Jira issue.
jira_get_user_profileRetrieve profile information for a specific Jira user.
jira_get_worklogGet worklog entries for a Jira issue.
jira_link_to_epicLink an existing issue to an epic.
jira_remove_issue_linkRemove a link between two Jira issues.
jira_searchSearch Jira issues using JQL (Jira Query Language).
jira_search_fieldsSearch Jira fields by keyword with fuzzy match.
jira_transition_issueTransition a Jira issue to a new status.
jira_update_issueUpdate an existing Jira issue including changing status, adding Epic links, updating fields, etc.
jira_update_sprintUpdate jira sprint.

Tools Details

Tool: confluence_add_comment

Add a comment to a Confluence page.

ParametersTypeDescription
contentstringThe comment content in Markdown format
page_idstringThe ID of the page to add a comment to

Tool: confluence_add_label

Add label to an existing Confluence page.

ParametersTypeDescription
namestringThe name of the label
page_idstringThe ID of the page to update

Tool: confluence_create_page

Create a new Confluence page.

ParametersTypeDescription
contentstringThe content of the page in Markdown format. Supports headings, lists, tables, code blocks, and other Markdown syntax
space_keystringThe key of the space to create the page in (usually a short uppercase code like 'DEV', 'TEAM', or 'DOC')
titlestringThe title of the page
parent_idstringoptional(Optional) parent page ID. If provided, this page will be created as a child of the specified page

Tool: confluence_delete_page

Delete an existing Confluence page.

ParametersTypeDescription
page_idstringThe ID of the page to delete

Tool: confluence_get_comments

Get comments for a specific Confluence page.

ParametersTypeDescription
page_idstringConfluence page ID (numeric ID, can be parsed from URL, e.g. from 'https://example.atlassian.net/wiki/spaces/TEAM/pages/123456789/Page+Title' -> '123456789')

Tool: confluence_get_labels

Get labels for a specific Confluence page.

ParametersTypeDescription
page_idstringConfluence page ID (numeric ID, can be parsed from URL, e.g. from 'https://example.atlassian.net/wiki/spaces/TEAM/pages/123456789/Page+Title' -> '123456789')

Tool: confluence_get_page

Get content of a specific Confluence page by its ID, or by its title and space key.

ParametersTypeDescription
convert_to_markdownbooleanoptionalWhether to convert page to markdown (true) or keep it in raw HTML format (false). Raw HTML can reveal macros (like dates) not visible in markdown, but CAUTION: using HTML significantly increases token usage in AI responses.
include_metadatabooleanoptionalWhether to include page metadata such as creation date, last update, version, and labels.
page_idstringoptionalConfluence page ID (numeric ID, can be found in the page URL). For example, in the URL 'https://example.atlassian.net/wiki/spaces/TEAM/pages/123456789/Page+Title', the page ID is '123456789'. Provide this OR both 'title' and 'space_key'. If page_id is provided, title and space_key will be ignored.
space_keystringoptionalThe key of the Confluence space where the page resides (e.g., 'DEV', 'TEAM'). Required if using 'title'.
titlestringoptionalThe exact title of the Confluence page. Use this with 'space_key' if 'page_id' is not known.

Tool: confluence_get_page_children

Get child pages of a specific Confluence page.

ParametersTypeDescription
parent_idstringThe ID of the parent page whose children you want to retrieve
convert_to_markdownbooleanoptionalWhether to convert page content to markdown (true) or keep it in raw HTML format (false). Only relevant if include_content is true.
expandstringoptionalFields to expand in the response (e.g., 'version', 'body.storage')
include_contentbooleanoptionalWhether to include the page content in the response
limitintegeroptionalMaximum number of child pages to return (1-50)
startintegeroptionalStarting index for pagination (0-based)

Tool: confluence_search

Search Confluence content using simple terms or CQL.

ParametersTypeDescription
querystringSearch query - can be either a simple text (e.g. 'project documentation') or a CQL query string. Simple queries use 'siteSearch' by default, to mimic the WebUI search, with an automatic fallback to 'text' search if not supported. Examples of CQL:
  • Basic search: 'type=page AND space=DEV'
  • Personal space search: 'space="~username"' (note: personal space keys starting with ~ must be quoted)
  • Search by title: 'title~"Meeting Notes"'
  • Use siteSearch: 'siteSearch ~ "important concept"'
  • Use text search: 'text ~ "important concept"'
  • Recent content: 'created >= "2023-01-01"'
  • Content with specific label: 'label=documentation'
  • Recently modified content: 'lastModified > startOfMonth("-1M")'
  • Content modified this year: 'creator = currentUser() AND lastModified > startOfYear()'
  • Content you contributed to recently: 'contributor = currentUser() AND lastModified > startOfWeek()'
  • Content watched by user: 'watcher = "[email protected]" AND type = page'
  • Exact phrase in content: 'text ~ ""Urgent Review Required"" AND label = "pending-approval"'
  • Title wildcards: 'title ~ "Minutes*" AND (space = "HR" OR space = "Marketing")' Note: Special identifiers need proper quoting in CQL: personal space keys (e.g., "~username"), reserved words, numeric IDs, and identifiers with special characters. limit|integeroptional|Maximum number of results (1-50) spaces_filter|stringoptional|(Optional) Comma-separated list of space keys to filter results by. Overrides the environment variable CONFLUENCE_SPACES_FILTER if provided.

Tool: confluence_update_page

Update an existing Confluence page.

ParametersTypeDescription
contentstringThe new content of the page in Markdown format
page_idstringThe ID of the page to update
titlestringThe new title of the page
is_minor_editbooleanoptionalWhether this is a minor edit
parent_idstringoptionalOptional the new parent page ID
version_commentstringoptionalOptional comment for this version

Tool: jira_add_comment

Add a comment to a Jira issue.

ParametersTypeDescription
commentstringComment text in Markdown format
issue_keystringJira issue key (e.g., 'PROJ-123')

Tool: jira_add_worklog

Add a worklog entry to a Jira issue.

ParametersTypeDescription
issue_keystringJira issue key (e.g., 'PROJ-123')
time_spentstringTime spent in Jira format. Examples: '1h 30m' (1 hour and 30 minutes), '1d' (1 day), '30m' (30 minutes), '4h' (4 hours)
commentstringoptional(Optional) Comment for the worklog in Markdown format
original_estimatestringoptional(Optional) New value for the original estimate
remaining_estimatestringoptional(Optional) New value for the remaining estimate
startedstringoptional(Optional) Start time in ISO format. If not provided, the current time will be used. Example: '2023-08-01T12:00:00.000+0000'

Tool: jira_batch_create_issues

Create multiple Jira issues in a batch.

ParametersTypeDescription
issuesstringJSON array of issue objects. Each object should contain:
  • project_key (required): The project key (e.g., 'PROJ')
  • summary (required): Issue summary/title
  • issue_type (required): Type of issue (e.g., 'Task', 'Bug')
  • description (optional): Issue description
  • assignee (optional): Assignee username or email
  • components (optional): Array of component names Example: [ {"project_key": "PROJ", "summary": "Issue 1", "issue_type": "Task"}, {"project_key": "PROJ", "summary": "Issue 2", "issue_type": "Bug", "components": ["Frontend"]} ] validate_only|booleanoptional|If true, only validates the issues without creating them

Tool: jira_batch_get_changelogs

Get changelogs for multiple Jira issues (Cloud only).

ParametersTypeDescription
issue_ids_or_keysarrayList of Jira issue IDs or keys, e.g. ['PROJ-123', 'PROJ-124']
fieldsarrayoptional(Optional) Filter the changelogs by fields, e.g. ['status', 'assignee']. Default to [] for all fields.
limitintegeroptionalMaximum number of changelogs to return in result for each issue. Default to -1 for all changelogs. Notice that it only limits the results in the response, the function will still fetch all the data.

Tool: jira_create_issue

Create a new Jira issue with optional Epic link or parent for subtasks.

ParametersTypeDescription
issue_typestringIssue type (e.g. 'Task', 'Bug', 'Story', 'Epic', 'Subtask'). The available types depend on your project configuration. For subtasks, use 'Subtask' (not 'Sub-task') and include parent in additional_fields.
project_keystringThe JIRA project key (e.g. 'PROJ', 'DEV', 'SUPPORT'). This is the prefix of issue keys in your project. Never assume what it might be, always ask the user.
summarystringSummary/title of the issue
additional_fieldsobjectoptional(Optional) Dictionary of additional fields to set. Examples:
  • Set priority: {'priority': {'name': 'High'}}
  • Add labels: {'labels': ['frontend', 'urgent']}
  • Link to parent (for any issue type): {'parent': 'PROJ-123'}
  • Set Fix Version/s: {'fixVersions': [{'id': '10020'}]}
  • Custom fields: {'customfield_10010': 'value'} assignee|stringoptional|(Optional) Assignee's user identifier (string): Email, display name, or account ID (e.g., '[email protected]', 'John Doe', 'accountid:...') components|stringoptional|(Optional) Comma-separated list of component names to assign (e.g., 'Frontend,API') description|stringoptional|Issue description

Tool: jira_create_issue_link

Create a link between two Jira issues.

ParametersTypeDescription
inward_issue_keystringThe key of the inward issue (e.g., 'PROJ-123')
link_typestringThe type of link to create (e.g., 'Duplicate', 'Blocks', 'Relates to')
outward_issue_keystringThe key of the outward issue (e.g., 'PROJ-456')
commentstringoptional(Optional) Comment to add to the link
comment_visibilityobjectoptional(Optional) Visibility settings for the comment (e.g., {'type': 'group', 'value': 'jira-users'})

Tool: jira_create_sprint

Create Jira sprint for a board.

ParametersTypeDescription
board_idstringThe id of board (e.g., '1000')
end_datestringEnd time for sprint (ISO 8601 format)
sprint_namestringName of the sprint (e.g., 'Sprint 1')
start_datestringStart time for sprint (ISO 8601 format)
goalstringoptional(Optional) Goal of the sprint

Tool: jira_delete_issue

Delete an existing Jira issue.

ParametersTypeDescription
issue_keystringJira issue key (e.g. PROJ-123)

Tool: jira_download_attachments

Download attachments from a Jira issue.

ParametersTypeDescription
issue_keystringJira issue key (e.g., 'PROJ-123')
target_dirstringDirectory where attachments should be saved

Tool: jira_get_agile_boards

Get jira agile boards by name, project key, or type.

ParametersTypeDescription
board_namestringoptional(Optional) The name of board, support fuzzy search
board_typestringoptional(Optional) The type of jira board (e.g., 'scrum', 'kanban')
limitintegeroptionalMaximum number of results (1-50)
project_keystringoptional(Optional) Jira project key (e.g., 'PROJ-123')
start_atintegeroptionalStarting index for pagination (0-based)

Tool: jira_get_board_issues

Get all issues linked to a specific board filtered by JQL.

ParametersTypeDescription
board_idstringThe id of the board (e.g., '1001')
jqlstringJQL query string (Jira Query Language). Examples:
  • Find Epics: "issuetype = Epic AND project = PROJ"
  • Find issues in Epic: "parent = PROJ-123"
  • Find by status: "status = 'In Progress' AND project = PROJ"
  • Find by assignee: "assignee = currentUser()"
  • Find recently updated: "updated >= -7d AND project = PROJ"
  • Find by label: "labels = frontend AND project = PROJ"
  • Find by priority: "priority = High AND project = PROJ" expand|stringoptional|Optional fields to expand in the response (e.g., 'changelog'). fields|stringoptional|Comma-separated fields to return in the results. Use '*all' for all fields, or specify individual fields like 'summary,status,assignee,priority' limit|integeroptional|Maximum number of results (1-50) start_at|integeroptional|Starting index for pagination (0-based)

Tool: jira_get_issue

Get details of a specific Jira issue including its Epic links and relationship information.

ParametersTypeDescription
issue_keystringJira issue key (e.g., 'PROJ-123')
comment_limitintegeroptionalMaximum number of comments to include (0 or null for no comments)
expandstringoptional(Optional) Fields to expand. Examples: 'renderedFields' (for rendered content), 'transitions' (for available status transitions), 'changelog' (for history)
fieldsstringoptional(Optional) Comma-separated list of fields to return (e.g., 'summary,status,customfield_10010'). You may also provide a single field as a string (e.g., 'duedate'). Use '*all' for all fields (including custom fields), or omit for essential fields only.
propertiesstringoptional(Optional) A comma-separated list of issue properties to return
update_historybooleanoptionalWhether to update the issue view history for the requesting user

Tool: jira_get_link_types

Get all available issue link types.

Tool: jira_get_project_issues

Get all issues for a specific Jira project.

ParametersTypeDescription
project_keystringThe project key
limitintegeroptionalMaximum number of results (1-50)
start_atintegeroptionalStarting index for pagination (0-based)

Tool: jira_get_project_versions

Get all fix versions for a specific Jira project.

ParametersTypeDescription
project_keystringJira project key (e.g., 'PROJ')

Tool: jira_get_sprint_issues

Get jira issues from sprint.

ParametersTypeDescription
sprint_idstringThe id of sprint (e.g., '10001')
fieldsstringoptionalComma-separated fields to return in the results. Use '*all' for all fields, or specify individual fields like 'summary,status,assignee,priority'
limitintegeroptionalMaximum number of results (1-50)
start_atintegeroptionalStarting index for pagination (0-based)

Tool: jira_get_sprints_from_board

Get jira sprints from board by state.

ParametersTypeDescription
board_idstringThe id of board (e.g., '1000')
limitintegeroptionalMaximum number of results (1-50)
start_atintegeroptionalStarting index for pagination (0-based)
statestringoptionalSprint state (e.g., 'active', 'future', 'closed')

Tool: jira_get_transitions

Get available status transitions for a Jira issue.

ParametersTypeDescription
issue_keystringJira issue key (e.g., 'PROJ-123')

Tool: jira_get_user_profile

Retrieve profile information for a specific Jira user.

ParametersTypeDescription
user_identifierstringIdentifier for the user (e.g., email address '[email protected]', username 'johndoe', account ID 'accountid:...', or key for Server/DC).

Tool: jira_get_worklog

Get worklog entries for a Jira issue.

ParametersTypeDescription
issue_keystringJira issue key (e.g., 'PROJ-123')

Tool: jira_link_to_epic

Link an existing issue to an epic.

ParametersTypeDescription
epic_keystringThe key of the epic to link to (e.g., 'PROJ-456')
issue_keystringThe key of the issue to link (e.g., 'PROJ-123')

Tool: jira_remove_issue_link

Remove a link between two Jira issues.

ParametersTypeDescription
link_idstringThe ID of the link to remove

Tool: jira_search

Search Jira issues using JQL (Jira Query Language).

ParametersTypeDescription
jqlstringJQL query string (Jira Query Language). Examples:
  • Find Epics: "issuetype = Epic AND project = PROJ"
  • Find issues in Epic: "parent = PROJ-123"
  • Find by status: "status = 'In Progress' AND project = PROJ"
  • Find by assignee: "assignee = currentUser()"
  • Find recently updated: "updated >= -7d AND project = PROJ"
  • Find by label: "labels = frontend AND project = PROJ"
  • Find by priority: "priority = High AND project = PROJ" expand|stringoptional|(Optional) fields to expand. Examples: 'renderedFields', 'transitions', 'changelog' fields|stringoptional|(Optional) Comma-separated fields to return in the results. Use '*all' for all fields, or specify individual fields like 'summary,status,assignee,priority' limit|integeroptional|Maximum number of results (1-50) projects_filter|stringoptional|(Optional) Comma-separated list of project keys to filter results by. Overrides the environment variable JIRA_PROJECTS_FILTER if provided. start_at|integeroptional|Starting index for pagination (0-based)

Tool: jira_search_fields

Search Jira fields by keyword with fuzzy match.

ParametersTypeDescription
keywordstringoptionalKeyword for fuzzy search. If left empty, lists the first 'limit' available fields in their default order.
limitintegeroptionalMaximum number of results
refreshbooleanoptionalWhether to force refresh the field list

Tool: jira_transition_issue

Transition a Jira issue to a new status.

ParametersTypeDescription
issue_keystringJira issue key (e.g., 'PROJ-123')
transition_idstringID of the transition to perform. Use the jira_get_transitions tool first to get the available transition IDs for the issue. Example values: '11', '21', '31'
commentstringoptional(Optional) Comment to add during the transition. This will be visible in the issue history.
fieldsobjectoptional(Optional) Dictionary of fields to update during the transition. Some transitions require specific fields to be set (e.g., resolution). Example: {'resolution': {'name': 'Fixed'}}

Tool: jira_update_issue

Update an existing Jira issue including changing status, adding Epic links, updating fields, etc.

ParametersTypeDescription
fieldsobjectDictionary of fields to update. For 'assignee', provide a string identifier (email, name, or accountId). Example: {'assignee': '[email protected]', 'summary': 'New Summary'}
issue_keystringJira issue key (e.g., 'PROJ-123')
additional_fieldsobjectoptional(Optional) Dictionary of additional fields to update. Use this for custom fields or more complex updates.
attachmentsstringoptional(Optional) JSON string array or comma-separated list of file paths to attach to the issue. Example: '/path/to/file1.txt,/path/to/file2.txt' or ['/path/to/file1.txt','/path/to/file2.txt']

Tool: jira_update_sprint

Update jira sprint.

ParametersTypeDescription
sprint_idstringThe id of sprint (e.g., '10001')
end_datestringoptional(Optional) New end date for the sprint
goalstringoptional(Optional) New goal for the sprint
sprint_namestringoptional(Optional) New name for the sprint
start_datestringoptional(Optional) New start date for the sprint
statestringoptional(Optional) New state for the sprint (future

Use this MCP Server

{
  "mcpServers": {
    "atlassian": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "CONFLUENCE_URL",
        "-e",
        "CONFLUENCE_USERNAME",
        "-e",
        "JIRA_URL",
        "-e",
        "JIRA_USERNAME",
        "-e",
        "CONFLUENCE_API_TOKEN",
        "-e",
        "CONFLUENCE_PERSONAL_TOKEN",
        "-e",
        "JIRA_API_TOKEN",
        "-e",
        "JIRA_PERSONAL_TOKEN",
        "mcp/atlassian"
      ],
      "env": {
        "CONFLUENCE_URL": "https://your-company.atlassian.net/wiki",
        "CONFLUENCE_USERNAME": "[email protected]",
        "JIRA_URL": "https://your-company.atlassian.net",
        "JIRA_USERNAME": "[email protected]",
        "CONFLUENCE_API_TOKEN": "your_api_token",
        "CONFLUENCE_PERSONAL_TOKEN": "your_api_token",
        "JIRA_API_TOKEN": "your_api_token",
        "JIRA_PERSONAL_TOKEN": "your_api_token"
      }
    }
  }
}

Why is it safer to run MCP Servers with Docker?

Manual installation

You can install the MCP server using:

Installation for

Related servers