Jira MCP OAuth gateway
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JIRA_PAT | No | PAT or API token your site provides; sent as Authorization: Bearer. | |
| JIRA_BASE_URL | Yes | Root URL of your Jira site (example: https://jira.company.com or https://intranet.example.com/jira if you use a context path). | |
| CONFLUENCE_PAT | No | Confluence PAT; same host config only rule as Jira PATs. | |
| JIRA_API_TOKEN | No | Alternative to JIRA_PAT. | |
| JIRA_LOGIN_URL | No | Login page URL (default {JIRA_BASE_URL}/login.jsp). | |
| JIRA_LOGIN_POLL_MS | No | During jira_login, how often to probe /rest/api/.../myself so login can finish early (default 2000 ms). | 2000 |
| PREFER_SSO_COOKIES | No | Default on: if an SSO cookie file exists, only cookies are sent (not PAT). Set 0 / false for PAT-first. | on |
| CONFLUENCE_BASE_URL | No | Confluence root URL for add_attachment_from_confluence. | |
| JIRA_MCP_SERVER_KEY | No | If several MCP entries share the same path to src/index.js, set this to that entry's id (e.g. jira-local) so merge/PAT discovery matches the right block. | |
| CONFLUENCE_API_TOKEN | No | Alternative to CONFLUENCE_PAT. | |
| JIRA_DEFAULT_PROJECT | No | Default project key when create_ticket is called without project / boardName / boardId and board-based resolution is ambiguous or unavailable. | |
| JIRA_REST_API_PREFIX | No | REST base path (default /rest/api/3). Use /rest/api/2 if your server only exposes v2. | /rest/api/3 |
| JIRA_DESCRIPTION_FORMAT | No | auto (default: plain string for v2, ADF for v3), adf, or plain — overrides description encoding if your site differs. | auto |
| JIRA_LOGIN_WAIT_SECONDS | No | Browser SSO wait, in seconds (default 90). | 90 |
| CONFLUENCE_MCP_SERVER_KEY | No | Optional; used to name the Confluence cookie file for add_attachment_from_confluence. | |
| JIRA_MAX_ATTACHMENT_BYTES | No | Max upload size in bytes (default 10 MiB). | 10485760 |
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
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jira_loginA | SSO login in a browser (Playwright); saves cookies for REST. If IdP redirects or automation block a session, use JIRA_PAT + PREFER_SSO_COOKIES=0 in mcp.json or delete the reported cookie file. When JIRA_PAT is set, REST prefers it unless PREFER_SSO_COOKIES and cookies override. |
| execute_jqlC | Run a JQL search and return issues (summary fields). |
| get_ticketA | Get full issue JSON from Jira. Uses JIRA_REST_API_PREFIX (e.g. /rest/api/2 or /rest/api/3). If you see 401, set JIRA_PAT or run jira_login once. |
| read_ticketC | Read a ticket as a compact object (summary, plain-text description, status, assignee, etc.). |
| get_taskB | Same as get_ticket — returns full issue JSON (alias for task-type issues). |
| read_taskC | Same as read_ticket — compact issue view (alias for task-type issues). |
| get_only_ticket_name_and_descriptionA | Return only summary and plain-text description for an issue. |
| create_ticketA | Create an issue in a project. project is optional if the destination is unambiguous: set JIRA_DEFAULT_PROJECT in MCP env, pass boardName or boardId (Jira Software Agile boards), or omit when your account sees exactly one project across boards—otherwise the tool fails with a clear error listing boards (use list_boards). Description is plain text: v3 → ADF, v2 → string (JIRA_REST_API_PREFIX, JIRA_DESCRIPTION_FORMAT). Does not set sprint/backlog placement—use the UI or Agile REST for that. |
| edit_ticketB | Update issue fields (summary, description, labels, parent). |
| delete_ticketB | Delete an issue (requires permission). |
| list_projectsA | List Jira projects. Uses /project/search on REST v3; on REST v2 uses GET /project (v2 has no project search endpoint). |
| list_boardsA | List Jira Software boards (GET /rest/agile/1.0/board). Use names/ids with create_ticket when project is ambiguous. Returns 404 if Agile is disabled or your site has no Software boards—in that case pass project or JIRA_DEFAULT_PROJECT. |
| assign_ticketC | Assign an issue by Atlassian account ID. |
| query_assignableB | List users assignable for a project. |
| get_all_statusesB | Return all issue statuses from Jira. |
| add_attachment_from_confluenceA | Download an attachment from Confluence (CONFLUENCE_BASE_URL + CONFLUENCE_PAT or SSO cookies) and upload it to a Jira issue. |
| add_attachment_from_public_urlA | Download a file from a public URL and attach it to a Jira issue. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Multiple aliases (get_task/get_ticket, read_task/read_ticket) create redundancy and confusion. Agents may struggle to choose the correct tool for retrieving issue data. The two attachment tools are similar but distinct in source.
Most tools follow verb_noun pattern (e.g., create_ticket, list_boards), but inconsistencies exist: jira_login instead of login_jira, and usage of both 'get' and 'read' for similar retrieval functions. The lengthy get_only_ticket_name_and_description breaks the pattern.
17 tools is slightly above the well-scoped range (3-15). While the number covers Jira operations, the presence of duplicate aliases (4 tools for ticket retrieval) inflates the count without adding value.
Core operations like CRUD for issues, JQL search, and project/board listing are present. However, critical gaps exist: no tool for transitioning issue status (workflow), and no direct way to manage issue types or sprints. Alias tools further reduce effective coverage.