Skip to main content
Glama
Jira Cloud MCP Server

Jira Cloud MCP Server

Jira Cloud MCP Server

A production-ready, clean, and modular Model Context Protocol (MCP) server that enables LLMs to communicate directly with the official Jira Cloud REST API v3 using standard STDIO transport. Built using TypeScript strict mode and axios.

Features

  • jira_get_create_metadata: Inspect projects, issue types, field requirements, and custom field IDs (customfield_XXXXX).

  • jira_get_create_issue_meta_fields: Fetch the field configurations and custom fields for a specific project and issue type when creating an issue (granular and high-performance alternative).

  • jira_get_project_issue_types: Fetch all issue types available for a specific project, including their IDs (used to retrieve metadata fields).

  • jira_create_issue: Create new tickets, automatically converting plain text descriptions into the required Jira Cloud Atlassian Document Format (ADF). Supports optional custom fields.

  • jira_get_issue: Fetch complete details for a ticket using its ID or Key.

  • jira_search_jql: Query issues using Jira Query Language (JQL) with customizable limits.

  • jira_find_users: Search for Jira users to retrieve their unique accountId (required for assigning issues or setting user fields in Jira v3).

  • jira_get_transitions: Retrieve the workflow transitions and statuses available for a specific issue, along with their transitionIds.

  • jira_transition_issue: Transition an issue to a new status (e.g., "Done", "QA") using a transition ID.


Related MCP server: Jira MCP Server

Configuration & Authentication

The server supports both Jira Data Center (PAT Bearer Token) and Jira Cloud (Basic Auth).

Define these environment variables:

Environment Variable

Description

Example

JIRA_HOST

The root URL of your Jira Data Center instance

https://jira.yourcompany.com

JIRA_API_TOKEN

Your Personal Access Token (PAT)

NjkxODMy...

TIP

To create a PAT in Jira Data Center, navigate toProfile > Personal Access Tokens and click Create token. Keep JIRA_EMAIL undefined (or do not set it) to trigger Bearer Token authentication.

Jira Cloud (Basic Auth)

Define these environment variables:

Environment Variable

Description

Example

JIRA_HOST

The root URL of your Jira Cloud instance

https://your-domain.atlassian.net

JIRA_EMAIL

The email associated with your Atlassian account

user@company.com

JIRA_API_TOKEN

Atlassian API Token

ATATT...


Local Setup & Development

1. Install Dependencies

npm install

2. Configure Environment

Create a .env file in the root directory for local testing:

Jira Data Center (PAT):

JIRA_HOST=https://jira.yourcompany.com
JIRA_API_TOKEN=your-personal-access-token
# Leave JIRA_EMAIL blank or omit it

Jira Cloud (Basic):

JIRA_HOST=https://your-domain.atlassian.net
JIRA_EMAIL=user@company.com
JIRA_API_TOKEN=your-api-token

3. Build the Server

Compiles the TypeScript source files into executable ESM JavaScript in the dist/ directory:

npm run build

Direct Execution (npx)

Once built or published, the server can be executed directly using Node.js:

# Run the local build
node bin/index.js

Or run via npx (if published or linked):

npx jira-mcp-server

Client Integration

To connect this MCP server to a client (e.g., Claude Desktop, Cursor, or Antigravity), use the following configuration layouts.

Claude Desktop Integration

