Sponsored by Deepsite.site

MCP JIRA Server

Created By
codingthefuturewithai7 months ago
MCP (Model Context Protocol) server for JIRA integration
Content

MCP JIRA Server

A Model Context Protocol (MCP) server that provides seamless JIRA integration for AI tools. Create and manage JIRA issues with rich markdown formatting, automatic conversion to Atlassian Document Format (ADF), and flexible field management.

Overview

This MCP server enables AI assistants to interact directly with JIRA instances through the JIRA REST API v3. It handles the complexity of markdown-to-ADF conversion, field mapping, and multi-site configuration, allowing AI tools to create well-formatted JIRA issues with minimal setup.

Key architectural components:

  • MCP Server: FastMCP-based server with stdio/SSE transport support
  • JIRA Client: Direct REST API integration with authentication handling
  • Markdown Converter: Converts markdown to Atlassian Document Format (ADF)
  • Configuration System: Multi-site JIRA configuration with flexible site selection
  • Field Management: Support for both standard and custom JIRA fields

Features

  • Rich Markdown Support: Convert markdown descriptions to properly formatted ADF with support for:

    • Headers, paragraphs, and text formatting (bold, italic, inline code)
    • Fenced code blocks with syntax highlighting
    • Bullet and numbered lists
    • Tables and complex formatting elements
  • Flexible Field Management:

    • Create and update JIRA issues with standard fields: project, summary, description, issue type.
    • Robust assignee handling: Provide an email address, and the server resolves it to the correct JIRA accountId for reliable assignment.
    • additional_fields parameter supports labels, priority, due dates, and other custom fields.
    • Graceful degradation for unavailable fields across different JIRA configurations.
  • Multi-Site Configuration: Support for multiple JIRA instances with site aliases, configurable in config.yaml.

  • Comprehensive Error Handling: Detailed error messages and logging.

  • Transport Flexibility: Support for both stdio and SSE transport modes.

Installation

From Source

# Clone the repository
git clone https://github.com/codingthefuturewithai/mcp_jira.git
cd mcp_jira

# Create and activate a virtual environment using UV
uv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install in development mode using UV
uv pip install -e .

Configuration

JIRA Configuration

The server requires a config.yaml file to connect to your JIRA instance(s). The server will attempt to load this file from the following locations, in order of precedence:

  1. The path specified by the --config command-line argument.
  2. The path specified by the MCP_JIRA_CONFIG_PATH environment variable.
  3. The default OS-specific user configuration directory:
    • Linux: ~/.config/mcp_jira/config.yaml
    • macOS: ~/Library/Application Support/mcp_jira/config.yaml
    • Windows: %APPDATA%\MCPJira\mcp_jira\config.yaml (Note: %APPDATA% usually resolves to C:\Users\<username>\AppData\Roaming)

