Back to catalog
A

Official Vendor Server

Atlassian✦ Lab Verified

Atlassian

Access Jira and Confluence together. Manage issues, search documentation, and coordinate project work.

8.9/10

Score

814ms

Latency

100%

Uptime

72

Tools

OAuth

Auth

Officialvendor-verifiedsecurity-scannedproject-managementproductivity

Ecosystem

Atlassian MCP Servers

2 specialized servers, 72 tools tested independently. Each link leads to a full review with tool-level evidence.

ServerScoreSecurity
Confluence89/1009/10
Jira89/1009/10
72 discovered60 executed60 success
Median latency: 814ms

Quick Verdict

Use this for Jira and Confluence automation in current tests. Avoid it for latency-sensitive operations. Best area: jira operations with 39 tested tools. Biggest failure: you'll hit 19889ms max response times that could timeout workflows.

Lab Review

What We Found

What works: Jira operations run clean across 39 tools covering everything from issue creation to sprint management. The server handles both read and write operations consistently, with jira_batch_create_issues and jira_add_issues_to_sprint performing reliably in current tests. Confluence search and page operations complement this with stable content retrieval. Where it breaks: Nothing broke during testing, but latency spikes to nearly 20 seconds on some operations. We hit these delays across both Jira and Confluence tools without a clear pattern - bulk operations didn't consistently take longer than single-item calls. The median 814ms is manageable, but you'll see occasional multi-second waits that could timeout in stricter environments. What this means for your workflow: You can build reliably on both Jira issue management and Confluence content operations. Set generous timeouts - 30 seconds minimum - to handle the occasional slow response. The 100% success rate across 60 tools means core functionality is stable, but plan for variable response times in user-facing applications. For teams needing consistent sub-second responses, this latency variability is a blocker. For background automation and reporting tools, it delivers.

Lab Observations

What actually happened during testing

During testing, our scanner interacted with Atlassian. 60 tools succeeded.

ToolStatus
jira_get_user_profile success
jira_get_all_projects success
jira_search_fields success
jira_get_link_types success
jira_search success
jira_get_project_issues success
jira_get_field_options success
jira_get_project_versions success
jira_get_project_components success
jira_get_agile_boards success
confluence_search success
confluence_search_user success
confluence_download_attachment success
jira_get_issue success
jira_get_transitions success
jira_get_worklog success
jira_get_issue_watchers success
jira_download_attachments success
jira_get_issue_images success
jira_get_issue_dates success
jira_get_issue_development_info success
jira_batch_get_changelogs success
jira_get_issues_development_info success
jira_get_board_issues success
jira_get_sprints_from_board success
confluence_get_page success
confluence_get_page_children success
confluence_get_comments success
confluence_get_labels success
confluence_get_page_views success
confluence_get_attachments success
confluence_download_content_attachments success
confluence_get_page_images success
confluence_get_page_history success
confluence_get_page_diff success
jira_get_sprint_issues success
jira_create_issue success
jira_batch_create_issues success
jira_create_version success
jira_batch_create_versions success
jira_create_sprint success
confluence_create_page success
jira_update_issue success
jira_add_comment success
jira_add_worklog success
jira_add_watcher success
jira_transition_issue success
jira_create_issue_link success
jira_create_remote_issue_link success
jira_link_to_epic success
jira_update_sprint success
jira_add_issues_to_sprint success
confluence_update_page success
confluence_add_label success
confluence_add_comment success
confluence_move_page success
confluence_upload_attachment success
confluence_upload_attachments success
jira_edit_comment success
confluence_reply_to_comment success

Reliability

10/10

Live test completed — 60 of 72 tools executed Score based on transport stability and schema completeness.

Score Breakdown

10/10

Reliability

60 of 60 executed tools succeeded.

9/10

Security

Score based on schema analysis and dependency audit.

7/10

Setup

Remote server with OAuth authentication.

8.9/10

Docs

72 tools with descriptions and input schemas.

10/10

Compatibility

Standard MCP protocol. Transport: OAuth.

7.4/10

Maintenance

Based on commit frequency, releases, and contributor activity.

Tools

72 available tools

jira_get_user_profile

Retrieve profile information for a specific Jira user. Args: ctx: The FastMCP context. user_identifier: User identifier (email, username, key, or account ID). Returns: JSON string representing the Jira user profile object, or an error object if not found. Raises: ValueError: If the Jira client is not configured or available.

jira_get_issue_watchers