Add the configuration snippet below to your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "jira-mcp-server": {
      "command": "node",
      "args": [
        "/absolute/path/to/jira-mcp/bin/index.js"
      ],
      "env": {
        "JIRA_HOST": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "user@company.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

Cursor / Antigravity Integration

Configure a command-based MCP server in your IDE:

  • Type: command

  • Command: node /absolute/path/to/jira-mcp/bin/index.js

  • Set the environment variables JIRA_HOST, JIRA_EMAIL, and JIRA_API_TOKEN in your system or project configuration.


Publishing to Corporate JFrog Artifactory

To distribute this package inside your organization using JFrog Artifactory as your private NPM registry:

1. Configure the Target Registry

Add a publishConfig object to your package.json to redirect publishing to Artifactory:

"publishConfig": {
  "registry": "https://<your-jfrog-domain>/artifactory/api/npm/<npm-repository-name>/"
}

Alternatively, create a .npmrc file in the root of the project:

registry=https://<your-jfrog-domain>/artifactory/api/npm/<npm-repository-name>/

2. Authenticate with JFrog Artifactory

Log in to your private registry using your corporate credentials:

npm login --registry=https://<your-jfrog-domain>/artifactory/api/npm/<npm-repository-name>/

3. Build & Publish

Compile the TypeScript code and upload the package:

npm run build
npm publish

4. Consume via npx

To run the server dynamically using npx from your private JFrog repository, specify the registry parameter:

npx --registry=https://<your-jfrog-domain>/artifactory/api/npm/<npm-repository-name>/ jira-mcp-server

(Optional) If you set your global npm registry configuration to point to your Artifactory NPM proxy (which resolves both local and public NPM packages):

npm config set registry https://<your-jfrog-domain>/artifactory/api/npm/<npm-repository-name>/
npx jira-mcp-server

Available Tools

9 tools
jira_create_issueA

Creates a new issue, task, bug, or custom asset issue in Jira Cloud. Note: Description must be in Atlassian Document Format (ADF) - if you provide a plain string, this tool will automatically wrap it into a valid ADF paragraph node for you. IMPORTANT: If you need to populate custom fields or do not know what fields are required for the project, you MUST first run jira_get_project_issue_types to get the issueTypeId, and then run jira_get_create_issue_meta_fields to inspect the available fields, retrieve their exact "customfield_XXXXX" keys, and check their required states and allowed values. Then pass them in the "customFields" parameter. Official API Doc Link: https://developer.atlassian.net/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-post

Inputs: summary (required), projectKey (required), issueTypeName (required), description, +1 more.

jira_find_usersA

Searches for Jira users by display name, username, or email address. IMPORTANT: Because Jira Cloud v3 requires the user's accountId (e.g. '5b10ac8d82e05b22cc7d4ef5') for assignees, reporters, and user fields instead of usernames or emails, you MUST run this tool first to resolve a user's display name or email to their unique accountId. Official API Doc Link: https://developer.atlassian.net/cloud/jira/platform/rest/v3/api-group-user-search/#api-rest-api-3-user-search-get

Inputs: query (required), maxResults.

jira_get_create_issue_meta_fieldsA

Fetches the field configurations and custom fields for a specific project and issue type when creating an issue. Run this to discover the exact customfield_XXXXX IDs, their expected data types (e.g. string, number, array), and whether they are required before invoking jira_create_issue. This is a highly performant and granular alternative to the deprecated global getCreateMetadata endpoint. Official API Doc Link: https://developer.atlassian.net/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-createmeta-projectidorkey-issuetypes-issuetypeid-get

Inputs: issueTypeId (required), projectIdOrKey (required), startAt, maxResults.

jira_get_create_metadataB

Fetches creation metadata and field configurations for a specific project and issue type, including custom fields (customfield_XXXXX), required states, and allowed option values. Required to know which fields are expected and what their types are before creating an issue. Official API Doc Link: https://developer.atlassian.net/cloud/jira/platform/rest/v3/api-group-issue-creation-metadata/#api-rest-api-3-issue-createmeta-get

Inputs: projectKeys, issueTypeNames.

jira_get_issueA

Retrieves comprehensive details for a specific Jira issue or asset by its ID or Key (e.g., "PROJ-123" or "10001"). Official API Doc Link: https://developer.atlassian.net/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-issueidorkey-get

Inputs: issueIdOrKey (required).

jira_get_project_issue_typesA

Fetches the issue types available within a specific project, including their IDs. You MUST use this tool first to resolve the issueTypeId needed for calling jira_get_create_issue_meta_fields (which discovers required custom fields for a specific project/issue type). Official API Doc Link: https://developer.atlassian.net/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-createmeta-projectidorkey-issuetypes-get

Inputs: projectIdOrKey (required), startAt, maxResults.

jira_get_transitionsA

Retrieves the list of transitions (status changes) available for a specific Jira issue. This is crucial for discovering what workflow stages (e.g. 'In Progress', 'Done', 'Blocked') the issue can currently move to, and obtaining the correct transitionId (e.g. '31') to transition it. Official API Doc Link: https://developer.atlassian.net/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-issueidorkey-transitions-get

Inputs: issueIdOrKey (required).

jira_search_jqlA

Searches for Jira issues/assets using Jira Query Language (JQL). Official API Doc Link: https://developer.atlassian.net/cloud/jira/platform/rest/v3/api-group-issue-search/#api-rest-api-3-search-get

Inputs: jql (required), maxResults.

jira_transition_issueA

Transitions a Jira issue to a different workflow status (e.g. 'In Progress', 'Done', 'Blocked') using a specific transition ID. IMPORTANT: You must first retrieve the valid transition ID by calling jira_get_transitions for this specific issue. Official API Doc Link: https://developer.atlassian.net/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-issueidorkey-transitions-post

Inputs: issueIdOrKey (required), transitionId (required), fields.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 9 tools

    Disambiguation4/5

    Most tools have clearly distinct purposes (create, get, search, transition, find users), but jira_get_create_metadata and jira_get_create_issue_meta_fields overlap heavily—both retrieve field configuration for issue creation. This minor redundancy creates slight ambiguity, though the descriptions and the create_issue tool's guidance help steer agents to the preferred metadata tool.

    Naming Consistency5/5

    All tools consistently follow the jira_<verb>_<noun> pattern using snake_case. Even longer compound names like jira_get_create_issue_meta_fields and jira_get_project_issue_types maintain a predictable and ordered structure. No mixing of conventions or style conflicts.

    Tool Count5/5

    Nine tools is a well-scoped set for a Jira Cloud server, covering issue creation, retrieval, search, transitions, user lookup, and metadata exploration. The count feels appropriate—neither too sparse nor overburdened—and each tool (except the metadata duplication) earns its place.

    Completeness3/5

    The server covers issue creation, retrieval, search, and workflow transitions, but lacks general issue update and delete operations. Without jira_update_issue or jira_delete_issue, agents cannot modify existing issues (e.g., change assignee, priority, or labels) or remove issues, which is a notable gap for full lifecycle management.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to interact with Jira Cloud instances for comprehensive issue management including creating, updating, searching issues, managing comments, workflow transitions, and project metadata discovery. Supports JQL queries, user search, and custom field operations with secure API token authentication.
      12
      2,052 npm
      8
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to interact with Jira Cloud through the REST API, supporting project management, issue operations (create, read, update, delete), JQL search, task assignments, and status transitions.
      -