Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JIRA_URLYesJira base URL
CONFLUENCE_URLYesConfluence base URL

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
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

NameDescription
atlassian_auth_statusA

Report whether the saved Jira and Confluence browser sessions exist and work.

Use it before a batch of Atlassian calls, or after a "Not authenticated" error, to learn which service needs a sign-in and the exact command for the user. It never opens a browser, never reads the Keychain and changes nothing in Jira or Confluence. For each service it returns the jar's age, cookie counts, the first cookie expiry, the live-check result and a one-line next step.

atlassian_loginA

Return the terminal command that signs the user in to Jira or Confluence.

(Async on purpose: upstream wraps every tool in an error handler that awaits it, so a plain function fails with "object can't be awaited".)

Sign-in is never done from inside the server (a browser login there used to hang it). Call this after a "Not authenticated" error and show the user the command; they run it in a terminal where a browser can open, then you retry. The server reuses the saved session automatically.

jira_get_user_profileB

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 (name / key for Server/DC, accountId for Cloud) to feed into assignee, reporter, watcher, etc.

Returns the full result set so the caller can disambiguate when several users match — get_user_profile only resolves one identifier and is not designed for human-name search.

Exactly one of project_key or issue_key must be provided — the underlying API (/user/assignable/search) requires a project or issue context and works without the global "Browse Users" permission that bot accounts in locked-down DC instances often lack.

jira_get_issue_watchersC

Get the list of watchers for a Jira issue.

jira_add_watcherC

Add a user as a watcher to a Jira issue.

jira_remove_watcherC

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 include parameter to inline enrichments (remote_links, transitions, watchers, changelog, comments, worklogs) so that separate tool calls are not needed.

jira_searchC

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_issuesC

Get all issues for a specific Jira project.

jira_get_transitionsA

Get available status transitions for a Jira issue.

jira_get_worklogC

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 EmbeddedResource blobs; all other attachments (documents, archives, etc.) are returned as TextContent carrying a base64 payload, since many MCP clients only forward EmbeddedResource blobs for recognized image MIME types and otherwise drop the attachment (#1419).

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_boardsB

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

jira_get_board_issuesB

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

jira_get_sprints_from_boardC

Get jira sprints from board by state.

jira_get_sprint_issuesC

Get jira issues from sprint.

jira_get_link_typesB

Get all available issue link types.

jira_create_issueB

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

jira_batch_create_issuesC

Create multiple Jira issues in a batch.

jira_batch_get_changelogsB

Get changelogs for multiple Jira issues (Cloud only).

jira_update_issueC

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

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.

jira_delete_issueC

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_commentC

Add a comment to a Jira issue.

jira_edit_commentC

Edit an existing comment on a Jira issue.

jira_add_worklogB

Add a worklog entry to a Jira issue.

jira_link_to_epicC

Link an existing issue to an epic.

jira_create_issue_linkC

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_linkC

Remove a link between two Jira issues.

jira_transition_issueC

Transition a Jira issue to a new status.

jira_create_sprintC

Create Jira sprint for a board.

jira_update_sprintC

Update jira sprint.

jira_add_issues_to_sprintC

Add issues to a Jira sprint.

jira_move_issues_to_backlogB

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_versionsB

Get all fix versions for a specific Jira project.

jira_get_project_componentsB

Get all components for a specific Jira project.

jira_get_all_projectsB

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_typesC

Get request types for a Jira Service Management service desk.

jira_get_request_type_fieldsC

Get field definitions for a Jira Service Management request type.

jira_create_customer_requestC

Create a Jira Service Management customer request.

jira_create_versionC

Create a new fix version in a Jira project.

jira_batch_create_versionsC

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:

  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:

# 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

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_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")

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_searchC

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_childrenB

Get child pages and folders of a specific Confluence page.

confluence_get_space_page_treeB

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_commentsC

Get comments for a specific Confluence page.

confluence_get_labelsB

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:

  • Categorizing attachments (e.g., 'screenshot', 'diagram', 'legal-doc')

  • Tracking status (e.g., 'approved', 'needs-review', 'archived')

  • Filtering content by topic or version

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_pageC

Delete an existing Confluence page.

confluence_move_pageB

Move a Confluence page to a new parent or space.

confluence_add_commentC

Add a comment to a Confluence page.

confluence_reply_to_commentB

Reply to an existing comment thread on a Confluence page.

confluence_get_inline_commentsB

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_historyB

Get a historical version of a specific Confluence page.

confluence_get_page_diffB

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:

  • Attaching documents, images, or files to a page

  • Updating existing attachments with new versions

  • Adding supporting materials to documentation

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:

  • Bulk uploading documentation assets (diagrams, screenshots, etc.)

  • Adding multiple related files to a page at once

  • Batch updating existing attachments with new versions

confluence_get_attachmentsA

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

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:

  • 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

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3/5.0

Scored across 100 tools

Disambiguation3/5

Most tools target a distinct resource+action, but several clusters blur together: jira_get_issue (with its `include` param) overlaps with jira_get_issue_dates, jira_get_issue_sla, and jira_get_issue_development_info; four field-discovery tools (jira_search_fields, jira_get_field_options, jira_get_create_fields, jira_get_project_fields) require careful reading to choose correctly. Attachment/image tools across Jira and Confluence (jira_download_attachments vs jira_get_issue_images, confluence_download_attachment vs confluence_download_content_attachments vs confluence_get_page_images) are distinguishable only after reading long descriptions. Descriptions do help resolve most cases, so it lands in the middle.

Naming Consistency5/5

Nearly every tool follows a strict service-prefixed verb_noun pattern: jira_* , confluence_*, atlassian_* with actions like get_, create_, update_, delete_, search_, add_, remove_. Exceptions like atlassian_auth_status and atlassian_login still fit the same convention. The prefixes also make the service boundary immediately legible.

Tool Count1/5

100 tools is an extreme surface for a browser-session-based Jira/Confluence wrapper, far past the 50+ threshold. Many are niche (Service Desk Server/DC-only tools, ProForma form tools, SLA computation, cross-project dependency analysis, inline comments) that most agents will never need, diluting selection accuracy. A well-scoped server would consolidate these into parameterized operations.

Completeness4/5

Coverage of Jira and Confluence is genuinely broad: issues, sprints, boards, versions, components, links, worklogs, watchers, comments, attachments, templates, restrictions, and page history/diffs are all represented. Minor gaps remain, e.g. no delete-comment tool for Jira or Confluence and no sprint deletion, but agents can work around these with update/transition tools.

Maintenance

ActivityMaintained
ResponsivenessLimited data