Provides comprehensive access to JIRA's API with tools for managing issues, searching with JQL, handling comments and attachments, executing workflow transitions, and managing projects. Supports custom fields with automatic resolution and type conversion, and offers multiple authentication methods including Kerberos, API tokens, and basic auth.
MCP JIRA Server
A comprehensive Model Context Protocol (MCP) server for JIRA built with FastMCP that provides full API access with Kerberos authentication and extensive custom fields support.
Features
β‘ FastMCP Framework: Built with FastMCP 2.0 for simplified, decorator-based server implementation
π Kerberos/GSSAPI Authentication: Native support for enterprise Kerberos authentication
π« Multiple Auth Methods: Kerberos, API Token, and Basic Authentication
π§ Custom Fields: Automatic field resolution and type conversion
π Complete Operations: Issues, Search, Comments, Attachments, Transitions, Projects
π Retry Logic: Automatic retry with backoff for failed requests
πΎ Field Caching: Efficient custom field metadata caching
Installation
Prerequisites
Python 3.10 or higher
Access to a JIRA instance
For Kerberos: Valid Kerberos ticket or keytab file
Install UV (Recommended)
If you don't have uv installed, install it first:
Create Virtual Environment and Install Dependencies
Using uv (recommended - fast and efficient):
Using pip (alternative):
Note: This project uses FastMCP 2.0, which provides a streamlined decorator-based approach to building MCP servers. Using
uvis recommended for faster dependency resolution and installation.
Kerberos Setup
macOS
Linux (Ubuntu/Debian)
Initialize Kerberos Ticket
Configuration
Create a .env file in the project root:
Edit .env with your JIRA configuration:
Usage
Running the Server
Make sure your virtual environment is activated first:
MCP Client Configuration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
Other MCP Clients
The server uses stdio transport and can be integrated with any MCP client that supports stdio.
Available Tools
Issue Operations
jira_create_issue: Create new issue with custom fieldsjira_get_issue: Get issue detailsjira_update_issue: Update issue fieldsjira_delete_issue: Delete issuejira_assign_issue: Assign issue to user
Search & Query
jira_search_issues: Search using JQL with pagination
Comments
jira_add_comment: Add comment to issue
Attachments
jira_upload_attachment: Upload file to issue
Workflow
jira_get_transitions: Get available transitionsjira_transition_issue: Move issue through workflow
Metadata
jira_list_projects: List accessible projectsjira_get_custom_fields: Get custom field definitions
Available Resources
jira://projects: List of all projectsjira://custom-fields: Custom field definitionsjira://current-user: Current user information
Examples
Create Issue with Custom Fields
Search Issues
Transition Issue
Custom Fields
The server automatically resolves custom field names to IDs and handles type conversion:
Text fields: Single/multi-line text
Select fields: Single/multi-select options
Date fields: Date and DateTime
User fields: User picker
Number fields: Numeric values
Arrays: Multi-value fields
Custom Field Usage
You can reference custom fields by name or ID:
Troubleshooting
Kerberos Issues
Problem: No valid Kerberos ticket found
Solution:
Problem: Server not found in Kerberos database
Solution: Verify KERBEROS_PRINCIPAL matches your JIRA server's SPN
Connection Issues
Problem: Failed to connect to JIRA
Solution:
Verify
JIRA_URLis correctCheck network connectivity
Verify authentication credentials
Check logs for detailed error messages
Custom Fields Not Found
Problem: Custom field not resolved
Solution:
Development
Running Tests
Code Quality
Architecture
The server uses FastMCP for a streamlined, decorator-based implementation with a layered architecture:
Component Overview
Layer | Components | Responsibility |
Server |
| FastMCP server with
and
decorators |
Operations |
,
,
,
,
,
| JIRA API operations and business logic |
Client |
,
| HTTP client, retry logic, and custom field resolution |
Authentication |
,
,
| Multi-method auth (Kerberos, ADFS, API Token, Basic) |
Models |
| Pydantic type definitions for request/response validation |
Config |
| Environment-based configuration management |
Directory Structure
Key Design Principles
Layered Architecture: Clear separation between server, operations, client, and auth layers
Decorator-Based Tools: Simple
@mcp.tool()and@mcp.resource()decorators for MCP integrationPluggable Authentication: Support for multiple auth methods via AuthManager abstraction
Automatic Type Conversion: Parameter validation and type conversion from function signatures
Custom Field Resolution: Automatic field name-to-ID mapping with caching
License
MIT License
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For issues and questions:
Check the troubleshooting section
Review JIRA API documentation
Check MCP protocol documentation