hoibui/jira-mcp-server
If you are the rightful owner of jira-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A Model Context Protocol (MCP) server designed for downloading attachments from Jira issues, offering intelligent path detection and flexible storage options.
Jira Attachments MCP Server
A Model Context Protocol (MCP) server for downloading attachments from Jira issues.
Features
- List all attachments for a specific Jira issue
- Download individual attachments by ID
- Download all attachments from an issue at once
- 🧠 Intelligent path detection - Automatically determines download paths from natural language
- 🐳 Docker support - Run anywhere consistently with containerization
- 📁 Flexible storage - Download to any location with volume mounts
- ⚡ Context-aware - Smart folder organization based on file types and keywords
- Uses Jira REST API v3
Installation
Option 1: Docker (Recommended)
- Build the Docker image:
cd jira-mcp-server
npm run docker:build
- Test the server:
npm run docker:test
Option 2: Local Development
- Navigate to the server directory:
cd jira-mcp-server
- Install dependencies:
npm install
- Build the server:
npm run build
Configuration
Environment Variables
Set up the following environment variables:
export JIRA_BASE_URL="https://your-domain.atlassian.net"
# or alternatively
export ATLASSIAN_BASE_URL="https://your-domain.atlassian.net"
export ATLASSIAN_USER_EMAIL="your-email@domain.com"
export ATLASSIAN_API_TOKEN="your-api-token"
MCP Configuration
Docker Configuration (Recommended)
Add this to your MCP configuration file (e.g., .mcp.json):
{
"mcpServers": {
"jira-attachments": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ATLASSIAN_BASE_URL=https://your-domain.atlassian.net",
"-e", "ATLASSIAN_USER_EMAIL=your-email@domain.com",
"-e", "ATLASSIAN_API_TOKEN=your-api-token",
"-v", "/Users/$(whoami)/Downloads/jira-attachments:/app/downloads",
"-v", "$(pwd):/app/workspace",
"-w", "/app/workspace",
"jira-attachments-mcp:latest"
]
}
}
}
Local Configuration
For local development:
{
"mcpServers": {
"jira-attachments": {
"command": "node",
"args": ["/absolute/path/to/jira-mcp-server/dist/index.js"],
"env": {
"ATLASSIAN_BASE_URL": "https://your-domain.atlassian.net",
"ATLASSIAN_USER_EMAIL": "your-email@domain.com",
"ATLASSIAN_API_TOKEN": "your-api-token"
}
}
}
}
Available Tools
list_jira_attachments
Lists all attachments for a specific Jira issue.
Parameters:
issueKey(required): The Jira issue key (e.g., "PROJ-123")
Example:
Please list all attachments for issue ET-123
download_jira_attachment
Downloads a specific attachment from a Jira issue with intelligent path detection.
Parameters:
issueKey(required): The Jira issue key (e.g., "PROJ-123")attachmentId(required): The attachment ID to downloaddownloadPath(optional): Local path where to save the attachmentcontext(optional): Context for intelligent path detection (e.g., "design mockups", "bug screenshots")
Examples:
Download attachment ID 12345 from issue ET-123 for design review
Download attachment ID 67890 from ET-123 to ./custom-folder/
download_all_jira_attachments
Downloads all attachments from a Jira issue with intelligent path detection.
Parameters:
issueKey(required): The Jira issue key (e.g., "PROJ-123")downloadPath(optional): Local path where to save the attachmentscontext(optional): Context for intelligent path detection
Examples:
Download all attachments from ET-123 for UI testing
Download all attachments from ET-123 to .claude/workflows/tickets
Usage Examples
🧠 Intelligent Path Detection
The server automatically determines the best download location based on your natural language:
# Design workflows
"Download design mockups from ET-123"
→ Automatically saves to: ./design-assets/
"Download UI screenshots from ET-123 for testing"
→ Automatically saves to: ./screenshots/
"Download API documentation images from ET-123"
→ Automatically saves to: ./docs/api/
# Project-specific paths
"Download React component designs from ET-123"
→ Automatically saves to: ./src/assets/
"Download mobile app wireframes from ET-123"
→ Automatically saves to: ./assets/images/
📁 Explicit Path Control
# Specify exact locations
"Download all attachments from ET-123 to .claude/workflows/tickets"
"Download all attachments from ET-123 to ./custom-folder/"
"Download all attachments from ET-123 to /Users/$(whoami)/Documents/project-assets"
📋 Basic Operations
-
List attachments:
Please list all attachments for issue ET-123 -
Download with context:
Download bug screenshots from ET-123 for documentation Download presentation files from ET-123 for client meeting
🐳 Docker Usage
Quick Start
# Build the image
npm run docker:build
# Test the server
npm run docker:test
# Run with volume mounts
docker run -i --rm \
-e ATLASSIAN_BASE_URL="https://your-domain.atlassian.net" \
-e ATLASSIAN_USER_EMAIL="your-email@domain.com" \
-e ATLASSIAN_API_TOKEN="your-api-token" \
-v "$(pwd):/app/workspace" \
-v "/Users/$(whoami)/Downloads/jira-attachments:/app/downloads" \
-w "/app/workspace" \
jira-attachments-mcp:latest
Volume Mount Examples
# Default downloads to ~/Downloads/jira-attachments/
-v "/Users/$(whoami)/Downloads/jira-attachments:/app/downloads"
# Project-specific assets
-v "/Users/$(whoami)/Documents/project-assets:/app/assets"
# Current project workspace
-v "$(pwd):/app/workspace"
Docker Compose
See for a complete setup example.
🧠 Intelligent Path Detection
The server features smart path detection that automatically chooses download locations based on context:
Smart Keywords
- Design:
design,mockup,wireframe,figma→./design-assets/ - Testing:
bug,screenshot,test,qa→./test-assets/or./screenshots/ - Documentation:
docs,api,spec→./docs/api/or./docs/images/ - Development:
react,frontend,mobile→./src/assets/or./assets/images/ - Media:
image,video,pdf→./images/,./videos/,./documents/
See for comprehensive examples.
File Naming
Downloaded files are automatically prefixed with the issue key to avoid conflicts:
- Format:
{ISSUE_KEY}_{original_filename} - Example:
ET-123_document.pdf
Requirements
Docker (Recommended)
- Docker Engine 20.10+
- Valid Jira API token with appropriate permissions
- Access to the Jira instance and issues you want to download from
Local Development
- Node.js 18+
- Valid Jira API token with appropriate permissions
- Access to the Jira instance and issues you want to download from
Authentication
The server uses HTTP Basic Authentication with:
- Username: Your Atlassian account email
- Password: Your Atlassian API token
To create an API token:
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token"
- Copy the generated token and use it as
ATLASSIAN_API_TOKEN
Troubleshooting
Authentication Issues
- Authentication errors: Verify your email and API token are correct
- Invalid token: Generate a new API token at https://id.atlassian.com/manage-profile/security/api-tokens
- Permission denied: Ensure your account has access to the Jira project
Download Issues
- Issue not found: Ensure the issue key exists and you have permission to view it
- No attachments: The issue might not have any attachments
- Download errors: Check file permissions and available disk space
- Path not created: Verify volume mounts are correct in Docker
Docker Issues
- Image not found: Run
npm run docker:buildto build the image - Permission errors: Check volume mount permissions
- Network issues: Ensure Docker can access external networks
Path Detection
- Unexpected path: Use more specific context keywords or explicit paths
- Directory not created: Check write permissions in the target location
Security Notes
- API tokens should be kept secure and not committed to version control
- The server creates directories if they don't exist
- Files are downloaded to the specified path without additional validation