Get the list of watchers for a Jira issue. Args: ctx: The FastMCP context. issue_key: Jira issue key. Returns: JSON string with watcher count and list of watchers. Raises: ValueError: If the Jira client is not configured or available.

jira_add_watcher

Add a user as a watcher to a Jira issue. Args: ctx: The FastMCP context. issue_key: Jira issue key. user_identifier: Account ID (Cloud) or username (Server/DC). Returns: JSON string with success confirmation. Raises: ValueError: If the Jira client is not configured or available.

jira_remove_watcher

Remove a user from watching a Jira issue. Args: ctx: The FastMCP context. issue_key: Jira issue key. username: Username to remove (Server/DC). account_id: Account ID to remove (Cloud). Returns: JSON string with success confirmation. Raises: ValueError: If the Jira client is not configured or available.

jira_get_issue

Get details of a specific Jira issue including its Epic links and relationship information. Args: ctx: The FastMCP context. issue_key: Jira issue key. fields: Comma-separated list of fields to return (e.g., 'summary,status,customfield_10010'), a single field as a string (e.g., 'duedate'), '*all' for all fields, or omitted for essentials. expand: Optional fields to expand. comment_limit: Maximum number of comments. properties: Issue properties to return. update_history: Whether to update issue view history. Returns: JSON string representing the Jira issue object. Raises: ValueError: If the Jira client is not configured or available.

Show all 72 tools →
jira_search

Search Jira issues using JQL (Jira Query Language). Args: ctx: The FastMCP context. jql: JQL query string. fields: Comma-separated fields to return. limit: Maximum number of results. start_at: Starting index for pagination. projects_filter: Comma-separated list of project keys to filter by. expand: Optional fields to expand. page_token: Pagination token from a previous search result (Cloud only). Returns: JSON string representing the search results including pagination info.

jira_search_fields

Search Jira fields by keyword with fuzzy match. Args: ctx: The FastMCP context. keyword: Keyword for fuzzy search. limit: Maximum number of results. refresh: Whether to force refresh the field list. Returns: JSON string representing a list of matching field definitions.

jira_get_field_options

Get allowed option values for a custom field. Returns the list of valid options for select, multi-select, radio, checkbox, and cascading select custom fields. Cloud: Uses the Field Context Option API. If context_id is not provided, automatically resolves to the global context. Server/DC: Uses createmeta to get allowedValues. Requires project_key and issue_type parameters. Args: ctx: The FastMCP context. field_id: The custom field ID. context_id: Field context ID (Cloud only, auto-resolved if omitted). project_key: Project key (required for Server/DC). issue_type: Issue type name (required for Server/DC). contains: Case-insensitive substring filter on option values. return_limit: Cap on number of results after filtering. values_only: Return compact format with only value strings. Returns: JSON string with the list of available options.

jira_get_project_issues

Get all issues for a specific Jira project. Args: ctx: The FastMCP context. project_key: The project key. limit: Maximum number of results. start_at: Starting index for pagination. Returns: JSON string representing the search results including pagination info.

jira_get_transitions

Get available status transitions for a Jira issue. Args: ctx: The FastMCP context. issue_key: Jira issue key. Returns: JSON string representing a list of available transitions.

jira_get_worklog

Get worklog entries for a Jira issue. Args: ctx: The FastMCP context. issue_key: Jira issue key. Returns: JSON string representing the worklog entries.

jira_download_attachments

Download attachments from a Jira issue. Returns attachment contents as base64-encoded embedded resources so that they are available over the MCP protocol without requiring filesystem access on the server. Args: ctx: The FastMCP context. issue_key: Jira issue key. Returns: A list containing a text summary and one EmbeddedResource per successfully downloaded attachment.

jira_get_issue_images

Get all images attached to a Jira issue as inline image content. Filters attachments to images only (PNG, JPEG, GIF, WebP, SVG, BMP) and returns them as base64-encoded ImageContent that clients can render directly. Non-image attachments are excluded. Files with ambiguous MIME types (application/octet-stream) are detected by filename extension as a fallback. Images larger than 50 MB are skipped with an error entry in the summary. Args: ctx: The FastMCP context. issue_key: Jira issue key. Returns: A list with a text summary followed by one ImageContent per successfully downloaded image.

jira_get_agile_boards

Get jira agile boards by name, project key, or type. Args: ctx: The FastMCP context. board_name: Name of the board (fuzzy search). project_key: Project key. board_type: Board type ('scrum' or 'kanban'). start_at: Starting index. limit: Maximum results. Returns: JSON string representing a list of board objects.

jira_get_board_issues

