Jira Integration Plugin

A plugin that works Jira from the agent terminal: JQL search, issues, sprints, worklogs and wiki markup validation

  • 90 ★ on the repository
  • Last commit
Plugin

Broad access

Why this level

  • Writes to a live Jira: creates and changes issues, statuses and comments and logs time as you
  • Keeps Jira credentials in an environment file read by the agent scripts
All reasons and checks

netresearch/jira-skill

Install

Manual install

/plugin install jira-integration@netresearch-claude-code-marketplace

First run `/plugin marketplace add netresearch/claude-code-marketplace`.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Writes to a live Jira: creates and changes issues, statuses and comments and logs time as you
  • Keeps Jira credentials in an environment file read by the agent scripts

This is third-party code. Review the repository files before installing.

What it does

The plugin holds two skills. `jira-communication` runs Python scripts against the Jira API: JQL search (`jira-search.py`), reading and updating issues (`jira-issue.py`), issue creation, status transitions, comments, sprints, boards, issue links, field ID lookup and attachment download. `jira-syntax` knows Jira wiki markup, description templates and validates markup before it is sent. Scripts run through Bash with `uv run`, so tool descriptions take no context as an MCP server would, and no container needs to start. Jira Server, Data Center and Cloud are supported. Every script has `--json`, `--quiet` and `--env-file` flags, and write commands accept `--dry-run` to show changes without applying them. `jira-setup.py` configures credentials interactively and `jira-validate.py` checks the environment.

Who it is for. Developers and team leads on Jira Server, Data Center or Cloud who manage issues, sprints and time tracking from a Claude Code or Cursor session.

Good fit when

  • You need all open bugs of a project found and triaged in an agent session
  • An issue must be created, moved to another status and commented without opening a browser
  • You need to log time with `jira-worklog.py add PROJ-123 "2h 30m"`
  • An issue description is written in Jira wiki markup and must be validated before sending

Not a fit when

  • The team works in Linear, YouTrack or another tracker: the plugin knows Jira only
  • You want an MCP server with described tools: the plugin deliberately works through Bash and scripts
  • The machine has no `uv` and Python and they cannot be installed

Example request

Find my open issues in the current sprint of project PROJ and log 2h 30m on PROJ-123 with a note about code review

Limitations

  • Python 3.11 or newer and `uv` are required, along with access to your Jira instance with credentials that `jira-setup.py` configures.
  • Scripts run through the agent's Bash, so the agent needs permission to run commands.
  • Installing with `npx skills` installs `SKILL.md`-based skills only and skips hooks; hooks need the marketplace or the skills directory.
  • The license is dual, MIT for code and CC-BY-SA-4.0 for materials, and the GitHub license field shows it as undefined.

How to disable. If installed from the skills directory, delete `~/.claude/skills/jira-integration`. For the marketplace run `/plugin uninstall jira-integration@netresearch-claude-code-marketplace`.

FAQ

How do I install the Jira plugin in Claude Code?

From the marketplace: `/plugin marketplace add netresearch/claude-code-marketplace`, then `/plugin install jira-integration@netresearch-claude-code-marketplace`. You can also clone into `~/.claude/skills/jira-integration`.

Which Jira versions are supported?

Jira Server, Data Center and Cloud. The scripts use the API, and the deployment type is set in the environment configuration.

How is it different from a Jira MCP server?

It runs Python scripts through Bash and loads no tool descriptions into context. An MCP server keeps tools permanently attached but spends context on their descriptions.

How do I preview changes before they go to Jira?

Add `--dry-run` to a write command: the script shows what would change and sends nothing. `jira-validate.py` checks the environment.

Does the plugin work in Cursor and Copilot?

Yes, the skills follow the open Agent Skills format, so Cursor, GitHub Copilot and other compatible agents read them. `npx skills add` installs the two skills separately.

Discussion

No questions or reviews yet.

Plugins

Jira CLI displays issues and sprints as tables or script data, keeping work-item queries in the terminal beside source code.

CLIExtended access6.1KRepository stars

Jira MCP in Go: an agent searches issues by JQL, runs sprints, comments and worklogs and sees an issue's branches and pull requests on Cloud and Server