If the configuration file is not found at any of these locations, the server will automatically create the necessary directory (if it doesn't exist) and a template config.yaml file at the default OS-specific path. You will then need to edit this template with your actual JIRA site details.

Example of a filled-in config.yaml:

name: "My Company JIRA Integration"
log_level: "INFO" # Supported levels: DEBUG, INFO, WARNING, ERROR, CRITICAL

default_site_alias: "prod_jira"

sites:
  prod_jira:
    url: "https://mycompany.atlassian.net"
    email: "automation-user@mycompany.com"
    api_token: "abc123xyz789efg_your_token_here_jkl"
    cloud: true

  dev_jira:
    url: "https://dev-mycompany.atlassian.net"
    email: "dev-automation@mycompany.com"
    api_token: "another_token_for_dev_environment"
    cloud: true

# Optional: Advanced logging configuration (defaults are usually sufficient)
# log_file_path: "/var/log/custom_mcp_jira/activity.log" # Overrides default log file paths
# log_max_bytes: 20971520  # Max log file size in bytes (e.g., 20MB)
# log_backup_count: 10     # Number of backup log files to keep

JIRA API Token

  1. Log into your JIRA instance.
  2. Go to Account Settings (usually by clicking your avatar/profile picture).
  3. Navigate to Security > API token (the exact path might vary slightly depending on your JIRA version).
  4. Click Create API token.
  5. Give your token a descriptive label (e.g., mcp_jira_server_token).
  6. Copy the generated token immediately. You will not be able to see it again.
  7. Add the copied token to your config.yaml file.

Configuration Editor UI

This project includes a web-based configuration editor built with Streamlit to easily manage your config.yaml file.

Features

  • View and edit all general settings (Server Name, Log Level, Default Site Alias).
  • View, edit, add, and delete JIRA site configurations (Alias, URL, Email, API Token, Cloud status).
  • Changes are saved directly to the config.yaml file used by the MCP server.
  • The editor automatically uses the same configuration file path logic as the server itself (CLI override, environment variable, or OS-specific default).

Running the Editor

  1. Ensure all project dependencies, including Streamlit, are installed:
    uv pip install -e .
    
  2. From the root of the project directory, run:
    streamlit run mcp_jira/ui/app.py
    
    Or, if mcp_jira is installed in your environment and your PYTHONPATH is set up:
    PYTHONPATH=. streamlit run mcp_jira/ui/app.py
    
  3. Open the URL provided by Streamlit in your web browser.

Screenshot

MCP JIRA Server Configuration Editor

Usage

Running the MCP Server

# Run with stdio transport (default)
mcp_jira-server

# Run with SSE transport
mcp_jira-server --transport sse --port 3001

# Use custom configuration file
mcp_jira-server --config /path/to/config.yaml

Available Tools

This server exposes the following tools for interacting with JIRA:

create_jira_issue

Creates a new JIRA issue. You can specify the project, summary, a detailed description in markdown (which will be converted to JIRA's rich text format), issue type, assignee, and other custom fields.

update_jira_issue

Updates an existing JIRA issue. You can modify fields such as the summary, description (markdown supported), assignee, issue type, or other custom fields. Only the fields you provide will be changed.

Logging

The server logs activity to both stderr and a rotating log file.

Log File Locations: Log files are stored in OS-specific locations by default:

  • macOS: ~/Library/Logs/mcp_jira/mcp_jira.log
  • Linux:
    • If running as root: /var/log/mcp_jira/mcp_jira.log
    • If running as non-root: ~/.local/state/mcp_jira/mcp_jira.log
  • Windows: %LOCALAPPDATA%\MCPJira\mcp_jira\Logs\mcp_jira.log (Note: %LOCALAPPDATA% usually resolves to C:\Users\<username>\AppData\Local)

Configuration: Logging behavior (level, file path, rotation settings) is configured via the config.yaml file. See the example config.yaml in the "Configuration" section for details on log_level, log_file_path, log_max_bytes, and log_backup_count.

The log level can also be overridden using the MCP_JIRA_LOG_LEVEL environment variable. If set, this environment variable takes precedence over the log_level in config.yaml.

# Example: Set log level to DEBUG for detailed API communication
MCP_JIRA_LOG_LEVEL=DEBUG mcp_jira-server

Valid log levels: DEBUG, INFO (default if not specified), WARNING, ERROR, CRITICAL.

Requirements

  • Python 3.11 or later (< 3.13)
  • Operating Systems: Linux, macOS, Windows
  • Network access to JIRA instance(s)
  • Valid JIRA API token(s)

Development

See DEVELOPMENT.md for detailed development instructions, including:

  • Setting up the development environment
  • Running tests
  • Contributing guidelines
  • Architecture overview

Troubleshooting

Common Issues

Authentication Errors

  • Verify API token is correct and hasn't expired
  • Ensure email address matches JIRA account
  • Check JIRA instance URL is accessible

Field Errors

  • Use additional_fields for custom or optional fields
  • Check field availability in your JIRA configuration
  • Server gracefully ignores unavailable fields

Markdown Conversion Issues

  • Ensure fenced code blocks use proper syntax
  • Complex tables may need manual formatting
  • Check logs for conversion warnings

Connection Issues

  • Verify network connectivity to JIRA instance
  • Check firewall/proxy settings
  • Ensure JIRA REST API v3 is accessible

License

This project is licensed under the MIT License. See the LICENSE file for details.

Author

Coding the Future with AI

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
WindsurfThe new purpose-built IDE to harness magic
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
CursorThe AI Code Editor
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Amap Maps高德地图官方 MCP Server
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
Serper MCP ServerA Serper MCP Server
Tavily Mcp
Playwright McpPlaywright MCP server
ChatWiseThe second fastest AI chatbot™
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
DeepChatYour AI Partner on Desktop
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code