/ Directory / Playground / jira-skill
● Community netresearch ⚡ Instant

jira-skill

by netresearch · netresearch/jira-skill

Two skills (jira-communication + jira-syntax) wrapping Jira Server/DC and Cloud APIs via shell — issues, JQL, sprints, worklogs, attachments, no Docker needed.

A Claude Code skill pack for Jira with no container dependency. jira-communication covers API operations (get / update / search by JQL / transition / comment / link / worklog / attach / board + sprint management). jira-syntax helps with Jira wiki markup. Works with Server/DC and Cloud via env-based credentials, includes an interactive jira-setup.py for config.

Why use it

Key features

Live Demo

What it looks like in practice

jira-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "jira-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/netresearch/jira-skill",
        "~/.claude/skills/jira-skill"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "jira-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/netresearch/jira-skill",
        "~/.claude/skills/jira-skill"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "jira-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/netresearch/jira-skill",
        "~/.claude/skills/jira-skill"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "jira-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/netresearch/jira-skill",
        "~/.claude/skills/jira-skill"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "jira-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/netresearch/jira-skill",
        "~/.claude/skills/jira-skill"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "jira-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/netresearch/jira-skill",
          "~/.claude/skills/jira-skill"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add jira-skill -- git clone https://github.com/netresearch/jira-skill ~/.claude/skills/jira-skill

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use jira-skill

Triage a sprint backlog and unstick blocked issues

👤 Scrum masters, tech leads ⏱ ~20 min beginner

When to use: Mid-sprint when velocity is dropping and you suspect blockers.

Prerequisites
  • Jira credentials configured — Run jira-setup.py and provide URL + email + API token (Cloud) or PAT (Server/DC)
  • Skill installed — git clone https://github.com/netresearch/jira-skill ~/.claude/skills/jira-skill
Flow
  1. List sprint issues by status
    Use jira-skill. List issues in sprint 'Sprint 42' grouped by status. Flag anything not updated in 3 days.✓ Copied
    → Grouped table with staleness markers
  2. Drill into blockers
    For the blocked issues, pull the last comment and linked issues — who's waiting on what?✓ Copied
    → Dependency summary
  3. Nudge owners
    Draft a comment on each blocked issue pinging the responsible party.✓ Copied
    → Per-issue drafts

Outcome: A clear list of unblock actions to drive in standup.

Pitfalls
  • Over-pinging — comments cost attention — Let Claude draft; post manually only the ones that matter
Combine with: github

Generate release notes from closed issues

👤 Release managers ⏱ ~15 min beginner

When to use: Cutting a release and need user-facing notes from the issue list.

Flow
  1. JQL for the release
    JQL: fixVersion = 1.42 AND status = Done. Pull summaries and types.✓ Copied
    → Ordered issue list
  2. Draft notes
    Group by type (Feature / Bug / Improvement) and write user-facing release notes — no internal jargon.✓ Copied
    → Markdown notes ready to publish

Outcome: Release notes in minutes instead of hours.

Combine with: github

Bulk-transition issues through a workflow

👤 Project admins ⏱ ~10 min intermediate

When to use: Moving a batch of issues between statuses (e.g. deploy-complete).

Flow
  1. Dry-run first
    Find all 'In Staging' issues with fixVersion = 1.42. Don't transition yet — just list.✓ Copied
    → List to confirm
  2. Transition
    Transition those to 'Done' with a comment 'Deployed to production in 1.42'.✓ Copied
    → Per-issue transition result

Outcome: Clean workflow state, nothing left in 'In Staging'.

Pitfalls
  • Missing required fields on transition — Skill surfaces the required field; supply it in the prompt

Summarize a team's worklog for the month

👤 Engineering managers, PMs tracking capacity ⏱ ~20 min intermediate

When to use: Month-end capacity review.

Flow
  1. Query worklogs
    Pull all worklogs for team members in project ACME for last month.✓ Copied
    → Per-person, per-issue hour totals
  2. Summarize
    Roll up to epic and share of total.✓ Copied
    → Top-level breakdown

Outcome: Capacity picture grounded in actual logged work.

Pitfalls
  • Worklogs aren't filled in — bad data — Flag people with 0 logs; don't draw conclusions from missing data

Combinations

Pair with other MCPs for X10 leverage

jira-skill + github

Link PRs to Jira issues or create Jira issues from GitHub bugs

For each GitHub issue labeled 'bug' opened this week, create a Jira ticket in project ACME.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
get_issue issue key Anytime 1 API call
search_jql JQL string Discovery 1 API call
create_issue project, type, summary, description Filing new issue 1 API call (write)
transition_issue key, transition id/name Workflow moves 1 API call (write)
add_comment key, body (jira-syntax ok) Nudges + notes 1 API call (write)
link_issues key, inward, link type Dependencies 1 API call
add_worklog key, time, comment Time tracking 1 API call
sprint_manage board, sprint, action Scrum ops 1 API call

Cost & Limits

What this costs to run

API quota
Jira Cloud: 10 req/sec per user typical; Server/DC is instance-configured
Tokens per call
Low — mostly API responses
Monetary
Free skill; Jira license separate
Tip
Use JQL server-side filters rather than pulling all and filtering client-side

Security

Permissions, secrets, blast radius

Minimum scopes: Read project; write only where needed (transition/comment)
Credential storage: JIRA_URL + JIRA_USER + JIRA_TOKEN in env; don't check into git
Data egress: Only to your Jira host
Never grant: Admin on the instance

Troubleshooting

Common errors and fixes

401 Unauthorized

Token missing or revoked; re-run jira-setup.py

Verify: curl -u $JIRA_USER:$JIRA_TOKEN $JIRA_URL/rest/api/2/myself
400 on transition

Transition requires a field you didn't provide — inspect transitions with get_transitions

Search returns 0 but issues exist

Your JQL or project permissions; verify the user can see the project

Alternatives

jira-skill vs others

AlternativeWhen to use it insteadTradeoff
Atlassian's official MCPYou prefer first-party integrationLess control over shell access

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills