Skip to main content
Glama
jira-mcp-server

jira-mcp-server

by BillNobill

πŸš€ Jira MCP Server: AI-Powered Issue Tracking

Transform your Jira projects into a living workspace for AI agents. This Model Context Protocol (MCP) server allows LLMs (like Gemini, Claude, and GPT-4) to see, organize, and manage your tasks and sprints with natural language.


πŸ” Overview

This project bridges the gap between AI and your Jira workflow. Instead of manually navigating complex Jira screens, you can tell your AI: "Find all open bugs in the project and assign them to me," or "Create a new story for the login refactoring with high priority."

Global Usage: You can save this project anywhere on your computer. Once registered, your AI will be able to start the server automatically whenever neededβ€”no manual terminal execution required.


Related MCP server: Jira MCP Server

πŸ“‹ Prerequisites


πŸ› οΈ Quick Start

1. Installation & Build

# Clone the repository (or copy the files)
npm install
npm run build

2. Configuration

Create a .env file in the project root (use .env.example as a template):

JIRA_EMAIL=your_email@example.com
JIRA_API_TOKEN=your_api_token
JIRA_BASE_URL=https://your-domain.atlassian.net

3. Register with your AI client

claude mcp add --scope user jira node "C:\FULL_PATH\TO\jira-mcp-server\dist\index.js"

Env vars are read from the .env file or can be passed inline with -e KEY=VALUE flags.

VS Code (GitHub Copilot / Claude extension)

Add to your user settings.json (Ctrl+Shift+P β†’ Open User Settings JSON):

{
  "mcp": {
    "servers": {
      "jira": {
        "command": "node",
        "args": ["C:\\FULL_PATH\\TO\\jira-mcp-server\\dist\\index.js"],
        "env": {
          "JIRA_EMAIL": "your_email@example.com",
          "JIRA_API_TOKEN": "your_api_token",
          "JIRA_BASE_URL": "https://your-domain.atlassian.net"
        }
      }
    }
  }
}

Cursor

Add to %USERPROFILE%\.cursor\mcp.json:

{
  "mcpServers": {
    "jira": {
      "command": "node",
      "args": ["C:\\FULL_PATH\\TO\\jira-mcp-server\\dist\\index.js"],
      "env": {
        "JIRA_EMAIL": "your_email@example.com",
        "JIRA_API_TOKEN": "your_api_token",
        "JIRA_BASE_URL": "https://your-domain.atlassian.net"
      }
    }
  }
}
IMPORTANT

Always use theabsolute path to dist/index.js in the configuration above.


⚑ Available Tools

Your AI agent will automatically "learn" these advanced capabilities:

πŸ“‹ Project & Issue Management (Full CRUD)

  • list_projects: List all accessible Jira projects.

  • search_issues: Find issues using JQL or text queries.

  • get_issue: Fetch full details of a specific Jira issue.

  • create_issue / update_issue: Create or modify stories, tasks, or bugs.

  • delete_issues: Bulk Action to remove multiple issues and their subtasks.

  • create_subtask: Granular task breakdown for parent issues.

  • link_issues / delete_issue_link: Manage relationships between issues.

  • get_all_labels: List all labels used in the instance.

  • add_attachment / delete_attachment: Manage file attachments.

⏱️ Time & Work Tracking

  • add_worklog / update_worklog: Log and modify hours worked on a task.

  • delete_worklog: Remove incorrect worklog entries.

πŸ”„ Transitions & Workflow

  • get_transitions: See available status changes for an issue.

  • transition_issue: Move an issue through your workflow.

πŸ“Š Agile & Boards (Scrum/Kanban)

  • get_boards: List all Scrum and Kanban boards.

  • get_sprints: List sprints for a specific board.

  • get_backlog: Fetch issues in the backlog.

  • create_sprint / update_sprint: Manage sprint details and goals.

  • update_sprint_state: Start (active) or Close (closed) a sprint.

  • delete_sprints: Remove one or more sprints from a board.

πŸ“¦ Releases & Versions

  • get_project_versions: List all releases/versions for a project.

  • create_version / update_version: Manage the release lifecycle.

  • delete_versions: Remove project versions.

πŸš€ Bulk Operations (Granular & Optimized)

  • bulk_create_issues: Create up to 50 issues in a single request.

  • bulk_transition_issues: Move multiple issues to a new status at once.

  • delete_issues / delete_sprints: Scalable deletion handling single or multiple IDs.

πŸ‘₯ Professional Features

  • assign_issue: Assign teammates to tasks.

  • add_comment / update_comment: Manage discussion threads.

  • delete_comment: Remove irrelevant comments.

  • find_users: Search for users to get their account IDs.

  • get_myself: Get your own profile details.


πŸ› οΈ Troubleshooting

WARNING

Server shows as "Disconnected"?

  1. Empty Command: Check your client's MCP config and confirm "command": "node" and the absolute path to dist/index.js are correct.

  2. Environment Variables: Run node dist/index.js manually in the terminal. If it fails, check your .env or the environment variables in your client settings.

  3. SDK Compatibility: This project uses @modelcontextprotocol/sdk v1.29.0.

  4. Claude Code: Run /mcp inside a Claude Code session to see the server status and any error output.


