Skip to main content
Glama
ysofologis

Jira MCP Server

by ysofologis
README.md
# Jira MCP Server

Node.js-based Jira MCP (Model Context Protocol) server with TypeScript support.

## Features

- **getIssuesByJQL**: Fetch Jira issues using JQL queries
- **createIssue**: Create new Jira issues programmatically
- Automatic retry logic for transient failures
- TypeScript type safety
- Secure authentication via environment variables

## Prerequisites

- Node.js v20.x or higher
- Jira Cloud account or Jira Data Center with API access
- Jira API token

## Installation

```bash
npm install
```

## Configuration

1. Copy `.env.example` to `.env`:
   ```bash
   cp .env.example .env
   ```

2. Update `.env` with your Jira credentials:
   ```
   JIRA_HOST=your-domain.atlassian.net
   JIRA_EMAIL=your-email@example.com
   JIRA_API_TOKEN=your_api_token_here
   
   JIRA_DEFAULT_PROJECT= (optional, default project key for issue creation)
   ```

3. Create your API token at: https://id.atlassian.com/manage-profile/security/api-tokens

## Usage

### Development

```bash
npm run dev
```

### Production Build

```bash
npm run build
npm start
```

## Configuration for Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
   "mcpServers": {
     "jira-mcp": {
       "command": "node",
       "args": ["/path/to/jira-mcp/dist/index.js"],
       "env": {
         "JIRA_HOST": "your-domain.atlassian.net",
         "JIRA_EMAIL": "your-email@example.com",
         "JIRA_API_TOKEN": "your_api_token",
         "JIRA_DEFAULT_PROJECT": "PROJECT_KEY"
       }
     }
   }
}
```

## Available Tools

### getIssuesByJQL

Fetch Jira issues using a JQL query.

**Parameters:**
- `jql` (string, required): JQL string (e.g., "project = TEST")
- `maxResults` (number, optional): Limit results (default: 50)

**Example:**
```
"Show all issues assigned to me in project DEV"
```

### createIssue

Create a new Jira issue.

**Parameters:**
- `projectKey` (string, optional): Project key (e.g., "TEST"). If not provided, uses JIRA_DEFAULT_PROJECT
- `summary` (string, required): Issue title
- `description` (string, required): Issue details
- `issueType` (string, optional): Issue type (default: "Task")

**Example:**
```
"Create a Jira issue titled 'Fix login bug in API' in the project DEV"
"Create a Jira issue titled 'Fix login bug in API' without specifying a project (uses default)"
```

## Development

```bash
# Build TypeScript
npm run build

# Run linter (add to package.json if needed)
npm run lint

# Run type check
npm run typecheck
```

## License

MIT

Maintenance

ActivityInactive
ResponsivenessNo issues