MCP serverBroad access96Repository stars
Editors’ pick

An MCP server for Jira and Confluence, cloud and self-hosted: search, create and edit issues and pages

MCP serverBroad access6.1KRepository stars

A Redmine plugin with AI chat, issue summaries and an MCP server: an external agent works with Redmine issues via an API key.

PluginExtended access107Repository stars
Official

Atlassian's official cloud MCP server for Jira, Confluence, Jira Service Management, Bitbucket, Compass and Loom, with skills

MCP serverBroad access1.2KRepository stars
Official

Official Astravue plugin and MCP server: 87 tools for tasks, projects, time tracking and 8 ready planning skills.

PluginBroad access12Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
Jira Integration Plugin (this card)no90
Jira MCPnokey is optional96a Go MCP server with permanently attached tools, while this plugin works through Bash scripts with no context load
Jira CLIno6,069a terminal tool for people with issue tables, while this plugin gives an agent skills, JSON scripts and markup validation

README in short

The README describes a plugin of two skills and lists compatible platforms and benefits: no MCP, fast start and full API coverage. Six install routes follow, then a quick start with four command examples and script tables by group. Common options and scenario examples close it.

README badge

Original SKILL.md

---
# SPDX-License-Identifier: CC-BY-SA-4.0
# SPDX-FileCopyrightText: Netresearch DTT GmbH
name: jira-communication
description: "Use when handling Jira issues, sprints, boards, links, fields, worklogs, attachments, or users, or on any Jira intent without a key (\"create/find a ticket\", \"pick a project\"). Auto-triggers on Jira URLs and issue keys (PROJ-123). Also use when MCP Atlassian tools fail or are unavailable for Jira Server/DC."
license: "(MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.0"
compatibility: "Requires python 3.11+, uv. Jira Server/DC or Cloud instance with API access."
metadata:
  author: Netresearch DTT GmbH
  version: "4.3.3"
  repository: https://github.com/netresearch/jira-skill
allowed-tools: Bash(uv run ${CLAUDE_SKILL_DIR}/scripts/*) Bash(${CLAUDE_SKILL_DIR}/scripts/*) Read Write
---

# Jira Communication

CLI scripts via `uv run`, all supporting `--help`, `--json`, `--quiet`, `--debug`.

## Auto-Trigger

On Jira URL or issue key (PROJ-123), pick by **intent** — each is one call:

| Intent | Tool |
|---|---|
| triage / work on ticket | `jira-issue.py work KEY` |
| start QA review | `jira-issue.py qa KEY` |
| QA-fail follow-up | `jira-issue.py qa-fail KEY` |
| field-only lookup | `jira-issue.py get KEY --fields ...` |
| change status | `jira-issue.py act KEY` → `jira-transition.py do` |
| audit / sibling discovery / "am I reviewing my own work?" | `jira-qa-gather.py KEY` |

Auth issues → `jira-setup.py`. **Anti-pattern:** `get` + `comment list` — use the matching verb.

**`work` flags a ticket you have not taken:** when it is not assigned to you, or its status says nobody works on it (To Do category, a review status such as QA, or resolved), a `!! CLAIM KEY` notice on stderr (`claim` in `--json`) lists the commands — `jira-issue.py update KEY --assignee me`, then the start or reopen transition from `jira-transition.py list KEY`. Run them before your first comment, measurement or edit. `jira-comment.py add` warns once before posting when the ticket is neither yours nor in a working status; it still posts.

## Scripts

Under `${CLAUDE_SKILL_DIR}/scripts/{core,workflow,utility}/`.

**Core**: `jira-issue.py`, `jira-search.py`, `jira-worklog.py`, `jira-attachment.py`, `jira-setup.py`, `jira-validate.py`
**Workflow**: `jira-create.py`, `jira-transition.py`, `jira-comment.py`, `jira-move.py`, `jira-sprint.py`, `jira-board.py`, `jira-version.py`, `tempo-account.py`
**Utility**: `jira-user.py`, `jira-fields.py`, `jira-link.py`, `jira-weblink.py`, `jira-worklog-query.py`, `jira-watchers.py`, `jira-qa-gather.py`

## Execution Style

Report a problem