Get all issues linked to a specific board filtered by JQL. Args: ctx: The FastMCP context. board_id: The ID of the board. jql: JQL query string to filter issues. fields: Comma-separated fields to return. start_at: Starting index for pagination. limit: Maximum number of results. expand: Optional fields to expand. Returns: JSON string representing the search results including pagination info.

jira_get_sprints_from_board

Get jira sprints from board by state. Args: ctx: The FastMCP context. board_id: The ID of the board. state: Sprint state ('active', 'future', 'closed'). If None, returns all sprints. start_at: Starting index. limit: Maximum results. Returns: JSON string representing a list of sprint objects.

jira_get_sprint_issues

Get jira issues from sprint. Args: ctx: The FastMCP context. sprint_id: The ID of the sprint. fields: Comma-separated fields to return. start_at: Starting index. limit: Maximum results. Returns: JSON string representing the search results including pagination info.

jira_get_link_types

Get all available issue link types. Args: ctx: The FastMCP context. name_filter: Optional substring to filter link types by name. Returns: JSON string representing a list of issue link type objects.

jira_create_issue

Create a new Jira issue with optional Epic link or parent for subtasks. Args: ctx: The FastMCP context. project_key: The JIRA project key. summary: Summary/title of the issue. issue_type: Issue type (e.g., 'Task', 'Bug', 'Story', 'Epic', 'Subtask'). assignee: Assignee's user identifier (string): Email, display name, or account ID (e.g., 'user@example.com', 'John Doe', 'accountid:...'). description: Issue description in Markdown format. components: Comma-separated list of component names. additional_fields: JSON string of additional fields. Returns: JSON string representing the created issue object. Raises: ValueError: If in read-only mode or Jira client is unavailable.

jira_batch_create_issues

Create multiple Jira issues in a batch. Args: ctx: The FastMCP context. issues: JSON array string of issue objects. validate_only: If true, only validates without creating. Returns: JSON string indicating success and listing created issues (or validation result). Raises: ValueError: If in read-only mode, Jira client unavailable, or invalid JSON.

jira_batch_get_changelogs

Get changelogs for multiple Jira issues (Cloud only). Args: ctx: The FastMCP context. issue_ids_or_keys: List of issue IDs or keys. fields: List of fields to filter changelogs by. None for all fields. limit: Maximum changelogs per issue (-1 for all). Returns: JSON string representing a list of issues with their changelogs. Raises: NotImplementedError: If run on Jira Server/Data Center. ValueError: If Jira client is unavailable.

jira_update_issue

Update an existing Jira issue including changing status, adding Epic links, updating fields, etc. Args: ctx: The FastMCP context. issue_key: Jira issue key. fields: JSON string of fields to update. Text fields like 'description' should use Markdown format. additional_fields: Optional JSON string of additional fields. components: Comma-separated list of component names. attachments: Optional JSON array string or comma-separated list of file paths. Returns: JSON string representing the updated issue object and attachment results. Raises: ValueError: If in read-only mode or Jira client unavailable, or invalid input.

jira_delete_issue

Delete an existing Jira issue. Args: ctx: The FastMCP context. issue_key: Jira issue key. Returns: JSON string indicating success. Raises: ValueError: If in read-only mode or Jira client unavailable.

jira_add_comment

Add a comment to a Jira issue. Args: ctx: The FastMCP context. issue_key: Jira issue key. body: Comment text in Markdown. visibility: (Optional) Comment visibility as JSON string. public: (Optional) For JSM issues. True = customer-visible, False = internal/agent-only. Uses ServiceDesk API. Returns: JSON string representing the added comment object. Raises: ValueError: If in read-only mode or Jira client unavailable.

jira_edit_comment

Edit an existing comment on a Jira issue. Args: ctx: The FastMCP context. issue_key: Jira issue key. comment_id: The ID of the comment to edit. body: Updated comment text in Markdown. visibility: (Optional) Comment visibility as JSON string. Returns: JSON string representing the updated comment object. Raises: ValueError: If in read-only mode or Jira client unavailable.

jira_add_worklog

Add a worklog entry to a Jira issue. Args: ctx: The FastMCP context. issue_key: Jira issue key. time_spent: Time spent in Jira format. comment: Optional comment in Markdown. started: Optional start time in ISO format. original_estimate: Optional new original estimate. remaining_estimate: Optional new remaining estimate. Returns: JSON string representing the added worklog object. Raises: ValueError: If in read-only mode or Jira client unavailable.

jira_link_to_epic

