Skip to main content
Glama

Jira MCP Server

MCP (Model Context Protocol) server for Jira Cloud API integration. Create issues and list issue types using Basic Auth (email + API token).

Features

  • jira_create_issue – Create a new Jira issue with project, summary, and issue type

  • jira_list_issue_types – List available issue types for a project

Related MCP server: mcp-jira

Prerequisites

Setup

  1. Clone and install

    cd jira_mcp
    npm install
  2. Configure environment

    Copy .env.example to .env and fill in your values:

    cp .env.example .env
    JIRA_BASE_URL=https://your-domain.atlassian.net
    JIRA_EMAIL=user@example.com
    JIRA_API_TOKEN=your_api_token_here
  3. Build

    npm run build

Usage

Run the server

npm start

Or with env vars inline:

JIRA_BASE_URL=https://your-domain.atlassian.net JIRA_EMAIL=you@example.com JIRA_API_TOKEN=xxx npm start

The server runs via stdio and is intended to be used as a subprocess by MCP clients (e.g. Cursor, Claude Desktop).

Cursor configuration

Add to your Cursor MCP config (e.g. ~/.cursor/mcp.json):

{
  "mcpServers": {
    "jira": {
      "command": "node",
      "args": ["/path/to/jira_mcp/dist/index.js"],
      "env": {
        "JIRA_BASE_URL": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "your-email@example.com",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

Tools

jira_list_issue_types

List issue types (Bug, Task, Story, etc.) for a project.

Parameter

Type

Required

Description

project_key

string

Yes

Jira project key (e.g. PROJ)

response_format

string

No

markdown (default) or json

jira_create_issue

Create a new Jira issue.

Parameter

Type

Required

Description

project_key

string

Yes

Jira project key

summary

string

Yes

Issue title

issue_type

string

Yes

Issue type name (e.g. Bug, Task) or ID

description

string

No

Issue description

response_format

string

No

markdown (default) or json

Testing Without Cursor

The best way to test the MCP server interactively is with MCP Inspector, a web UI for exercising tools, resources, and prompts.

  1. Build the project (if not already done):

    npm run build
  2. Run MCP Inspector with your server. With a .env file in the project root, the server loads it automatically:

    npm run inspector

    Or run directly (env from .env is loaded by the server):

    npx @modelcontextprotocol/inspector node dist/index.js

    To pass env vars explicitly instead:

    npx @modelcontextprotocol/inspector \
      -e JIRA_BASE_URL=https://your-domain.atlassian.net \
      -e JIRA_EMAIL=you@example.com \
      -e JIRA_API_TOKEN=your-token \
      node dist/index.js
  3. Open the Inspector in your browser (typically http://localhost:6274).

  4. Test tools – Use the Tools tab to call jira_list_issue_types and jira_create_issue with sample inputs.

The Inspector runs your server as a subprocess and connects via stdio, so it behaves like a real MCP client.

Development

# Run with auto-reload
npm run dev

# Run all tests (unit + integration)
npm test

# Run tests with coverage
npm run test:coverage

# Run integration tests only (spawns MCP server + mock Jira)
npm run test:integration

# Lint code
npm run lint
npm run lint:fix

# Format code
npm run format
npm run format:check

Pre-commit hooks (Husky)

On each git commit, Husky runs lint and Prettier on staged files. If there are errors, the commit is blocked with a message:

❌ Commit blocked: Fix the lint or Prettier errors above.
   Tips: npm run lint:fix  |  npm run format

To bypass (use sparingly): git commit --no-verify or HUSKY=0 git commit

CI

GitHub Actions runs on pull requests to main/master with separate stages on Node.js 24.x:

  • Unit Testsnpm run test:unit (90% coverage enforced)

  • Integration Testsnpm run test:integration (MCP server + mock Jira)

  • Lint & Format – ESLint and Prettier checks

  • Security Auditnpm audit (fails on moderate+ vulnerabilities)

  • CodeQL – Static security analysis (JavaScript/TypeScript)

  • Dependency Review – Checks for vulnerable deps in PRs

Dependabot is configured for weekly dependency updates (.github/dependabot.yml).

To block merges until PRs pass, enable branch protection in GitHub: Settings → Branches → Add rule → Require status checks to pass before merging.

API Reference

License

MIT

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vertigooxyz-devix/mcp-for-jira'

If you have feedback or need assistance with the MCP directory API, please join our Discord server