Skip to main content
Glama
README.md
# Jira MCP Server

This is a Model Context Protocol (MCP) server that exposes Jira API calls as tools for use with Claude and other AI models.

## Setup

### 1. Install Dependencies

```bash
pip install -r requirements.txt
```

### 2. Configure Environment Variables

Create a `.env` file in the project root:

```bash
JIRA_EMAIL=your.email@gmail.com
JIRA_API_TOKEN=your_api_token_here
JIRA_BASE_URL=https://your-instance.atlassian.net
```

**Note:** Get your API token from: https://id.atlassian.com/manage-profile/security/api-tokens

### 3. Run the Client

```bash
python test_client.py
```

## Available Tools

The MCP server exposes the following tools:

### 1. **list_projects**
List all Jira projects
- No parameters required

### 2. **get_boards**
Get all Agile boards
- No parameters required

### 3. **get_board_columns**
Get columns for a specific board
- `board_id` (integer): The ID of the board

### 4. **get_issues_for_board**
Get all issues for a specific board
- `board_id` (integer): The ID of the board

### 5. **get_epics_from_board**
Get all epics from a specific board
- `board_id` (integer): The ID of the board

### 6. **create_issue**
Create a new issue in Jira
- `project_key` (string): Project key (e.g., 'KAN')
- `summary` (string): Issue summary/title
- `description` (string): Issue description
- `issue_type` (string, optional): Issue type (Task, Epic, Story, etc.) - defaults to "Task"

### 7. **delete_issue**
Delete an issue from Jira
- `issue_key` (string): Issue key (e.g., 'KAN-4')

### 8. **update_issue_status**
Update the status of an issue
- `issue_key` (string): Issue key (e.g., 'KAN-1')
- `transition_id` (string): Transition ID for the new status

## Usage with Claude

To use this MCP server with Claude, add it to your Claude config:

### macOS/Linux: `~/.config/Claude/claude_desktop_config.json`
### Windows: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "jira": {
      "command": "python",
      "args": ["/path/to/mcp_server.py"],
      "env": {
        "JIRA_EMAIL": "your.email@gmail.com",
        "JIRA_API_TOKEN": "your_api_token",
        "JIRA_BASE_URL": "https://your-instance.atlassian.net"
      }
    }
  }
}
```

## Project Structure

```
.
├── test_client.py         # Client to run the server tools calls test
├── mcp_server.py          # Main MCP server implementation
├── api_calls/             # Original API call scripts (reference)
│   ├── create_issue_from_json.py
│   ├── delete_issue.py
│   ├── get_board_columns.py
│   ├── get_boards.py
│   ├── get_epics_from_board.py
│   ├── get_issues_for_board.py
│   ├── list_projects.py
│   └── update_issue_status.py
├── package.json           # Project metadata
├── requirements.txt       # Python dependencies
└── README.md             # This file
```

## Key Improvements Over Individual Scripts

✅ **Unified Interface**: All API calls accessible via a single MCP server  
✅ **Security**: Credentials managed via environment variables  
✅ **Error Handling**: Consistent error handling across all tools  
✅ **Type Safety**: Proper input schema validation  
✅ **Extensibility**: Easy to add new tools  
✅ **Integration**: Seamless integration with Claude and other AI models