Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ATLASSIAN_URLYesAtlassian site URL, e.g. https://yoursite.atlassian.net
ATLASSIAN_EMAILYesAtlassian account email
ATLASSIAN_TOKENYesAPI token
ATLASSIAN_CLOUD_IDNoCloud ID, auto-discovered if omitted

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
}

Tools

Functions exposed to the LLM to take actions

NameDescription
jcm_getIssueA

Fetch a Jira issue by key. Returns lean fields: key, summary, description (markdown), status, type, parent ({key, summary, type} or null), priority, assignee, reporter ({displayName, accountId} or null), labels, updated (ISO), updatedJql (updated floored to the minute in your Jira timezone, for JQL updated > "..." polling; at-least-once, dedupe; null if unavailable), comments (id, author, authorAccountId, body, created, updated), attachments (id, filename, mimeType, size, content URL). Attachment content URLs require Jira authentication.

jcm_getIssuesA

Batch-read up to 50 Jira issues in one call (one JQL search, plus one GET per key the search omits). Returns an array in request order, one entry per unique key: {key, summary, type, status, parent ({key, summary, type} or null), description (markdown or null), comments: [{author, body, created}], commentsTotal?}. fields selects description and/or comments (default both). Descriptions are capped at maxDescriptionChars (default 600), comment bodies at maxCommentChars (default 300); cut text ends with "… [truncated, N chars total]". Only the 3 most recent comments are returned (oldest first); commentsTotal appears when more exist. A key that is missing or not visible to you returns {key, error} instead of being dropped. A moved/renamed key returns the issue under the requested key plus movedTo (current key). Use jcm_getIssue for full detail on one issue.

jcm_getIssueChangelogA

Get a Jira issue's field-change history, oldest first. Returns {entries: [{id, authorAccountId, author, created, items: [{field, from, to}]}], truncated}. since keeps entries created strictly after it. Capped at maxResults oldest matches (entries sharing the last timestamp stay together); if truncated, call again with since = last returned created.

jcm_getAttachmentDownloadLinkA

Resolve an attachment ID from jcm_getIssue to {attachmentId, filename, url, temporary: true}. Requires the server's Jira account to have permission to view the attachment. Download the sensitive temporary URL without Jira credentials using a local download tool; request a fresh URL after expiry. File bytes are not returned. Supports Jira Cloud's Atlassian media redirects.

jcm_getTransitionsA

Get available workflow transitions for a Jira issue. Returns [{id, name}].

jcm_editIssueA

Update a Jira issue. Pass 'fields' as {fieldName: value} to set values (description accepts markdown), and/or 'update' for incremental ops like adding a fix version: update={fixVersions: [{add: {name: '1.2.0'}}]}. 'update' values are passed verbatim, not markdown-converted. At least one is required. Returns {ok, key}.

jcm_transitionIssueA

Move a Jira issue to a new workflow state. Use jcm_getTransitions first to get valid transition IDs. Returns {ok, key, transitionId}.

jcm_convertIssueTypeA

Convert one or more Jira issues (same project) to another issue type, keeping their keys. To make tasks sub-tasks, provide parentKey. To make sub-tasks standalone, omit parentKey. Uses Jira's bulk move and waits up to 30s. Returns {ok, keys, issueType, parentKey}, or {ok:false, taskId, status, failed?} if the move failed or is still running.

jcm_addToActiveSprintA

Add a Jira issue to its project's active scrum sprint. No-op if the issue is already in an active sprint or the project has no scrum board. If the board or sprint is ambiguous, returns {ok:false, reason, candidates:[{id,name}]}: for reason multiple-scrum-boards retry with boardId; no-active-sprint and multiple-active-sprints need manual handling in Jira. Returns {ok, key, sprintId, sprintName, boardId} or {ok, skipped}.

jcm_getCurrentUserA

Returns the authenticated Atlassian user's account info: accountId, displayName, email, active.

jcm_lookupUserA

Look up a Jira user by email address. Returns [{accountId, displayName, email, active}].

jcm_createIssueA

Create a new Jira issue. Returns {key, url}. For sub-tasks, pass parentKey.

jcm_addCommentA

Add a comment to a Jira issue. Body accepts markdown (headings, tables, code fences, lists). Returns {ok, commentId}.

jcm_searchIssuesA

Search Jira issues using JQL. Returns {total, issues: [{key, summary, status, type, parent, assignee, updated, updatedJql}]}. parent is {key, summary, type} or null. updatedJql is the issue's updated time floored to the minute in your Jira timezone; poll with key = X AND updated > "<updatedJql>" (at-least-once, dedupe). Zero results are validated: invalid JQL values (unknown issue type, missing parent, etc.) return an error instead of an empty list.

jcm_createVersionB

Create a new version (release) in a Jira project. Returns {id, name}.

jcm_listVersionsA

List all versions in a Jira project. Returns [{id, name, released, releaseDate}].

jcm_releaseVersionA

Mark a Jira version as released. Returns {ok, id, name}.

jcm_addIssueLinkA

Create a link between two Jira issues. issueKey is the source and gets the outward verb (e.g. "blocks", "duplicates", "clones"); targetIssueKey gets the inward verb. Returns {ok, issueKey, targetKey, linkType}.

jcm_removeIssueLinkA

Delete an issue link by its ID. Use jcm_getIssueLinks to find link IDs. Returns {ok, linkId}.

jcm_getIssueLinksA

Get all links for a Jira issue. Returns flat array of [{id, type, inwardIssue?, outwardIssue?}].

jcm_getArticleA

Fetch a Confluence page by ID. Returns {id, title, body (markdown), status, version, spaceId, parentId?}.

jcm_lookupSpaceA

Resolve a Confluence space key to its numeric ID for use with jcm_createArticle. Returns {id, key, name}.

jcm_createArticleB

Create a new Confluence page. Returns {id, title, url}.

jcm_updateArticleA

Update a Confluence page. Pass current version number (auto-incremented). Returns {ok, id, version}.

jcm_searchArticlesA

Search Confluence pages using CQL. Returns [{id, title, space, spaceKey, lastModified}].

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 25 tools

Disambiguation4/5

Most tools target a distinct resource and action, and descriptions clarify overlapping areas such as jcm_getIssues, jcm_getIssue, and jcm_searchIssues. Some update-style tools (jcm_editIssue, jcm_transitionIssue, jcm_convertIssueType, jcm_addToActiveSprint) require careful selection, but the set is generally clear.

Naming Consistency5/5

All tools consistently use the jcm_ prefix followed by lowerCamelCase verb-first names. The verbs vary by operation (get, search, create, update, add, remove), but the overall convention is predictable throughout.

Tool Count4/5

25 tools is on the heavy side, but it covers two broad domains, Jira and Confluence, with several substantial sub-areas. Each tool appears purposeful, though the surface is larger than a typical focused MCP server.

Completeness4/5

The server covers core Jira issue, comment, link, version, sprint, transition, user, and Confluence page workflows quite thoroughly. Some gaps remain, such as deleting issues/pages, editing or deleting comments, and broader board/sprint management, but core workflows are largely supported.

Maintenance

ActivityActive
ResponsivenessLimited data