Jira Issue Update
IMPORTANT: Always use this skill's Python script for updating Jira issues. Do NOT use mcp__atlassian__editJiraIssue or mcp__atlassian__transitionJiraIssue - this skill uses a shared cache for users, priorities, and components, and provides better error messages.
Quick Start
Use the Python script at scripts/update_jira_issue.py:
# Update status
python scripts/update_jira_issue.py PROJ-123 --status "In Progress"
# Update assignee
python scripts/update_jira_issue.py PROJ-123 --assignee "John Smith"
# Add a comment
python scripts/update_jira_issue.py PROJ-123 --comment "Working on this now"
# Multiple updates at once
python scripts/update_jira_issue.py PROJ-123 \
--status "In Progress" \
--assignee "Jane Doe" \
--priority High \
--add-labels "urgent"
Update Options
| Option | Description |
|---|---|
--summary, -s | Update issue title |
--description, -d | Update issue description |
--status | Transition to new status |
--priority | Update priority (High, Medium, Low, etc.) |
--assignee, -a | Update assignee (partial name match) |
--unassign | Remove assignee |
--labels, -l | Set labels (replaces existing) |
--add-labels | Add labels to existing |
--remove-labels | Remove specific labels |
--components, -c | Set components (replaces existing) |
--comment | Add a comment |
--format, -f | Output: compact (default), text, json |
Status Transitions
Jira issues follow workflows. To change status, use --status:
# Transition to "In Progress"
python scripts/update_jira_issue.py PROJ-123 --status "In Progress"
# List available transitions
python scripts/update_jira_issue.py PROJ-123 --list-transitions
The script matches both transition names (e.g., "Start Progress") and target status names (e.g., "In Progress").
Common Workflows
Start Working on an Issue
python scripts/update_jira_issue.py PROJ-123 \
--status "In Progress" \
--assignee "me" \
--comment "Starting work on this"
Complete an Issue
python scripts/update_jira_issue.py PROJ-123 \
--status "Done" \
--comment "Completed and deployed"
Reassign and Reprioritize
python scripts/update_jira_issue.py PROJ-123 \
--assignee "Jane Doe" \
--priority Critical \
--add-labels "escalated"
Add Labels Without Replacing
# Add new labels while keeping existing ones
python scripts/update_jira_issue.py PROJ-123 --add-labels "reviewed,approved"
# Remove specific labels
python scripts/update_jira_issue.py PROJ-123 --remove-labels "needs-review"
Update Description
python scripts/update_jira_issue.py PROJ-123 \
--description "Updated requirements: must support dark mode"
Output Formats
compact (default):
UPDATED|PROJ-123|Fix login bug|In Progress|Bug|P:High|@jsmith
Changes:status->In Progress,comment
URL:https://yoursite.atlassian.net/browse/PROJ-123
text:
Issue Updated: PROJ-123
Summary: Fix login bug
Status: In Progress
Type: Bug
Priority: High
Assignee: John Smith
Changes: status->In Progress, comment
URL: https://yoursite.atlassian.net/browse/PROJ-123
json:
{"key":"PROJ-123","summary":"Fix login bug","status":"In Progress","changes":["status->In Progress","comment"],"url":"..."}
Shared Cache
This skill shares a cache (~/.jira-tools-cache.json) with other jira-tools skills:
- Users (for assignee lookups)
- Priorities
- Components
Manage cache via:
python shared/jira_cache.py info # View cache status
python shared/jira_cache.py clear # Clear cache
Environment Setup
Requires three environment variables:
JIRA_BASE_URL- e.g.,https://yoursite.atlassian.netJIRA_EMAIL- Your Jira account emailJIRA_API_TOKEN- API token from Atlassian account settings
Why Not Use Atlassian MCP Directly?
mcp__atlassian__editJiraIssue and mcp__atlassian__transitionJiraIssue:
- Require looking up user account IDs separately
- Require looking up transition IDs separately
- No caching - repeated API calls for metadata
- Verbose output wastes tokens
This skill's script:
- Caches user/priority/component metadata
- Accepts human-readable names (not IDs)
- Automatically finds matching transitions
- Returns token-efficient output
Always prefer this skill over direct MCP calls for Jira updates.
Reference
For detailed field options and error codes, see references/options-reference.md.