🐳 Docker Support

TIP

Docker is perfect for keeping your local environment clean.

# Build
docker build -t jira-mcp-server .

# Run
docker run --rm -i --env-file .env jira-mcp-server

🀝 Contributing

Contributions are welcome! If you find a bug or have a feature request, please open an issue or submit a pull request.


Created by [Luiz Feltrin]
Show some love! Give this repository a ⭐️ if it helped you!

Available Tools

36 tools
add_attachmentB

Add a local file as an attachment to a Jira issue

Inputs: filePath (required), issueKey (required).

add_commentB

Add a comment to a Jira issue

Inputs: comment (required), issueKey (required).

add_worklogB

Add a worklog to an issue (log hours worked)

Inputs: issueKey (required), timeSpent (required), comment, started.

assign_issueB

Assign a Jira issue to a user

Inputs: issueKey (required), accountId (required).

bulk_create_issuesB

Create multiple issues in a single request (max 50)

Inputs: issues (required).

bulk_transition_issuesB

Transition multiple issues to a new status

Inputs: issueKeys (required), transitionId (required).

create_issueC

Create a new Jira issue

Inputs: summary (required), projectKey (required), priority, issueType, +1 more.

create_sprintB

Create a new sprint on a board

Inputs: name (required), originBoardId (required), goal, endDate, +1 more.

create_subtaskC

Create a subtask for a parent issue

Inputs: summary (required), parentIssueKey (required), issueType, description.

create_versionB

Create a new project version (release)

Inputs: name (required), projectKey (required), description, releaseDate.

delete_attachmentA

Remove an attachment from an issue

Inputs: attachmentId (required).

delete_commentC

Delete a comment from an issue

Inputs: issueKey (required), commentId (required).

delete_issuesC

Delete one or more Jira issues

Inputs: issueKeys (required), deleteSubtasks.

delete_sprintsB

Delete one or more sprints

Inputs: sprintIds (required).

delete_versionsB

Delete one or more project versions

Inputs: versionIds (required).

delete_worklogC

Delete a worklog entry

Inputs: issueKey (required), worklogId (required).

find_usersA

Search for Jira users by email or display name to get their accountId

Inputs: query (required).

get_all_labelsB

Get all labels used in Jira

Inputs: no named parameters.

get_backlogB

Get issues in the backlog for a specific board

Inputs: boardId (required).

get_boardsA

List all Scrum and Kanban boards

Inputs: no named parameters.

get_issueB

Get full details of a specific Jira issue

Inputs: issueKey (required).

get_myselfA

Get the profile details of the currently authenticated Jira user (the bot)

Inputs: no named parameters.

get_project_versionsA

List all versions (releases) for a project

Inputs: projectKey (required).

get_sprintsB

List sprints for a specific board

Inputs: boardId (required), state.

get_transitionsA

Get available status transitions for an issue

Inputs: issueKey (required).

list_projectsA

List all accessible Jira projects

Inputs: no named parameters.

search_issuesB

Search for issues using a text query or JQL

Inputs: jql, query.

transition_issueC

Change the status of a Jira issue

Inputs: issueKey (required), transitionId (required).

update_commentB

Update an existing comment on an issue

Inputs: comment (required), issueKey (required), commentId (required).

update_issueC

Update fields of an existing Jira issue

Inputs: fields (required), issueKey (required).

update_sprintC

Update sprint details (name, goal, dates)

Inputs: sprintId (required), goal, name, endDate, +1 more.

update_sprint_stateA

Change the state of a sprint (e.g., start or complete)

Inputs: state (required), sprintId (required).

update_versionC

Update a project version/release

Inputs: versionId (required), name, archived, released, +2 more.

update_worklogB

Update an existing worklog entry

Inputs: issueKey (required), worklogId (required), comment, timeSpent.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 36 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action, with clear separation between issues, comments, worklogs, sprints, versions, attachments, and user operations. Even similar-sounding tools like update_sprint and update_sprint_state are clearly differentiated by descriptions focusing on details vs state.

    Naming Consistency4/5

    Most tools follow a verb_noun snake_case pattern, but there are minor singular/plural inconsistencies such as create_issue vs delete_issues and update_sprint vs delete_sprints. Bulk operations are consistently prefixed with bulk_, but delete operations also support bulk without a prefix.

    Tool Count2/5

    With 36 tools, the server far exceeds the typical 3-15 tool range and crosses the 25-tool threshold for a well-scoped set. While Jira is complex, the breadth here feels heavy and could overwhelm agents.

    Completeness4/5

    The tool set provides strong CRUD coverage for issues, comments, worklogs, sprints, versions, and attachments, plus search, transitions, and linking. Minor gaps exist, such as no direct getters for comments or worklogs and no tool to list issue link types, but core workflows remain functional.

    Related MCP Connectors

    Related MCP Servers