Skip to main content
Glama
README.md
# mcp-jira

A local Model Context Protocol server for safely working with personal Jira Cloud issues through Atlassian CLI (`acli`). It reuses ACLI's existing OAuth session and does not store Jira credentials.

## Capabilities

- List and search issues assigned to the authenticated user.
- Read compact details for issues assigned to the authenticated user.
- Rank possible duplicates among assigned issues without modifying Jira.
- Preview updates before applying them.
- Update summaries, descriptions, and labels; add comments; and transition issues only when they remain assigned to the authenticated ACLI user.
- Require `confirmed: true` on every mutation tool.

This server deliberately does not create issues, link duplicates, or close duplicate issues in its initial version.

## Requirements

- Node.js 20 or newer.
- Atlassian CLI (`acli`) authenticated to Jira Cloud.

## Setup

```powershell
npm install
npm run build
```

Verify ACLI authentication:

```powershell
C:\Tools\atlassian\acli.exe jira auth status
```

Set `ACLI_PATH` only when `acli` is not available on `PATH`.

Run the server over stdio:

```powershell
node dist/src/index.js
```

## OpenCode Configuration

Add a local MCP entry to `~/.config/opencode/opencode.json` or a project `opencode.json`:

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jira": {
      "type": "local",
      "command": [
        "node",
        "C:\\Users\\BEB283\\source\\repos\\mcp-jira\\dist\\src\\index.js"
      ],
      "enabled": true,
      "environment": {
        "ACLI_PATH": "C:\\Tools\\atlassian\\acli.exe"
      }
    }
  }
}
```

Configure OpenCode permissions so `jira_update_issue`, `jira_add_comment`, and `jira_transition_issue` require approval. The server also requires literal `confirmed: true` and re-checks assignment immediately before each mutation.

ACLI currently transitions by target status name and does not expose a command for listing available transitions. It also does not expose direct edit flags for priority or due date, so those fields are read-only in this MCP version.

Restart OpenCode after changing its configuration.

## Development

```powershell
npm test
npm run check
npm run build
```