Jira Issue MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
npm install
npm run build
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "ATLASSIAN_CLIENT_ID=${ATLASSIAN_CLIENT_ID}" -e "ATLASSIAN_CLIENT_SECRET=${ATLASSIAN_CLIENT_SECRET}" jira-issue -- node "<FULL_PATH_TO_JIRA_ISSUE_MCP_SERVER>/dist/index.js"

Replace <FULL_PATH_TO_JIRA_ISSUE_MCP_SERVER>/dist/index.js with the actual folder you prepared in step 1.

Required:ATLASSIAN_CLIENT_IDATLASSIAN_CLIENT_SECRET+ 4 optional
README.md

Enables interaction with Jira through OAuth 2.0 to create and manage issues.

JIRA ISSUE MCP SERVER

This is a sample MCP server implementation for Jira issues. It uses OAuth 2.0 (3LO) to authenticate with Jira and create issues.

INSTRUCTIONS

  1. Create an Atlassian developer account and set up an OAuth 2.0 (3LO) app to get a client ID and secret: https://developer.atlassian.com/apps/

  2. Set up a Redis instance for caching the tokens and other data (should run on port 6379, redis default port).

  3. Clone this repository and install dependencies with npm install.

  4. Build the project with npm run build.

  5. Configure the MCP server in your MCP client (e.g., Jira Service Management) with the JSON configuration. This is an example configuration for Cursor:

{
  "mcpServers": {
    "jira-mcp-server": {
      "type": "stdio",
      "command": "node",
      "args": [
        "/dist/index.js"
      ],
      "env" :{
        "ATLASSIAN_CLIENT_ID": "<client id>",
        "ATLASSIAN_CLIENT_SECRET":"<client secret>",
        "ELASTIC_API_KEY": "<elastic api key>",
        "ELASTIC_URL": "<elastic url>",
        "REDIS_HOST": "<redis host>",
        "SERVER_DOMAIN": "<domain>"
      }
    }
  }
}

Environment variable descriptions

  • ATLASSIAN_CLIENT_ID (required): the OAuth client ID from your Atlassian developer app. This and ATLASSIAN_CLIENT_SECRET are mandatory for the OAuth flow to work.
  • ATLASSIAN_CLIENT_SECRET (required): the OAuth client secret from your Atlassian developer app.
  • ELASTIC_API_KEY (optional): API key for Elastic (used for telemetry/logging if configured). Default: not set.
  • ELASTIC_URL (optional): Elastic endpoint URL. Default: not set.
  • REDIS_HOST (optional): Redis connection string or host:port used for caching tokens. Default: "localhost:6379".
  • SERVER_DOMAIN (optional): Base URL where this server is reachable (used to build OAuth redirect/callback URLs). Default: "http://localhost:3000".

Only ATLASSIAN_CLIENT_ID and ATLASSIAN_CLIENT_SECRET are strictly required to run the server. All other environment variables are optional and can be left unset to use local/default behavior.

DEMO

For the Demo I used Cursor as MCP client. After the config added, you should see in settings something similar to this:

Cursor Config

If there is no OAuth connection, first you will be redirected to the Atlassian authorization page to authorize the app.

Atlassian Auth

After the authorization, you should go to the Cursor to tell him that now it's all done and Cursor will do the magic if you have only one resource accessible and only one project.

Cursor Chat Done

After that, you can see the task created in Jira.

Task Created

If you have Elastic connected, you can see the logs in Kibana.

Kibana Logs

DISCLAIMER

Starting from September 7th 2025, Smithery.AI will discontinue the support for the projects which require STDIO transport. While the repository will remain accessible for reference, it cannot be deployed because of its dependencies.

LEGAL

  • This project is not affiliated with Atlassian Inc.
  • Respect Atlassian's API terms of service
  • Your Jira instance credentials remain local
  • No data is shared with third parties

SECURITY

  • OAuth tokens are stored locally
  • Use environment variables for sensitive config
  • Never commit credentials to version control

Environment Variables

ATLASSIAN_CLIENT_IDrequiredThe OAuth client ID from your Atlassian developer app.
ATLASSIAN_CLIENT_SECRETrequiredThe OAuth client secret from your Atlassian developer app.
ELASTIC_API_KEYAPI key for Elastic used for telemetry/logging.
ELASTIC_URLElastic endpoint URL.
REDIS_HOSTRedis connection string or host:port used for caching tokens.
SERVER_DOMAINBase URL where this server is reachable for OAuth callbacks.

Configuration

claude_desktop_config.json
{"mcpServers": {"jira-mcp-server": {"type": "stdio", "command": "node", "args": ["<path to the project>/dist/index.js"], "env": {"ATLASSIAN_CLIENT_ID": "<client id>", "ATLASSIAN_CLIENT_SECRET": "<client secret>", "ELASTIC_API_KEY": "<elastic api key>", "ELASTIC_URL": "<elastic url>", "REDIS_HOST": "<redis host>", "SERVER_DOMAIN": "<domain>"}}}}

Try it

Create a new Jira issue in my project with the summary 'Fix login bug' and priority 'High'.
List the recent issues assigned to me in Jira.
Update the status of Jira issue PROJ-123 to 'In Progress'.

Frequently Asked Questions

What are the key features of Jira Issue MCP Server?

Secure OAuth 2.0 (3LO) authentication with Atlassian. Local token caching using Redis. Direct creation and management of Jira issues. Optional telemetry and logging integration with Elastic.

What can I use Jira Issue MCP Server for?

Automating task creation directly from an AI coding assistant. Managing Jira project workflows without leaving the IDE. Integrating Jira issue tracking into automated development pipelines.

How do I install Jira Issue MCP Server?

Install Jira Issue MCP Server by running: npm install && npm run build

What MCP clients work with Jira Issue MCP Server?

Jira Issue MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Jira Issue MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare