MCP Atlassian
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JIRA_URL | No | The URL of your Jira instance. For Cloud: https://your-company.atlassian.net | |
| JIRA_PASSWORD | No | Your Jira password (Server/Data Center). | |
| JIRA_USERNAME | No | Your Jira username (email for Cloud). | |
| CONFLUENCE_URL | No | The URL of your Confluence instance. For Cloud: https://your-company.atlassian.net/wiki | |
| JIRA_API_TOKEN | No | Atlassian API token for Jira (Cloud). | |
| CONFLUENCE_PASSWORD | No | Your Confluence password (Server/Data Center). | |
| CONFLUENCE_USERNAME | No | Your Confluence username (email for Cloud). | |
| JIRA_PERSONAL_TOKEN | No | Personal Access Token for Jira (Server/Data Center). | |
| CONFLUENCE_API_TOKEN | No | Atlassian API token for Confluence (Cloud). | |
| CONFLUENCE_PERSONAL_TOKEN | No | Personal Access Token for Confluence (Server/Data Center). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jira_get_user_profileA | Retrieve profile information for a specific Jira user. |
| 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 |
| jira_get_issue_watchersA | Get the list of watchers for a Jira issue. |
| jira_add_watcherA | Add a user as a watcher to a Jira issue. |
| jira_remove_watcherA | Remove a user from watching a Jira issue. |
| jira_get_issueA | Get details of a specific Jira issue. Includes Epic links and relationship information. Use the
|
| jira_searchA | Search Jira issues using JQL (Jira Query Language). |
| jira_search_fieldsB | Search Jira fields by keyword with fuzzy match. |
| 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. |
| jira_get_project_issuesB | Get all issues for a specific Jira project. |
| jira_get_transitionsA | Get available status transitions for a Jira issue. |
| jira_get_worklogA | Get worklog entries for a Jira issue. |
| jira_download_attachmentsA | Download attachments from a Jira issue. Returns attachment contents as base64-encoded content so that they are
available over the MCP protocol without requiring filesystem access on
the server. Image attachments are returned as |
| 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. |
| jira_get_agile_boardsA | Get jira agile boards by name, project key, or type. |
| jira_get_board_issuesA | Get all issues linked to a specific board filtered by JQL. |
| jira_get_sprints_from_boardB | Get jira sprints from board by state. |
| jira_get_sprint_issuesB | Get jira issues from sprint. |
| jira_get_link_typesA | Get all available issue link types. |
| jira_create_issueA | Create a new Jira issue with optional Epic link or parent for subtasks. |
| jira_batch_create_issuesB | Create multiple Jira issues in a batch. |
| jira_batch_get_changelogsA | Get changelogs for multiple Jira issues (Cloud only). |
| jira_update_issueA | Update an issue and optionally transition, comment, and log work. |
| 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. On Jira Server/DC the following identifier forms are all accepted: login name, email address, display name, or JIRAUSER key. The resolution order is: key lookup → email search (with email-as-username fallback) → text search → assignable-user search scoped to the issue. |
| jira_delete_issueB | Delete an existing Jira issue. |
| 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. |
| jira_add_commentB | Add a comment to a Jira issue. |
| jira_edit_commentB | Edit an existing comment on a Jira issue. |
| jira_add_worklogA | Add a worklog entry to a Jira issue. |
| jira_link_to_epicB | Link an existing issue to an epic. |
| jira_create_issue_linkB | Create a link between two Jira issues. |
| 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. |
| jira_remove_issue_linkB | Remove a link between two Jira issues. |
| jira_transition_issueC | Transition a Jira issue to a new status. |
| jira_create_sprintB | Create Jira sprint for a board. |
| jira_update_sprintB | Update jira sprint. |
| jira_add_issues_to_sprintC | Add issues to a Jira sprint. |
| jira_move_issues_to_backlogA | Move issues to the backlog, removing them from any sprint. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| jira_get_service_desk_queuesA | Get queues for a Jira Service Desk. Server/Data Center only. Not available on Jira Cloud. |
| jira_get_queue_issuesA | Get issues from a Jira Service Desk queue. Server/Data Center only. Not available on Jira Cloud. |
| jira_get_request_typesA | Get request types for a Jira Service Management service desk. |
| jira_get_request_type_fieldsA | Get field definitions for a Jira Service Management request type. |
| jira_create_customer_requestB | Create a Jira Service Management customer request. |
| jira_create_versionB | Create a new fix version in a Jira project. |
| jira_batch_create_versionsA | Batch create multiple versions in a Jira project. |
| 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. |
| 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. |
| 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. |
| 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:
|
| 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. |
| 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:
|
| 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. |
| 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. |
| jira_get_project_epic_hierarchyA | Group a project's epics under their cross-project parent issues. Fetches all epics in the project, detects their parent issue via the parent field or inward issue links, then groups them by parent. Epics with no detected parent appear under "Unlinked". Useful for understanding how a project's epics roll up to initiatives in another project. |
| jira_get_cross_project_dependenciesA | Find all cross-project issue links for a project. Scans issues in the project, extracts every issue link whose target belongs to a different project, and groups them by target project and link type. Useful for dependency analysis across multi-project Jira setups. |
| confluence_searchA | Search Confluence content using simple terms or CQL. |
| confluence_get_pageA | Get content of a specific Confluence page by its ID, or by its title and space key. |
| confluence_get_page_childrenA | Get child pages and folders of a specific Confluence page. |
| 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. |
| confluence_get_commentsA | Get comments for a specific Confluence page. |
| confluence_get_labelsA | Get labels for Confluence content (pages, blog posts, or attachments). |
| confluence_add_labelA | Add label to Confluence content (pages, blog posts, or attachments). Useful for:
|
| confluence_create_pageC | Create a new Confluence page. |
| confluence_update_pageC | Update an existing Confluence page. |
| 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. |
| confluence_delete_pageA | Delete an existing Confluence page. |
| confluence_move_pageB | Move a Confluence page to a new parent or space. |
| confluence_add_commentB | Add a comment to a Confluence page. |
| confluence_reply_to_commentA | Reply to an existing comment thread on a Confluence page. |
| confluence_get_inline_commentsA | Get all inline comments for a Confluence page. |
| confluence_add_inline_commentA | Add an inline comment anchored to a text selection on a page. |
| confluence_search_userA | Search Confluence users using CQL (Cloud) or group member API (Server/DC). |
| confluence_get_page_historyA | Get a historical version of a specific Confluence page. |
| confluence_get_page_diffA | Get a unified diff between two versions of a Confluence page. |
| 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. |
| 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:
|
| 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:
|
| 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:
|
| 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. |
| 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. |
| 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:
|
| 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. |
| confluence_list_page_templatesA | List Confluence page content templates. This operation is only available for Confluence Cloud. Returns template metadata (ID, name, description, type) without the full body. Use confluence_get_page_template to fetch a template's body. |
| confluence_get_page_templateA | Get a Cloud page template by ID, including its storage-format body. |
| confluence_create_page_from_templateA | Create a new Cloud page pre-populated with a template's body. This operation is only available for Confluence Cloud. Fetches the named template and creates a page with its storage-format content. The page can be edited afterwards via confluence_update_page. |
| 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. |
| 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. |
| 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). |
| 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/hieptran87/atlassian-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server