A comprehensive Claude Code skill that provides intelligent guidance for managing JIRA issues, projects, and workflows through the Atlassian MCP server.
- What is a Skill?
- How This Skill Works
- Installing with Skilz
- Manual Installation
- Prerequisites
- Quick Start
- Features
- Common Workflows
- Best Practices
- Troubleshooting
- Contributing
A skill is an instruction manual that teaches Claude Code how to use MCP (Model Context Protocol) tools effectively. Think of it this way:
- MCP Server (Atlassian MCP) = The tool that provides access to JIRA APIs
- Skill (this repository) = The instruction manual that guides Claude on best practices, workflows, and patterns for using that tool
Claude Code can discover and use MCP tools automatically, but skills provide the critical context, workflows, and domain expertise that make interactions efficient, reliable, and consistent with your team's practices.
This skill works hand-in-glove with the Atlassian MCP server (mcp__atlassian). The MCP provides raw access to JIRA's API capabilities, while this skill provides:
- Structured workflows for common JIRA operations
- Field discovery patterns for handling custom fields
- JQL query construction guidance and examples
- Best practices for issue creation, transitions, and agile operations
- Troubleshooting guides for common errors
- Validation patterns to ensure reliable operations
When you ask Claude Code to work with JIRA, this skill ensures operations follow proven patterns, validate inputs properly, and handle JIRA's complexity gracefully.
The recommended way to install this skill across different AI coding agents is using the skilz universal installer.
pip install skilzThis skill supports Agent Skill Standard which means it supports 14 plus coding agents including Claude Code, OpenAI Codex, Cursor and Gemini.
You can use either -g or --git with HTTPS or SSH URLs:
# HTTPS URL
skilz install -g https://github.com/SpillwaveSolutions/jira
# SSH URL
skilz install --git git@github.com:SpillwaveSolutions/jira.gitInstall to user home (available in all projects):
skilz install -g https://github.com/SpillwaveSolutions/jiraInstall to current project only:
skilz install -g https://github.com/SpillwaveSolutions/jira --projectInstall for OpenCode:
skilz install -g https://github.com/SpillwaveSolutions/jira --agent opencodeProject-level install:
skilz install -g https://github.com/SpillwaveSolutions/jira --project --agent opencodeProject-level install for Gemini:
skilz install -g https://github.com/SpillwaveSolutions/jira --agent geminiInstall for OpenAI Codex:
skilz install -g https://github.com/SpillwaveSolutions/jira --agent codexProject-level install:
skilz install -g https://github.com/SpillwaveSolutions/jira --project --agent codex# Claude to user home dir ~/.claude/skills
skilz install SpillwaveSolutions_jira/jira
# Claude skill in project folder ./claude/skills
skilz install SpillwaveSolutions_jira/jira --project
# OpenCode install to user home dir ~/.config/opencode/skills
skilz install SpillwaveSolutions_jira/jira --agent opencode
# OpenCode project level
skilz install SpillwaveSolutions_jira/jira --agent opencode --project
# OpenAI Codex install to user home dir ~/.codex/skills
skilz install SpillwaveSolutions_jira/jira
# OpenAI Codex project level ./.codex/skills
skilz install SpillwaveSolutions_jira/jira --agent opencode --project
# Gemini CLI (project level) -- only works with project level
skilz install SpillwaveSolutions_jira/jira --agent gemini
See this site skill Listing to see how to install this exact skill to 14+ different coding agents.
Skilz supports 14+ coding agents including Claude Code, OpenAI Codex, OpenCode, Cursor, Gemini CLI, GitHub Copilot CLI, Windsurf, Qwen Code, Aidr, and more.
For the full list of supported platforms, visit SkillzWave.ai/platforms or see the skilz-cli GitHub repository
Largest Agentic Marketplace for AI Agent Skills and SpillWave: Leaders in AI Agent Development.
This skill can be installed at multiple levels depending on your organizational structure and needs:
Install in your home directory for use across all projects:
~/.claude/skills/jira/Use case: You work with a single JIRA instance across all projects.
Install within a specific project directory:
/path/to/project/.claude/skills/jira/Use case: Project-specific JIRA configuration or custom workflows that differ from other projects.
Install at a workspace directory that groups multiple related projects:
~/workspace/acme-corp/.claude/skills/jira/
~/workspace/tech-startup/.claude/skills/jira/Use case:
- Client-based workspaces: Different skills/configs for different clients
- Department-based workspaces: Engineering vs Operations vs Support teams
- Company-based workspaces: Multiple clients with different JIRA instances
Claude Code follows this priority order when loading skills:
- Project-level (
.claude/skills/in current directory) - Workspace-level (
.claude/skills/in parent directories) - Global-level (
~/.claude/skills/in home directory)
This allows project-specific customizations to override workspace or global defaults.
For organizations that need to connect to multiple JIRA instances (multiple clients, acquisitions, different departments), you can configure the Atlassian MCP at different levels using .mcp.json files.
Scenario: You're a consultant working with multiple clients, each with their own Atlassian instance.
# Client 1 workspace
~/clients/acme-industries/
├── .mcp.json # JIRA config for acme-industries.atlassian.net
├── .claude/
│ ├── skills/jira/ # Client-specific JIRA workflows (optional)
│ └── settings.local.json
├── project-alpha/
└── project-beta/
# Client 2 workspace
~/clients/globex-corp/
├── .mcp.json # JIRA config for globex.atlassian.net
├── .claude/
│ ├── skills/jira/ # Client-specific JIRA workflows (optional)
│ └── settings.local.json
├── web-app/
└── mobile-app/Scenario: Large organization with different JIRA instances per department.
# Engineering workspace
~/workspaces/engineering/
├── .mcp.json # JIRA config for eng.company.atlassian.net
├── .claude/skills/jira/ # Engineering-specific workflows
├── backend-services/
└── frontend-apps/
# Operations workspace
~/workspaces/operations/
├── .mcp.json # JIRA config for ops.company.atlassian.net
├── .claude/skills/jira/ # Operations-specific workflows
├── infrastructure/
└── monitoring/Each workspace can have its own .mcp.json file with JIRA credentials:
{
"mcpServers": {
"atlassian": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-atlassian"],
"env": {
"JIRA_URL": "https://acme-industries.atlassian.net",
"JIRA_API_TOKEN": "your-api-token-here",
"JIRA_EMAIL": "your-email@acme-industries.com",
"JIRA_PROJECTS_FILTER": "ENG,API,WEB"
}
}
}
}Claude Code uses this priority for .mcp.json files:
- Project directory (most specific)
- Workspace directory (parent directories)
- Global config (
~/.claude/mcp.json)
This allows you to:
- Connect to different JIRA instances per workspace
- Use different credentials per client/department
- Override global JIRA settings for specific projects
- Maintain separate JIRA configurations without conflicts
The Atlassian MCP server must be configured in Claude Code:
npm install -g @modelcontextprotocol/server-atlassianConfigure in ~/.claude/mcp.json or workspace-level .mcp.json:
{
"mcpServers": {
"atlassian": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-atlassian"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_API_TOKEN": "your-api-token",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_PROJECTS_FILTER": "PROJ1,PROJ2"
}
}
}
}Generate a JIRA API token:
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token"
- Copy the token and add to your
.mcp.jsonconfiguration
Ensure your JIRA account has appropriate permissions for:
- Creating/updating issues
- Searching issues
- Managing sprints/epics (if using Agile features)
- Transitioning issues through workflows
Using Skilz (recommended):
pip install skilz
skilz install -g https://github.com/SpillwaveSolutions/jiraOr manually:
# Global installation
mkdir -p ~/.claude/skills/
cd ~/.claude/skills/
git clone https://github.com/SpillwaveSolutions/jira.git jiraCreate or update .mcp.json at the appropriate level:
{
"mcpServers": {
"atlassian": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-atlassian"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_API_TOKEN": "your-token-here",
"JIRA_EMAIL": "your-email@example.com"
}
}
}
}Simply ask Claude Code to work with JIRA:
"Create a JIRA task in project ENG for implementing user authentication"
"Search JIRA for all open bugs assigned to me"
"Move ticket ENG-123 to Done"
"Show me the active sprint for our board"
Claude Code will automatically:
- Validate project keys
- Discover custom fields
- Construct proper JQL queries
- Handle workflows and transitions
- Follow best practices from this skill
- Create issues (Task, Bug, Story, Epic, Subtask)
- Update issue fields (priority, assignee, custom fields)
- Search with JQL (comprehensive query patterns)
- Get issue details
- Delete issues
- Batch create multiple issues
- Get available transitions for an issue
- Transition issues between states
- Add required fields during transitions
- Handle workflow-specific requirements
- Work with boards and sprints
- Create and update sprints
- Move issues to sprints
- Track epic progress
- Link issues to epics
- Sprint planning workflows
- Add comments with Markdown support
- Upload attachments
- Create issue links (Blocks, Relates, Duplicates)
- Create remote links (Confluence, web URLs)
- Search fields by keyword
- Discover custom field IDs and types
- Validate field formats
- Handle project-specific fields
- Create multiple issues efficiently
- Get changelogs for multiple issues
- Bulk operations on issue sets
~/.claude/skills/jira/
├── CLAUDE.md # Architecture guide for Claude Code
├── README.md # This file
├── SKILL.md # Detailed skill documentation
├── templates/
│ └── issue_creation.json # Issue creation templates
├── references/
│ └── jql_guide.md # Comprehensive JQL reference
├── scripts/ # Utility scripts (future)
└── assets/ # Additional resources
Comprehensive workflow documentation including:
- Issue creation workflow (step-by-step)
- Custom field discovery methodology
- JQL query patterns
- Agile/Scrum operations
- Troubleshooting guide
- Best practices
Complete JQL (JIRA Query Language) reference:
- All operators and functions
- Date/time queries
- Historical search operators
- Sprint and epic queries
- 50+ common use cases
- Best practices and common pitfalls
Standard templates for:
- Basic tasks
- Bug reports with reproduction steps
- User stories with acceptance criteria
- Epics
- Subtasks
- Issues with custom fields
- Batch creation examples
Architecture and patterns guide for Claude Code instances, documenting:
- Core workflow patterns
- Critical validation steps
- Custom field discovery methodology
- Common command patterns
"Create a JIRA task in project ENG for implementing rate limiting"
"Create a bug in project API: Login endpoint returns 500 error"
"Create an epic in project MOBILE for offline support feature"
"Search JIRA for all open bugs in project ENG assigned to me"
"Find all issues in the current sprint"
"Show me overdue issues in project API"
"Find all stories without acceptance criteria"
"Move ENG-123 to In Progress"
"Transition API-456 to Done"
"Show available transitions for MOBILE-789"
"Show me the active sprint for board 1000"
"Create a sprint named 'Sprint 15' for board 1000"
"Add ENG-123 and ENG-124 to the current sprint"
"Link story ENG-200 to epic ENG-100"
"Find custom fields with keyword 'owning team'"
"Search for fields containing 'acceptance criteria'"
"What custom fields are available in project ENG?"
Never assume project keys - always verify before operations:
"What projects are available in JIRA?"
Use field search before working with custom fields:
"Find custom fields with keyword 'story points'"
Leverage JQL functions and operators:
"Search JIRA with: project = ENG AND status = 'In Progress' AND assignee = currentUser()"
Create multiple related tickets at once:
"Create 5 tasks in project ENG for: setup, config, test, docs, deploy"
Always link related work:
"Create issue link: ENG-123 blocks ENG-124"
- Use
"What projects are available?"to see available projects - Check
JIRA_PROJECTS_FILTERenvironment variable in.mcp.json - Verify project key is exact (case-sensitive)
- Ask:
"Search for required fields in project ENG" - Check project configuration
- Some fields required by workflow, not project
- Ask:
"Show available transitions for ENG-123" - Current status matters for available transitions
- Check permissions
- Ask:
"Find custom fields with keyword 'team'" - Use discovered field ID format:
customfield_10010 - Check if field applies to the issue type
- Verify correct
.mcp.jsonis loaded for workspace/project - Check
JIRA_URLin environment configuration - Ensure API token matches the JIRA instance
This JIRA skill can work alongside other Claude Code skills:
Process action items into JIRA tickets:
"Create JIRA tickets from these meeting action items in project ENG"
Reference project context when creating tickets:
"Create ticket in the project we're currently working on"
Link JIRA tickets to documentation:
"Create remote link from ENG-123 to our Confluence page"
See references/jql_guide.md for:
- 50+ common JQL patterns
- Historical search operators
- Sprint and epic management
- Date functions and relative time
- Best practices and pitfalls
See templates/issue_creation.json for:
- Batch creation examples
- Field format reference
- Multi-issue workflows
The scripts/ directory can contain custom automation:
- Bulk issue creation from CSV
- Sprint reports
- Issue analysis and metrics
- Custom workflows
cd ~/.claude/skills/jira # or workspace/project path
git pull origin mainYou can customize this skill by:
- Modifying templates in
templates/issue_creation.json - Adding custom JQL patterns to
references/jql_guide.md - Documenting team workflows in
SKILL.md - Creating automation scripts in
scripts/ - Adjusting field mappings for project-specific custom fields
Keep skill customizations in version control:
cd ~/.claude/skills/jira # or workspace path
git remote add team-fork https://github.com/your-org/jira-skill-fork.git
git push team-fork mainThis allows sharing customizations across your team.
For issues or questions:
- Check SKILL.md for detailed workflows
- Review references/jql_guide.md for JQL help
- Consult Atlassian MCP documentation
- Verify .mcp.json configuration
- Check JIRA permissions for your account
- Review CLAUDE.md for architecture patterns
To improve this skill:
- Document new workflows in
SKILL.md - Add JQL patterns to
references/jql_guide.md - Create templates in
templates/ - Share automation scripts in
scripts/ - Update best practices based on experience
This skill is designed for use with Claude Code and the Atlassian MCP server.