Link an existing issue to an epic. Args: ctx: The FastMCP context. issue_key: The key of the issue to link. epic_key: The key of the epic to link to. Returns: JSON string representing the updated issue object. Raises: ValueError: If in read-only mode or Jira client unavailable.

jira_create_issue_link

Create a link between two Jira issues. Args: ctx: The FastMCP context. link_type: The type of link (e.g., 'Blocks'). inward_issue_key: The key of the source issue. outward_issue_key: The key of the target issue. comment: Optional comment text. comment_visibility: Optional JSON string for comment visibility. Returns: JSON string indicating success or failure. Raises: ValueError: If required fields are missing, invalid input, in read-only mode, or Jira client unavailable.

jira_create_remote_issue_link

Create a remote issue link (web link or Confluence link) for a Jira issue. This tool allows you to add web links and Confluence links to Jira issues. The links will appear in the issue's "Links" section and can be clicked to navigate to external resources. Args: ctx: The FastMCP context. issue_key: The key of the issue to add the link to. url: The URL to link to (can be any web page or Confluence page). title: The title/name that will be displayed for the link. summary: Optional description of what the link is for. relationship: Optional relationship description. icon_url: Optional URL to a 16x16 icon for the link. Returns: JSON string indicating success or failure. Raises: ValueError: If required fields are missing, invalid input, in read-only mode, or Jira client unavailable.

jira_remove_issue_link

Remove a link between two Jira issues. Args: ctx: The FastMCP context. link_id: The ID of the link to remove. Returns: JSON string indicating success. Raises: ValueError: If link_id is missing, in read-only mode, or Jira client unavailable.

jira_transition_issue

Transition a Jira issue to a new status. Args: ctx: The FastMCP context. issue_key: Jira issue key. transition_id: ID of the transition. fields: Optional JSON string of fields to update during transition. comment: Optional comment for the transition in Markdown format. Returns: JSON string representing the updated issue object. Raises: ValueError: If required fields missing, invalid input, in read-only mode, or Jira client unavailable.

jira_create_sprint

Create Jira sprint for a board. Args: ctx: The FastMCP context. board_id: Board ID. name: Sprint name. start_date: Start date (ISO format). end_date: End date (ISO format). goal: Optional sprint goal. Returns: JSON string representing the created sprint object. Raises: ValueError: If in read-only mode or Jira client unavailable.

jira_update_sprint

Update jira sprint. Args: ctx: The FastMCP context. sprint_id: The ID of the sprint. name: Optional new name. state: Optional new state (future|active|closed). start_date: Optional new start date. end_date: Optional new end date. goal: Optional new goal. Returns: JSON string representing the updated sprint object or an error message. Raises: ValueError: If in read-only mode or Jira client unavailable.

jira_add_issues_to_sprint

Add issues to a Jira sprint. Args: ctx: The FastMCP context. sprint_id: The ID of the sprint. issue_keys: Comma-separated issue keys. Returns: JSON string with success message. Raises: ValueError: If in read-only mode or Jira client unavailable.

jira_get_project_versions

Get all fix versions for a specific Jira project.

jira_get_project_components

Get all components for a specific Jira project.

jira_get_all_projects

Get all Jira projects accessible to the current user. Args: ctx: The FastMCP context. include_archived: Whether to include archived projects. Returns: JSON string representing a list of project objects accessible to the user. Project keys are always returned in uppercase. If JIRA_PROJECTS_FILTER is configured, only returns projects matching those keys. Raises: ValueError: If the Jira client is not configured or available.

jira_get_service_desk_for_project

Get the Jira Service Desk associated with a project key. Server/Data Center only. Not available on Jira Cloud. Args: ctx: The FastMCP context. project_key: Jira project key. Returns: JSON string with project key and service desk data (or null if not found). Raises: NotImplementedError: If connected to Jira Cloud (Server/DC only).

jira_get_service_desk_queues

Get queues for a Jira Service Desk. Server/Data Center only. Not available on Jira Cloud. Args: ctx: The FastMCP context. service_desk_id: Service desk ID. start_at: Starting index for pagination. limit: Maximum number of queues to return. Returns: JSON string with queue list and pagination metadata. Raises: NotImplementedError: If connected to Jira Cloud (Server/DC only).

jira_get_queue_issues

Get issues from a Jira Service Desk queue. Server/Data Center only. Not available on Jira Cloud. Args: ctx: The FastMCP context. service_desk_id: Service desk ID. queue_id: Queue ID. start_at: Starting index for pagination. limit: Maximum number of issues to return. Returns: JSON string with queue metadata, issues, and pagination metadata. Raises: NotImplementedError: If connected to Jira Cloud (Server/DC only).

