atlassian-browser-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JIRA_URL | Yes | Jira base URL | |
| CONFLUENCE_URL | Yes | Confluence base URL |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| atlassian_loginA | Report how to authenticate. Login is handled OUT-OF-BAND by the CLI. This tool intentionally does NOT drive Playwright in-process: a sync browser login inside the async-dispatched MCP server deadlocks the event loop ("Playwright Sync API inside the asyncio loop") and was a cause of the server hanging. Instead, run the CLI in a terminal where a browser can open: Once that completes, the saved cookie jar is reused by the server's tools automatically — no browser is ever opened from within the server. |
| jira_get_user_profileA | 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_search_assignable_usersA | Search Jira users assignable in a given project or issue. Use this when you have a display name / partial name / email fragment
and need a concrete identifier ( Returns the full result set so the caller can disambiguate when several
users match — Exactly one of Args: ctx: The FastMCP context. query: Display name / username / email substring. project_key: Project key (e.g. 'DT') to scope the search. issue_key: Issue key (e.g. 'DT-779') to scope the search. limit: Maximum number of users to return. Returns: JSON string: {"success": true, "count": N, "users": [...]} on success, or an error object on failure. |
| jira_get_issue_watchersA | 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_watcherA | 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_watcherA | 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_issueA | Get details of a specific Jira issue. Includes Epic links and relationship information. Use the
Args: ctx: The FastMCP context. issue_key: Jira issue key. fields: Comma-separated fields to return. expand: Optional fields to expand. comment_limit: Maximum number of comments. properties: Issue properties to return. update_history: Whether to update issue view history. include: Comma-separated enrichment sections to inline. Returns: JSON string representing the Jira issue object. Raises: ValueError: If the Jira client is not configured. |
| jira_searchA | 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_fieldsA | 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_optionsA | 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_issuesA | 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_transitionsA | 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_worklogA | 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_attachmentsA | 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_imagesA | 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_boardsA | 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_issuesA | 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_boardA | 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_issuesA | 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_typesA | 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_issueA | 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_issuesA | 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_changelogsA | 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_issueB | 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_assign_issueA | Assign a Jira issue to a user using the dedicated assignment endpoint. This is more reliable than setting assignee via update_issue, which is silently ignored by some Jira configurations. Uses PUT /issue/{key}/assignee. Args: ctx: The FastMCP context. issue_key: Jira issue key. assignee: User identifier (email, display name, or account ID), or a JSON object string from jira_search_assignable_users. Pass None or empty string to unassign. Returns: JSON string representing the updated issue object. Raises: ValueError: If in read-only mode, Jira client unavailable, or user not found. |
| jira_delete_issueA | 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_move_issueA | Move a Jira issue to a different project (Jira Cloud only). Uses Jira Cloud's bulk move API to perform a cross-project move. The issue keeps its current issue type and may be assigned a new key in the target project (e.g., OLDPROJ-123 becomes NEWPROJ-456). The move is processed asynchronously on Jira's side; this tool polls until confirmed or times out after 30 seconds. Args: ctx: The FastMCP context. issue_key: Jira issue key of the issue to move. target_project_key: Key of the target project. Returns: JSON string representing the moved issue with its new key and project. Raises: ValueError: If in read-only mode, Jira client unavailable, or the move fails. NotImplementedError: If not running on Jira Cloud. |
| jira_add_commentA | 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_commentA | 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_worklogB | 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_epicB | 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_linkA | 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_linkA | 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_linkA | 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_issueA | 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_sprintA | 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_sprintA | 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_sprintA | 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_move_issues_to_backlogA | Move issues to the backlog, removing them from any sprint. Args: ctx: The FastMCP context. 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_issue_typesA | Get available issue types for a Jira project. Returns the list of issue types (Bug, Task, Story, Epic, etc.) that can be created in the specified project. Use the returned issue type IDs with get_create_fields to discover what fields each type requires. Args: ctx: The FastMCP context. project_key: The project key. Returns: JSON string with list of issue types (id, name, description, subtask). |
| jira_get_create_fieldsA | Get fields available for creating an issue of a specific type. Returns all fields (required and optional) for the given project and issue type, including field names, IDs, whether they're required, and their schema. Use jira_get_field_options when a returned field needs its allowed values. Args: ctx: The FastMCP context. project_key: The project key. issue_type_id: The issue type ID. Returns: JSON string with list of field metadata (field_id, name, required, schema). |
| jira_get_project_versionsA | Get all fix versions for a specific Jira project. |
| jira_get_project_componentsA | Get all components for a specific Jira project. |
| jira_get_all_projectsA | 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_search_projectsA | Search for Jira projects by name or key prefix. Uses the projects picker endpoint to return a ranked list of matching projects without fetching every visible project on the instance. Args: ctx: The FastMCP context. query: Name or key prefix to search for. max_results: Maximum number of results to return. current_project_ids: Comma-separated project IDs to exclude. Returns: JSON string representing a list of matching project objects. Project keys are always returned in uppercase. If JIRA_PROJECTS_FILTER is configured, only returns projects matching those keys. |
| jira_get_project_fieldsA | Get the fields available on issues of a project (the create schema), deduplicated across the project's issue types — i.e. which fields tickets in this project have, regardless of whether they are filled. Args: ctx: The FastMCP context. project_key: The project key. Returns: JSON string with a list of fields: each {field_id, name, required, schema_type, custom, issue_types}. Empty list if none / on error. Raises: ValueError: If the Jira client is not configured or available. |
| jira_get_service_desk_for_projectA | 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_queuesA | 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_issuesA | 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_versionB | 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_versionsB | 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_update_versionA | Update an existing fix version in a Jira project. Only fields explicitly provided are modified; other attributes of the version are left untouched. Useful for archiving/unarchiving versions, renaming, or shifting release dates without recreating them. Args: ctx: The FastMCP context. version_id: Numeric ID of the version to update. name: New name (optional). description: New description (optional). start_date: New start date YYYY-MM-DD (optional). release_date: New release date YYYY-MM-DD (optional). archived: Archived flag (optional). released: Released flag (optional). Returns: JSON string of the updated version object. |
| jira_get_issue_proforma_formsA | 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_detailsA | 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_answersA | 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:
Example: Automatic DateTime Conversion: For DATE and DATETIME fields, you can provide values as:
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:
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_datesA | 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_slaA | 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:
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_infoA | 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_infoA | 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_searchA | 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_pageA | 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, full page URL, or tiny link. 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_childrenA | 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_space_page_treeA | Get page hierarchy for a Confluence space as a flat list. Returns pages with parent_id and depth attributes for token-efficient processing. Filter by depth to focus on relevant sections, or find pages by title. Much more efficient than rendering full ASCII trees. Use this to understand space organization before creating/moving pages. Args: ctx: The FastMCP context. space_key: Space key identifier. limit: Maximum pages to fetch (start with 100 for faster results). Returns: JSON with space_key, total_pages, and pages array containing {id, title, parent_id, position, depth} for each page. Root pages have parent_id: null and depth: 0. |
| confluence_get_commentsA | 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_labelsA | 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_labelA | Add label to Confluence content (pages, blog posts, or attachments). Useful for:
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_pageA | 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). Mutually exclusive with content_file; exactly one must be supplied. content_file: Filesystem path to read the page body from (UTF-8). Useful for bodies too large to pass as an inline tool argument. parent_id: Optional parent page ID. content_format: The format of the content ('markdown', 'wiki', 'storage', or 'xhtml'). enable_heading_anchors: Whether to enable heading anchors (markdown only). include_content: Whether to include page content in the response. emoji: Optional page title emoji (icon shown in navigation). page_width: Optional page layout width ('full-width' or 'default'). table_layout: Optional table width preset ('full-width', 'wide', 'default'). 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_pageA | 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). Mutually exclusive with content_file; exactly one must be supplied. content_file: Filesystem path to read the new page body from (UTF-8). Useful for bodies too large to pass as an inline tool argument. 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', 'storage', or 'xhtml'). enable_heading_anchors: Whether to enable heading anchors (markdown only). include_content: Whether to include page content in the response. emoji: Optional page title emoji (icon shown in navigation). page_width: Optional page layout width ('full-width' or 'default'). table_layout: Optional table width preset ('full-width', 'wide', 'default'). Returns: JSON string representing the updated page object. Raises: ValueError: If Confluence client is not configured, available, or invalid content_format. |
| confluence_update_page_sectionA | Update a single section of a Confluence page without affecting the rest. Replaces only the content beneath a named heading, leaving all other sections, macros, layouts, and Confluence-specific elements completely intact. This avoids the data loss that occurs when a full page is downloaded as Markdown, edited, and re-uploaded. Args: ctx: The FastMCP context. page_id: The ID of the page to update. heading_text: Exact heading text identifying the section to replace. new_content: New body content for the section (heading not included). content_format: Format of new_content ('markdown' or 'storage'). is_minor_edit: Whether to flag this as a minor edit. version_comment: Optional version comment. Returns: JSON string representing the updated page metadata. Raises: ValueError: If Confluence client is not configured, heading is not found, or content_format is invalid. |
| confluence_delete_pageB | 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_pageA | 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_commentA | 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_commentA | 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_get_inline_commentsA | Get all inline comments for a Confluence page. Args: ctx: The FastMCP context. page_id: The ID of the page to get inline comments from. Returns: JSON string with a list of inline comments. Raises: ValueError: If Confluence client is unavailable. |
| confluence_add_inline_commentA | Add an inline comment anchored to a text selection on a page. Args: ctx: The FastMCP context. page_id: The ID of the page to add the inline comment to. body: The comment content in Markdown format. text_selection: The exact text on the page to anchor the comment to. text_selection_match_count: Total occurrences of the selected text on the page. text_selection_match_index: Zero-based index of which occurrence to anchor to. Returns: JSON string representing the created inline comment. Raises: ValueError: If in read-only mode or Confluence client is unavailable. |
| confluence_search_userA | 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_historyA | 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_diffA | 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_viewsA | 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_attachmentA | Upload an attachment to Confluence content (page or blog post). Provide the file either as a server-readable path ('file_path') or as base64-encoded content ('content_base64' together with 'filename'). The base64 form is intended for remote or containerized servers that cannot read host file paths. Exactly one of the two must be supplied. If the attachment already exists (same filename), a new version is created. This is useful for:
Args: ctx: The FastMCP context. content_id: The ID of the content to attach to. file_path: Path to the file to upload (server-readable). content_base64: Base64-encoded file content (filesystem-free upload). filename: Attachment filename, required with content_base64. 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_attachmentsA | 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:
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_attachmentsA | List all attachments for a Confluence content item (page or blog post). Returns metadata about attachments including:
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:
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_attachmentA | 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_attachmentsA | 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_attachmentA | 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:
Best practices:
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_imagesA | 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. |
| confluence_get_page_restrictionsA | Get view and edit restrictions for a Confluence page. Returns the current restriction lists for the read (view) and update (edit) operations. An empty list means the page is unrestricted for that operation. Args: ctx: The FastMCP context. page_id: The ID of the page. Returns:
JSON string with Raises: ValueError: If Confluence client is not configured or available. |
| confluence_set_page_restrictionsA | Set view and edit restrictions on a Confluence page. Replaces all existing restrictions with the provided lists. Omitting all parameters (or passing empty lists) removes all restrictions. Args: ctx: The FastMCP context. page_id: The ID of the page to restrict. read_users: Account IDs / usernames allowed to view the page. read_groups: Group names allowed to view the page. edit_users: Account IDs / usernames allowed to edit the page. edit_groups: Group names allowed to edit the page. Returns: JSON string with the updated restriction lists. Raises: ValueError: If Confluence client is not configured or available. |
| confluence_copy_pageA | Copy a Confluence page to a new location. On Confluence Cloud the native copy endpoint is used. On Server/Data Center the page body is fetched and a new page is created manually (attachments are not copied in the Server/DC path). Args: ctx: The FastMCP context. source_page_id: The ID of the page to copy. destination_space_key: Space key for the new page. new_title: Title for the new copied page. destination_parent_id: Optional parent page ID in the destination space. copy_attachments: Whether to copy attachments (Cloud only). Returns: JSON string representing the new page. Raises: ValueError: If Confluence client is not configured or available. |
| confluence_check_content_permissionsA | Check whether a user or group can perform an operation on specific content. Wraps POST /wiki/rest/api/content/{id}/permission/check. Note: This tool is only available for Confluence Cloud. Server/Data Center instances use different permission APIs. Returns a JSON object with a 'hasPermission' boolean indicating whether the subject has the requested permission on the content. |
| confluence_get_space_permissionsA | List all permission assignments for a Confluence space. Wraps GET /wiki/api/v2/spaces/{id}/permissions. Note: This tool is only available for Confluence Cloud. Server/Data Center instances use different permission APIs. Returns a JSON object with a 'results' list of permission assignment objects. Each entry contains the principal (user or group), the operation permitted, and the target. Use this to audit who has access to a space. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/GeiserX/atlassian-browser-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server