Loading...
Loading...
Use this skill when retrieving Jira tickets, analyzing requirements, updating ticket status, adding comments, or transitioning issues. Provides Jira API patterns via MCP or direct REST calls.
npx skill4agent add affaan-m/everything-claude-code jira-integrationmcp-atlassianuvxuvuv~/.claude.jsonmcpServers{
"jira": {
"command": "uvx",
"args": ["mcp-atlassian==0.21.0"],
"env": {
"JIRA_URL": "https://YOUR_ORG.atlassian.net",
"JIRA_EMAIL": "your.email@example.com",
"JIRA_API_TOKEN": "your-api-token"
},
"description": "Jira issue tracking — search, create, update, comment, transition"
}
}Security: Never hardcode secrets. Prefer setting,JIRA_URL, andJIRA_EMAILin your system environment (or a secrets manager). Only use the MCPJIRA_API_TOKENblock for local, uncommitted config files.env
curl| Variable | Description |
|---|---|
| Your Jira instance URL (e.g., |
| Your Atlassian account email |
| API token from id.atlassian.com |
mcp-atlassian| Tool | Purpose | Example |
|---|---|---|
| JQL queries | |
| Fetch full issue details by key | |
| Create issues (Task, Bug, Story, Epic) | New bug report |
| Update fields (summary, description, assignee) | Change assignee |
| Change status | Move to "In Review" |
| Add comments | Progress update |
| List issues in a sprint | Active sprint review |
| Link issues (Blocks, Relates to) | Dependency tracking |
| See linked PRs, branches, commits | Dev context |
Tip: Always callbefore transitioning — transition IDs vary per project workflow.jira_get_transitions
curl -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
"$JIRA_URL/rest/api/3/issue/PROJ-1234" | jq '{
key: .key,
summary: .fields.summary,
status: .fields.status.name,
priority: .fields.priority.name,
type: .fields.issuetype.name,
assignee: .fields.assignee.displayName,
labels: .fields.labels,
description: .fields.description
}'curl -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
"$JIRA_URL/rest/api/3/issue/PROJ-1234?fields=comment" | jq '.fields.comment.comments[] | {
author: .author.displayName,
created: .created[:10],
body: .body
}'curl -s -X POST -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"body": {
"version": 1,
"type": "doc",
"content": [{
"type": "paragraph",
"content": [{"type": "text", "text": "Your comment here"}]
}]
}
}' \
"$JIRA_URL/rest/api/3/issue/PROJ-1234/comment"# 1. Get available transitions
curl -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
"$JIRA_URL/rest/api/3/issue/PROJ-1234/transitions" | jq '.transitions[] | {id, name: .name}'
# 2. Execute transition (replace TRANSITION_ID)
curl -s -X POST -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"transition": {"id": "TRANSITION_ID"}}' \
"$JIRA_URL/rest/api/3/issue/PROJ-1234/transitions"curl -s -G -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
--data-urlencode "jql=project = PROJ AND status = 'In Progress'" \
"$JIRA_URL/rest/api/3/search"Ticket: PROJ-1234
Summary: [ticket title]
Status: [current status]
Priority: [High/Medium/Low]
Test Types: Unit, Integration, E2E
Requirements:
1. [requirement 1]
2. [requirement 2]
Acceptance Criteria:
- [ ] [criterion 1]
- [ ] [criterion 2]
Test Scenarios:
- Happy Path: [description]
- Error Case: [description]
- Edge Case: [description]
Test Data Needed:
- [data item 1]
- [data item 2]
Dependencies:
- [dependency 1]
- [dependency 2]| Workflow Step | Jira Update |
|---|---|
| Start work | Transition to "In Progress" |
| Tests written | Comment with test coverage summary |
| Branch created | Comment with branch name |
| PR/MR created | Comment with link, link issue |
| Tests passing | Comment with results summary |
| PR/MR merged | Transition to "Done" or "In Review" |
Starting implementation for this ticket.
Branch: feat/PROJ-1234-feature-nameAutomated tests implemented:
Unit Tests:
- [test file 1] — [what it covers]
- [test file 2] — [what it covers]
Integration Tests:
- [test file] — [endpoints/flows covered]
All tests passing locally. Coverage: XX%Pull request created:
[PR Title](https://github.com/org/repo/pull/XXX)
Ready for review.Implementation complete.
PR merged: [link]
Test results: All passing (X/Y)
Coverage: XX%.env.gitignore| Error | Cause | Fix |
|---|---|---|
| Invalid or expired API token | Regenerate at id.atlassian.com |
| Token lacks project permissions | Check token scopes and project access |
| Wrong ticket key or base URL | Verify |
| IDE cannot find | Use full path (e.g., |
| Connection timeout | Network/VPN issue | Check VPN connection and firewall rules |