jira_create_version

Create a new fix version in a Jira project. Args: ctx: The FastMCP context. project_key: The project key. name: Name of the version. start_date: Start date (optional). release_date: Release date (optional). description: Description (optional). Returns: JSON string of the created version object.

jira_batch_create_versions

Batch create multiple versions in a Jira project. Args: ctx: The FastMCP context. project_key: The project key. versions: JSON array string of version objects. Returns: JSON array of results, each with success flag, version or error.

jira_get_issue_proforma_forms

Get all ProForma forms associated with a Jira issue. Uses the new Jira Forms REST API. Form IDs are returned as UUIDs. Args: ctx: The FastMCP context. issue_key: The issue key to get forms for. Returns: JSON string representing the list of ProForma forms, or an error object if failed.

jira_get_proforma_form_details

Get detailed information about a specific ProForma form. Uses the new Jira Forms REST API. Returns form details including ADF design structure. Args: ctx: The FastMCP context. issue_key: The issue key containing the form. form_id: The form UUID identifier. Returns: JSON string representing the ProForma form details, or an error object if failed.

jira_update_proforma_form_answers

Update form field answers using the Jira Forms REST API. This is the primary method for updating form data. Each answer object must specify the question ID, answer type, and value. **⚠️ KNOWN LIMITATION - DATETIME fields:** The Jira Forms API does NOT properly preserve time components in DATETIME fields. Only the date portion is stored; times are reset to midnight (00:00:00). **Workaround for DATETIME fields:** Use jira_update_issue to directly update the underlying custom fields instead: 1. Get the custom field ID from the form details (question's "jiraField" property) 2. Use jira_update_issue with fields like: {"customfield_XXXXX": "2026-01-09T11:50:00-08:00"} Example: ```python # Instead of updating via form (loses time): # jira_update_proforma_form_answers(issue_key, form_id, [{"questionId": "91", "type": "DATETIME", "value": "..."}]) # Use direct field update (preserves time): jira_update_issue(issue_key, {"customfield_10542": "2026-01-09T11:50:00-08:00"}) ``` **Automatic DateTime Conversion:** For DATE and DATETIME fields, you can provide values as: - ISO 8601 strings (e.g., "2024-12-17T19:00:00Z", "2024-12-17") - Unix timestamps in milliseconds (e.g., 1734465600000) The tool automatically converts ISO 8601 strings to Unix timestamps. Example answers: [ {"questionId": "q1", "type": "TEXT", "value": "Updated description"}, {"questionId": "q2", "type": "SELECT", "value": "Product A"}, {"questionId": "q3", "type": "NUMBER", "value": 42}, {"questionId": "q4", "type": "DATE", "value": "2024-12-17"} ] Common answer types: - TEXT: String values - NUMBER: Numeric values - DATE: Date values (ISO 8601 string or Unix timestamp in ms) - DATETIME: DateTime values - ⚠️ USE WORKAROUND ABOVE - SELECT: Single selection from options - MULTI_SELECT: Multiple selections (value as list) - CHECKBOX: Boolean values Args: ctx: The FastMCP context. issue_key: The issue key containing the form. form_id: The form UUID (get from get_issue_proforma_forms). answers: List of answer objects with questionId, type, and value. Returns: JSON string with operation result.

jira_get_issue_dates

Get date information and status transition history for a Jira issue. Returns dates (created, updated, due date, resolution date) and optionally status change history with time tracking for workflow analysis. Args: ctx: The FastMCP context. issue_key: The Jira issue key. include_status_changes: Whether to include status change history. include_status_summary: Whether to include aggregated time per status. Returns: JSON string with issue dates and optional status tracking data.

jira_get_issue_sla

Calculate SLA metrics for a Jira issue. Computes various time-based metrics including cycle time, lead time, time spent in each status, due date compliance, and more. Working hours can be configured via environment variables: - JIRA_SLA_WORKING_HOURS_ONLY: Enable working hours filtering (true/false) - JIRA_SLA_WORKING_HOURS_START: Start time (e.g., "09:00") - JIRA_SLA_WORKING_HOURS_END: End time (e.g., "17:00") - JIRA_SLA_WORKING_DAYS: Working days (e.g., "1,2,3,4,5" for Mon-Fri) - JIRA_SLA_TIMEZONE: Timezone for calculations (e.g., "America/New_York") Args: ctx: The FastMCP context. issue_key: The Jira issue key. metrics: Comma-separated list of metrics to calculate. working_hours_only: Use working hours only for calculations. include_raw_dates: Include raw date values in response. Returns: JSON string with calculated SLA metrics.

jira_get_issue_development_info

Get development information (PRs, commits, branches) linked to a Jira issue. This retrieves the development panel information that shows linked pull requests, branches, and commits from connected source control systems like Bitbucket, GitHub, or GitLab. Args: ctx: The FastMCP context. issue_key: The Jira issue key. application_type: Optional filter by source control type. data_type: Optional filter by data type (pullrequest, branch, etc.). Returns: JSON string with development information including: - pullRequests: List of linked pull requests with status, author, reviewers - branches: List of linked branches - commits: List of linked commits - repositories: List of repositories involved

jira_get_issues_development_info

Get development information for multiple Jira issues. Batch retrieves development panel information (PRs, commits, branches) for multiple issues at once. Args: ctx: The FastMCP context. issue_keys: List of Jira issue keys. application_type: Optional filter by source control type. data_type: Optional filter by data type. Returns: JSON string with list of development information for each issue.

confluence_search

Search Confluence content using simple terms or CQL. Args: ctx: The FastMCP context. query: Search query - can be simple text or a CQL query string. limit: Maximum number of results (1-50). spaces_filter: Comma-separated list of space keys to filter by. Returns: JSON string representing a list of simplified Confluence page objects.

confluence_get_page

Get content of a specific Confluence page by its ID, or by its title and space key. Args: ctx: The FastMCP context. page_id: Confluence page ID. If provided, 'title' and 'space_key' are ignored. title: The exact title of the page. Must be used with 'space_key'. space_key: The key of the space. Must be used with 'title'. include_metadata: Whether to include page metadata. convert_to_markdown: Convert content to markdown (true) or keep raw HTML (false). Returns: JSON string representing the page content and/or metadata, or an error if not found or parameters are invalid.

confluence_get_page_children

Get child pages and folders of a specific Confluence page. Args: ctx: The FastMCP context. parent_id: The ID of the parent page. expand: Fields to expand. limit: Maximum number of child items. include_content: Whether to include page content. convert_to_markdown: Convert content to markdown if include_content is true. start: Starting index for pagination. include_folders: Whether to include child folders (default: True). Returns: JSON string representing a list of child page and folder objects.

confluence_get_comments

Get comments for a specific Confluence page. Args: ctx: The FastMCP context. page_id: Confluence page ID. Returns: JSON string representing a list of comment objects.

confluence_get_labels

Get labels for Confluence content (pages, blog posts, or attachments). Args: ctx: The FastMCP context. page_id: Confluence content ID (page or attachment). Returns: JSON string representing a list of label objects.

confluence_add_label

Add label to Confluence content (pages, blog posts, or attachments). Useful for: - Categorizing attachments (e.g., 'screenshot', 'diagram', 'legal-doc') - Tracking status (e.g., 'approved', 'needs-review', 'archived') - Filtering content by topic or version Args: ctx: The FastMCP context. page_id: Content ID (page or attachment). name: Label name to add. Returns: JSON string representing the updated list of label objects. Raises: ValueError: If in read-only mode or Confluence client is unavailable.

confluence_create_page

Create a new Confluence page. Args: ctx: The FastMCP context. space_key: The key of the space. title: The title of the page. content: The content of the page (format depends on content_format). parent_id: Optional parent page ID. content_format: The format of the content ('markdown', 'wiki', or 'storage'). enable_heading_anchors: Whether to enable heading anchors (markdown only). emoji: Optional page title emoji (icon shown in navigation). Returns: JSON string representing the created page object. Raises: ValueError: If in read-only mode, Confluence client is unavailable, or invalid content_format.

confluence_update_page

Update an existing Confluence page. Args: ctx: The FastMCP context. page_id: The ID of the page to update. title: The new title of the page. content: The new content of the page (format depends on content_format). is_minor_edit: Whether this is a minor edit. version_comment: Optional comment for this version. parent_id: Optional new parent page ID. content_format: The format of the content ('markdown', 'wiki', or 'storage'). enable_heading_anchors: Whether to enable heading anchors (markdown only). emoji: Optional page title emoji (icon shown in navigation). Returns: JSON string representing the updated page object. Raises: ValueError: If Confluence client is not configured, available, or invalid content_format.

confluence_delete_page

Delete an existing Confluence page. Args: ctx: The FastMCP context. page_id: The ID of the page to delete. Returns: JSON string indicating success or failure. Raises: ValueError: If Confluence client is not configured or available.

confluence_move_page

Move a Confluence page to a new parent or space. Args: ctx: The FastMCP context. page_id: The ID of the page to move. target_parent_id: Target parent page ID. target_space_key: Target space key for cross-space moves. position: Position relative to target ('append', 'above', or 'below'). Returns: JSON string representing the moved page object. Raises: ValueError: If neither target_parent_id nor target_space_key is provided, or if Confluence client is not configured.

confluence_add_comment

Add a comment to a Confluence page. Args: ctx: The FastMCP context. page_id: The ID of the page to add a comment to. body: The comment content in Markdown format. Returns: JSON string representing the created comment. Raises: ValueError: If in read-only mode or Confluence client is unavailable.

confluence_reply_to_comment

Reply to an existing comment thread on a Confluence page. Args: ctx: The FastMCP context. comment_id: The ID of the parent comment to reply to. body: The reply content in Markdown format. Returns: JSON string representing the created reply comment. Raises: ValueError: If in read-only mode or Confluence client is unavailable.

confluence_search_user

Search Confluence users using CQL (Cloud) or group member API (Server/DC). Args: ctx: The FastMCP context. query: Search query - a CQL query string for user search. limit: Maximum number of results (1-50). group_name: Group to search within on Server/DC. Returns: JSON string representing a list of simplified Confluence user search result objects.

confluence_get_page_history

Get a historical version of a specific Confluence page. Args: ctx: The FastMCP context. page_id: Confluence page ID. version: The version number to retrieve. convert_to_markdown: Convert content to markdown (true) or keep raw HTML (false). Returns: JSON string representing the page content at the specified version.

confluence_get_page_diff

Get a unified diff between two versions of a Confluence page. Args: ctx: The FastMCP context. page_id: Confluence page ID. from_version: Source version number. to_version: Target version number. Returns: JSON string with page info and unified diff.

confluence_get_page_views

Get view statistics for a Confluence page. Note: This tool is only available for Confluence Cloud. Server/Data Center instances do not support the Analytics API. Args: ctx: The FastMCP context. page_id: The Confluence page ID. include_title: Whether to include the page title in the response. Returns: JSON string with page view statistics including total views and last viewed date.

confluence_upload_attachment

Upload an attachment to Confluence content (page or blog post). If the attachment already exists (same filename), a new version is created. This is useful for: - Attaching documents, images, or files to a page - Updating existing attachments with new versions - Adding supporting materials to documentation Args: ctx: The FastMCP context. content_id: The ID of the content to attach to. file_path: Path to the file to upload. comment: Optional comment for the attachment. minor_edit: Whether this is a minor edit (no notifications). Returns: JSON string with upload confirmation and attachment metadata.

confluence_upload_attachments

Upload multiple attachments to Confluence content in a single operation. More efficient than calling upload_attachment multiple times. If files with the same names exist, new versions are created automatically. Useful for: - Bulk uploading documentation assets (diagrams, screenshots, etc.) - Adding multiple related files to a page at once - Batch updating existing attachments with new versions Args: ctx: The FastMCP context. content_id: The ID of the content to attach to. file_paths: List of file paths to upload. comment: Optional comment for the attachments. minor_edit: Whether this is a minor edit. Returns: JSON string with upload results for each file.

confluence_get_attachments

List all attachments for a Confluence content item (page or blog post). Returns metadata about attachments including: - Attachment ID, title, and file type - File size and download URL - Creation/modification dates - Version information **Important**: Confluence API returns 'application/octet-stream' as the media type for most binary files (PNG, JPG, PDF) instead of specific types like 'image/png'. For filtering by file type, using the 'filename' parameter is more reliable (e.g., filename='*.png' pattern matching if supported, or exact filename). Useful for: - Discovering what files are attached to a page - Getting attachment IDs for download operations - Checking if a specific file exists - Listing images/documents for processing Args: ctx: The FastMCP context. content_id: The ID of the content. start: Starting index for pagination. limit: Maximum number of results (1-100). filename: Optional exact filename filter. media_type: Optional MIME type filter (note: most binaries return 'application/octet-stream'). Returns: JSON string with list of attachments and metadata.

confluence_download_attachment

Download an attachment from Confluence as an embedded resource. Returns the attachment content as a base64-encoded embedded resource so that it is available over the MCP protocol without requiring filesystem access on the server. Files larger than 50 MB are not downloaded inline; a descriptive error message is returned instead. Args: ctx: The FastMCP context. attachment_id: The ID of the attachment. Returns: An EmbeddedResource with base64-encoded content, or a TextContent with an error or size-exceeded message.

confluence_download_content_attachments

Download all attachments for a Confluence content item as embedded resources. Returns attachment contents as base64-encoded embedded resources so that they are available over the MCP protocol without requiring filesystem access on the server. Files larger than 50 MB are skipped with an error entry in the summary. Args: ctx: The FastMCP context. content_id: The ID of the content. Returns: A list with a text summary followed by one EmbeddedResource per successfully downloaded attachment.

confluence_delete_attachment

Permanently delete an attachment from Confluence. **Warning**: This action cannot be undone! The attachment and ALL its versions will be permanently deleted. Use this tool to: - Remove outdated or incorrect attachments - Clean up duplicate files - Delete sensitive information that was accidentally uploaded Best practices: - Verify the attachment ID before deletion using get_attachments - Consider downloading the attachment first as a backup - Check with content owners before deleting shared attachments Args: ctx: The FastMCP context. attachment_id: The ID of the attachment to delete. Returns: JSON string confirming deletion with attachment ID.

confluence_get_page_images

Get all images attached to a Confluence page as inline image content. Filters attachments to images only (PNG, JPEG, GIF, WebP, SVG, BMP) and returns them as base64-encoded ImageContent that clients can render directly. Non-image attachments are excluded. Files with ambiguous MIME types (application/octet-stream) are detected by filename extension as a fallback. Images larger than 50 MB are skipped with an error entry in the summary. Args: ctx: The FastMCP context. content_id: The ID of the content. Returns: A list with a text summary followed by one ImageContent per successfully downloaded image.

FAQ

Frequently asked questions about Atlassian

What latency should I expect for different types of operations?+

Development information operations show the highest latency, with jira_get_issue_development_info taking 19,889ms and jira_get_issues_development_info requiring 7,665ms. Most read operations complete in 500-1500ms range. Write operations like jira_create_issue and confluence_create_page typically take 1500-3000ms. Basic metadata operations like jira_get_issue_watchers and confluence_get_labels execute in under 400ms.

Which operations require the longest processing time?+

Three operations consistently exceeded 3 seconds: jira_get_issue_development_info at 19,889ms, jira_get_issues_development_info at 7,665ms, and jira_link_to_epic at 3,038ms. The development information endpoints particularly show extreme latency compared to standard JIRA operations. For time-sensitive applications, these specific operations may require timeout adjustments or asynchronous handling patterns.

What authentication scopes are required for write operations?+

Our testing used jira:read, jira:write, confluence:read, and confluence:write scopes. All 60 executed operations completed successfully with this scope configuration. Write operations like jira_create_issue, confluence_create_page, jira_update_issue, and confluence_update_page all functioned with the jira:write and confluence:write scopes respectively. No scope-related authentication failures occurred during testing.

How does batch processing perform compared to single operations?+

Batch operations show mixed performance characteristics. jira_batch_create_issues took 2,928ms compared to single jira_create_issue at 2,303ms, indicating overhead for batch processing. However, jira_batch_create_versions completed in 547ms versus single jira_create_version at 564ms. confluence_upload_attachments completed in just 3ms, showing significant efficiency gains over individual uploads for certain operations.

What happens when tools fail to execute?+

During our testing, all 60 executed tools completed successfully with no failures recorded. However, 12 tools were skipped due to write-dangerous classifications, meaning they perform destructive operations that could affect production data. These non-executed tools were not executed due to policy, dependency, or test-environment limitations rather than technical failures.

Which operations provide the fastest response times?+

Six operations completed in under 400ms: jira_get_issue_watchers (349ms), confluence_get_labels (350ms), confluence_get_attachments (294ms), confluence_download_content_attachments (311ms), confluence_get_page_images (303ms), and jira_get_sprint_issues (382ms). confluence_upload_attachments achieved 3ms, likely due to sandbox optimization. These represent the most responsive operations for real-time applications.

How do Confluence operations compare to JIRA in terms of performance?+

Confluence operations generally show more consistent latency patterns than JIRA. Most Confluence tools completed between 300-1400ms, while JIRA operations ranged from 349ms to 19,889ms. Confluence write operations like confluence_create_page (1,737ms) and confluence_update_page (2,213ms) performed similarly to JIRA write operations. However, JIRA development information endpoints introduced significant outliers in the performance profile.

Related

Explore more

Testing History

1 runlive_runtimeApr 7, 2026
protocol10/10reliability10/10

Community

Community Reviews