Claude-skill-registry atlassian-jira
Execute Jira operations including issue retrieval, creation, updates, search, and project management. Use when the user needs to interact with Jira issues, projects, boards, or perform any Jira-related tasks.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/atlassian-jira" ~/.claude/skills/majiayu000-claude-skill-registry-atlassian-jira && rm -rf "$T"
skills/data/atlassian-jira/SKILL.mdAtlassian Jira Tools
Provides type-safe Python tools for interacting with Jira through a progressive loading API that minimizes token usage.
Current Status
Available Tools: 1 (jira_get_issue) Planned Tools: 30+ additional Jira operations
This skill demonstrates the internalized MCP pattern. Additional tools will be added progressively.
Prerequisites
Required Environment Variables
Before using any Jira tools, set these environment variables:
export JIRA_URL="https://your-domain.atlassian.net" export JIRA_USERNAME="your-email@example.com" export JIRA_API_TOKEN="your-api-token"
Getting API Token:
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token"
- Give it a name and copy the token
- Use your email as JIRA_USERNAME and the token as JIRA_API_TOKEN
Installation
The Python package must be installed in your environment:
cd /Users/bono/Documents/01.Projects/MCP_Internalization/atlassian-internalized pip install -e .
Usage Pattern
Step 1: List Available Tools
python skills/atlassian-jira/scripts/execute_tool.py --list-tools
Returns:
{ "success": true, "tools": ["jira_get_issue"], "count": 1 }
Step 2: Get Tool Schema (Optional)
python skills/atlassian-jira/scripts/execute_tool.py jira_get_issue --schema
Returns detailed JSON schema for inputs and outputs.
Step 3: Execute Tool
python skills/atlassian-jira/scripts/execute_tool.py jira_get_issue --input '{ "issue_key": "PROJ-123", "fields": "summary,status,assignee", "comment_limit": 5 }'
Available Tools
jira_get_issue
Retrieve comprehensive information about a specific Jira issue.
Input Parameters:
(required): Issue key like "PROJ-123"issue_key
(optional): Comma-separated fields or "*all" for all fieldsfields
(optional): Fields to expand (e.g., "changelog,transitions")expand
(optional): Max comments to include (0-100, default: 10)comment_limit
Example:
# Get basic issue info python scripts/execute_tool.py jira_get_issue --input '{"issue_key": "PROJ-123"}' # Get specific fields only python scripts/execute_tool.py jira_get_issue --input '{ "issue_key": "PROJ-123", "fields": "summary,status,assignee,priority" }' # Get all fields with changelog python scripts/execute_tool.py jira_get_issue --input '{ "issue_key": "PROJ-123", "fields": "*all", "expand": "changelog" }' # Get issue without comments python scripts/execute_tool.py jira_get_issue --input '{ "issue_key": "PROJ-123", "comment_limit": 0 }'
Output:
{ "success": true, "issue": { "key": "PROJ-123", "id": "10001", "fields": { "summary": "Implement new feature", "status": {"name": "In Progress", "category": "In Progress"}, "assignee": {"display_name": "John Doe", "email": "john@example.com"}, "priority": {"name": "High"}, "created": "2025-01-14T10:00:00.000+0000", "updated": "2025-01-14T12:00:00.000+0000", "comments": [ { "author": "Jane Smith", "body": "This looks good", "created": "2025-01-14T11:00:00.000+0000" } ] } } }
Common Workflows
Get Issue Summary
Quick way to check an issue's current state:
python scripts/execute_tool.py jira_get_issue --input '{ "issue_key": "PROJ-123", "fields": "summary,status,assignee", "comment_limit": 0 }'
Get Full Issue Details
Retrieve all available information:
python scripts/execute_tool.py jira_get_issue --input '{ "issue_key": "PROJ-123", "fields": "*all", "comment_limit": 20 }'
Get Issue with Change History
See what changed over time:
python scripts/execute_tool.py jira_get_issue --input '{ "issue_key": "PROJ-123", "expand": "changelog" }'
Error Handling
All tools return structured responses with error information:
{ "success": false, "error": "Issue PROJ-999 not found" }
Common Errors
Authentication Failed:
Error: "Authentication failed. Check your credentials"
→ Verify JIRA_URL, JIRA_USERNAME, and JIRA_API_TOKEN are correct
Issue Not Found:
Error: "Issue PROJ-999 not found"
→ Check the issue key exists and you have permission to view it
Missing Environment Variables:
Error: "JIRA_URL environment variable is required"
→ Set all required environment variables
Invalid Input:
Error: "Input validation error: ..."
→ Check your input matches the schema (use --schema to see requirements)
Performance & Token Efficiency
Progressive Discovery
Tools are discovered without loading their implementation:
- Tool List: ~50 tokens
- Tool Schema: ~200 tokens per tool
- Tool Execution: Only loads when called
Data Filtering
Use field filters to reduce data transfer:
# Instead of getting all fields (large response) python scripts/execute_tool.py jira_get_issue --input '{"issue_key": "PROJ-123"}' # Get only what you need (small response) python scripts/execute_tool.py jira_get_issue --input '{ "issue_key": "PROJ-123", "fields": "summary,status", "comment_limit": 0 }'
Comment Limiting
Control how many comments are returned:
- No comments (fastest)comment_limit: 0
- Recent 5 commentscomment_limit: 5
- Maximum allowedcomment_limit: 100
Troubleshooting
Tool Not Found
If you get "Tool not found" errors:
-
Verify installation:
python -c "import atlassian_tools; print(atlassian_tools.list_tools('jira'))" -
Check you're in the correct directory:
cd /Users/bono/Documents/01.Projects/MCP_Internalization/atlassian-internalized -
Reinstall if needed:
pip install -e .
Script Execution Errors
If the script won't run:
-
Make it executable:
chmod +x skills/atlassian-jira/scripts/execute_tool.py -
Run with python explicitly:
python skills/atlassian-jira/scripts/execute_tool.py --list-tools
JSON Parsing Errors
If your input JSON is invalid:
-
Use single quotes around the JSON and double quotes inside:
--input '{"issue_key": "PROJ-123"}' -
Escape quotes if needed:
--input "{\"issue_key\": \"PROJ-123\"}" -
Use a JSON file:
--input "$(cat examples/get_issue.json | jq -c .input)"
Direct Python Usage
For programmatic access, use the Python API directly:
import asyncio import atlassian_tools # List available tools tools = atlassian_tools.list_tools(category='jira') print(tools) # ['jira_get_issue'] # Execute a tool async def main(): result = await atlassian_tools.execute_tool( 'jira_get_issue', {'issue_key': 'PROJ-123', 'comment_limit': 5} ) if result['data']['success']: issue = result['data']['issue'] print(f"Issue: {issue['fields']['summary']}") else: print(f"Error: {result['data']['error']}") asyncio.run(main())
Future Tools (Planned)
The following tools are planned for future releases:
- Create new issuesjira_create_issue
- Update existing issuesjira_update_issue
- Search issues with JQLjira_search
- Add comments to issuesjira_add_comment
- Move issues through workflowjira_transition_issue
- List all accessible projectsjira_list_projects- Plus 25+ more operations
Tips for Claude Code Usage
When using this skill in Claude Code:
- Start with discovery: Ask Claude to list available tools first
- Check schemas: Use
to understand inputs/outputs--schema - Use examples: Reference the examples/ directory for common patterns
- Filter data: Always specify which fields you need to reduce tokens
- Handle errors: Check the
field in responsessuccess
Related Skills
(planned) - Confluence page and space managementatlassian-confluence
Support
For issues, questions, or contributions:
- Project: atlassian-internalized
- Location:
/Users/bono/Documents/01.Projects/MCP_Internalization/atlassian-internalized - Documentation:
docs/internalization-log.md