Jira Cloud MCP Server
This server provides AI assistants with the ability to manage Jira issues and projects via the Jira Cloud REST API v3. Capabilities include:
Create issues (
jira_create_issue): Create tickets with custom fields and automatic plain-text to ADF conversion.Read issues (
jira_get_issue): Fetch full issue details by ID or key.Search issues (
jira_search_jql): Query issues using JQL with configurable limits.Transition issues: Use
jira_get_transitionsto list available workflow transitions andjira_transition_issueto apply them.Discover metadata: Use
jira_get_create_metadataandjira_get_create_issue_meta_fieldsto inspect project/issue type fields, custom fields, and allowed values before creation.List issue types (
jira_get_project_issue_types): Get all issue types and IDs for a project.Find users (
jira_find_users): Search for users to resolve account IDs for assignments.
Authentication supports Jira Cloud (Basic Auth) and Jira Data Center (PAT) via environment variables.
Provides tools for interacting with Jira Cloud, enabling issue creation (with automatic Atlassian Document Format conversion), retrieval, JQL searching, transition management, user search, and project metadata inspection.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Jira Cloud MCP Server Create an issue in the Mobile App project: 'Push notifications not working'."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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).
Jira Data Center (PAT Authentication - Recommended)
Define these environment variables:
Environment Variable | Description | Example |
| The root URL of your Jira Data Center instance |
|
| Your Personal Access Token (PAT) |
|
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 |
| The root URL of your Jira Cloud instance |
|
| The email associated with your Atlassian account |
|
| Atlassian API Token |
|
Local Setup & Development
1. Install Dependencies
npm install2. 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 itJira Cloud (Basic):
JIRA_HOST=https://your-domain.atlassian.net
JIRA_EMAIL=user@company.com
JIRA_API_TOKEN=your-api-token3. Build the Server
Compiles the TypeScript source files into executable ESM JavaScript in the dist/ directory:
npm run buildDirect Execution (npx)
Once built or published, the server can be executed directly using Node.js:
# Run the local build
node bin/index.jsOr run via npx (if published or linked):
npx jira-mcp-serverClient 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.jsonWindows:
%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:
commandCommand:
node /absolute/path/to/jira-mcp/bin/index.jsSet the environment variables
JIRA_HOST,JIRA_EMAIL, andJIRA_API_TOKENin 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 publish4. 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-serverAvailable Tools
9 toolsjira_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
Scored across 9 tools
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.
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.
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.
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
Related MCP Connectors
Connect to Atlassian Jira, Confluence, Loom, and more to search, create, and manage your work.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables 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.122,052 npm8MIT
- AlicenseAqualityNot gradedmaintenanceEnables AI assistants to interact with Atlassian Jira Cloud, allowing users to manage projects, issues, comments, and workflows through natural language commands.61,677 npm3-
- FlicenseNot gradedqualityDmaintenanceEnables 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.-
- AlicenseAqualityDmaintenanceEnables AI agents to interact with Jira Cloud, including listing boards and issues, adding comments, and searching users.7204 npm2MIT