
MCP JIRA Server
A Model Context Protocol server that enables AI assistants to create and manage JIRA issues with rich markdown formatting and automatic conversion to Atlassian Document Format.
README
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:
- The path specified by the
--config
command-line argument. - The path specified by the
MCP_JIRA_CONFIG_PATH
environment variable. - 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 toC:\Users\<username>\AppData\Roaming
)
- Linux:
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
- Log into your JIRA instance.
- Go to Account Settings (usually by clicking your avatar/profile picture).
- Navigate to Security > API token (the exact path might vary slightly depending on your JIRA version).
- Click Create API token.
- Give your token a descriptive label (e.g.,
mcp_jira_server_token
). - Copy the generated token immediately. You will not be able to see it again.
- 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
- Ensure all project dependencies, including Streamlit, are installed:
uv pip install -e .
- From the root of the project directory, run:
Or, ifstreamlit run mcp_jira/ui/app.py
mcp_jira
is installed in your environment and yourPYTHONPATH
is set up:PYTHONPATH=. streamlit run mcp_jira/ui/app.py
- Open the URL provided by Streamlit in your web browser.
Screenshot
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
- If running as root:
- Windows:
%LOCALAPPDATA%\MCPJira\mcp_jira\Logs\mcp_jira.log
(Note:%LOCALAPPDATA%
usually resolves toC:\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
- GitHub: codingthefuturewithai
- Email: codingthefuturewithai@gmail.com
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。