Back to Productivity

Jira MCP Server

Create and analyze issues against agile and scrum principles right in your MCP Client. Access any GET endpoint in Jira for flexible and adaptable use the AI Agent

Last updated: 1/27/2026

README

# Jira MCP Server

A collection of tools designed for interacting with Jira via the Model Context Protocol (MCP), providing core Jira functionalities and a unified, guided Issue Creation and Update Wizard.

## Installation

To install this into a client:

```bash
{
  "mcpServers": {
    "JiraMCP_Published": {
      "command": "npx",
      "args": [
        "@timbreeding/jira-mcp-server@latest",
        "--jira-base-url=https://example.atlassian.net",
        "--jira-username=someJiraUserEmail@domain.com",
        "--jira-api-token=<your jira token>"
      ],
      "env": {
        "DEBUG": "true",
        "LOG_FILE_PATH": "" // Some full path. If blank, it will not write logs to a file.
      }
    }
  }
}

```

## Usage
...
## Configuration

### Environment Variables
 For running locally, you can put the DEBUG and LOG_FILE_PATH into your .env.

## Available Tools

This application exposes the following tools via the Model Context Protocol:

### Core Jira Tools

- `getJiraIssue`: Fetches a Jira issue by its key.
- `analyzeJiraIssue`: Performs comprehensive analysis of a Jira issue.
- `jiraGet`: Fetches data from any Jira API GET endpoint.
- `getIssuesByJql`: Searches for Jira issues using a JQL query.

### Issue Creation Wizard Tools

These tools provide a step-by-step, guided process for creating new Jira issues. The wizard maintains state throughout the creation flow, typically involving these stages: initiating the process, selecting a project (`getProjects`), choosing an issue type (`getIssueTypes`), retrieving and populating the necessary fields (`getFields`, `updateFields`), optionally analyzing the issue details, and finally confirming and creating the issue (`createIssue`). Use `getState` and `getStatus` to monitor progress, and `resetState` to start over.

- `issueCreation_getState`: Gets the current internal state of the wizard.
- `issueCreation_getStatus`: Gets the high-level status of the wizard.
- `issueCreation_initiateState`: Initializes a new wizard state.
- `issueCreation_resetState`: Resets the wizard state.
- `issueCreation_updateState`: Updates the wizard state (project, issue type, fields, step).
- `issueCreation_createIssue`: Creates a Jira issue using the wizard's state.
- `issueCreation_getProjects`: Retrieves available Jira projects.
- `issueCreation_getIssueTypes`: Gets available issue types for the selected project.
- `issueCreation_getFields`: Retrieves fields required for the selected project/issue type.
- `issueCreation_updateFields`: Updates specific field values in the wizard state.
- `issueCreation_setAnalysisComplete`: Sets the analysis complete flag.
- `issueCreation_setUserConfirmation`: Sets the user confirmation flag before creation.
- `issueCreation_analyzeIssue`: Analyzes the issue details within the wizard context.

### Issue Update Wizard Tools (Unified Update Workflow)

These tools provide a unified, robust mechanism for updating any Jira issue—whether newly created or already existing. All updates now use a single, consistent workflow:

- `issueUpdateWizard_loadIssueIntoState`: Fetch a Jira issue by key and load it into the state manager for unified update workflows.
- `issueUpdateWizard_updateIssueFromState`: Update any loaded issue using the current state (fields, project, type, etc.).

**Key Principles:**
- All issue updates (new or existing) follow the same pattern: load the issue into state, modify fields, and update via the API.
- No code duplication between new and existing issue updates.
- Minimal, explicit, and robust error handling.
- 100% unit test coverage for update operations.

## Development

### Running Tests

Jest is configured for testing. To run the test suite:

```bash
npm test
```

### Code Quality Checks

To run type checking, linting, and tests together:

```bash
npm run check-codebase
```

### Running with MCP Inspector

For local development and testing using the Model Context Protocol Inspector, you can launch the application and pass the required environment variables using the `-e` flag:

```bash
npx @modelcontextprotocol/inspector -e JIRA_BASE_URL=https://your-domain.atlassian.net -e JIRA_USERNAME=your-email@example.com -e JIRA_API_TOKEN=your-api-token -e DEBUG=true node build/index.js
```

_(Ensure you have built the project first if using `build/index.js`)_

## License

This project is licensed under the MIT License - see the `LICENSE` file for details.

Installation

Add this MCP to your configuration:

{
  "mcpServers": {
    "jira-mcp-server": {
      // See GitHub repository for configuration
    }
  }
}

See the GitHub repository for full installation instructions.