deepraj-vicenzo/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.
Jira Test Case Generator MCP Server is a powerful AI-powered integration tool for Jira, enabling seamless test case generation, ticket management, and workflow automation through natural language commands.
Jira Test Case Generator MCP Server
A powerful Model Context Protocol (MCP) server that provides AI-powered Jira integration for test case generation, ticket management, and workflow automation. This server enables Claude Desktop and other MCP clients to interact with Jira using natural language, automating common tasks and generating intelligent test cases.
📋 Overview
This MCP server bridges the gap between AI assistants and Jira, allowing you to:
- Generate comprehensive test cases from existing Jira tickets
- Create and manage tickets of any type (Epic, Story, Task, Bug, etc.)
- Update existing tickets with new information, priorities, or status changes
- Create sub-tasks and link them to parent tickets
- Link related tickets with various relationship types
- Automate repetitive workflows through natural language commands
Built with Java 23 and Maven, it uses Jira's REST API v3 and follows the MCP protocol specification for seamless integration with AI tools.
✨ Features
Core Capabilities
- 🎯 AI-Powered Test Case Generation: Automatically generates comprehensive test cases based on ticket type, description, and acceptance criteria
- 🎫 Full Ticket Management: Create any Jira issue type with custom fields and priorities
- ✏️ Ticket Updates: Update existing tickets including summary, description, priority, and status
- 📎 Sub-task Creation: Create and link sub-tasks to parent tickets
- 🔗 Ticket Linking: Link related tickets with relationship types (Relates, Blocks, Duplicates, Clones)
- 🔍 Smart Analysis: Intelligently analyzes ticket content to generate relevant test scenarios
- 🔐 Secure Configuration: Environment-based credential management with
.envfile support - 🚀 MCP Compatible: Full compliance with Model Context Protocol for Claude Desktop integration
- 📝 Rich Formatting: Uses Atlassian Document Format (ADF) for rich text descriptions
Prerequisites
- Java 23 or higher
- Maven 3.6 or higher
- Jira account with API token
- Jira Cloud or Server instance
Installation
1. Clone or Download the Project
cd jira-testcase-mcp-server
2. Configure Environment Variables
Create a .env file in the project root directory:
cp .env.example .env
Edit the .env file and add your Jira credentials:
JIRA_URL=https://your-domain.atlassian.net
JIRA_EMAIL=your-email@example.com
JIRA_API_TOKEN=your_api_token_here
How to get your Jira API Token:
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token"
- Give it a name (e.g., "MCP Server")
- Copy the generated token and paste it in your
.envfile
3. Build the Project
mvn clean package
This will create a fat JAR file in the target directory: jira-testcase-mcp-server-1.0.0.jar
Usage
Running the Server Standalone
java -jar target/jira-testcase-mcp-server-1.0.0.jar
The server will start and listen for MCP requests on stdin/stdout.
Important: Make sure to:
- Use the full absolute path to your JAR file
- Place the
.envfile in the same directory as the JAR file - Restart Claude Desktop after updating the configuration
Using with Claude
Once configured, you can ask Claude to interact with Jira using natural language:
Generate test cases:
Can you generate test cases for Jira ticket PROJ-123?
Create a new ticket:
Create a Story in PROJ with summary "Add user authentication" and description "Implement login functionality"
Create a sub-task:
Create a subtask under PROJ-123 with summary "Write unit tests" and description "Add test coverage"
Link tickets together:
Link PROJ-123 to PROJ-456 with a Relates relationship
Update an existing ticket:
Update ticket PROJ-123 to set priority to High and status to In Progress
Claude will automatically use the appropriate tool to fulfill your request.
Available Tools
This MCP server provides five powerful tools:
1. generate_test_cases
Generates comprehensive test cases for a specific Jira ticket based on its type, description, and acceptance criteria.
Parameters:
ticketKey(required): The Jira ticket key (e.g., "PROJ-123", "DEV-456")
Example Usage:
Generate test cases for ticket PROJ-123
Output:
- Ticket details (summary, description, type, priority, status)
- AI-generated test cases with:
- Test case ID
- Title
- Priority level
- Detailed test steps
- Expected results
- Test type (Positive, Negative, Regression, etc.)
2. create_ticket
Creates a new Jira ticket of any type (Epic, Story, Task, Bug, Feature, etc.).
Parameters:
projectKey(required): The Jira project key (e.g., "PROJ", "DEV")issueType(required): Type of issue (e.g., "Story", "Task", "Bug", "Epic")summary(required): Brief title/summary of the ticketdescription(required): Detailed description of the ticketpriority(optional): Priority level (e.g., "High", "Medium", "Low")
Example Usage:
Create a Bug in PROJ with summary "Login button not working" and description "Users cannot log in on mobile devices" with High priority
Output:
- Created ticket key (e.g., "PROJ-789")
- Ticket URL for easy access
3. create_subtask
Creates a sub-task and links it to a parent ticket.
Parameters:
parentKey(required): Parent ticket key (e.g., "PROJ-123")summary(required): Brief title/summary of the sub-taskdescription(required): Detailed description of the sub-task
Example Usage:
Create a subtask under PROJ-123 with summary "Update API documentation" and description "Document the new endpoints"
Output:
- Created sub-task key (e.g., "PROJ-790")
- Sub-task URL
- Parent ticket reference
4. link_tickets
Links two Jira tickets with a specified relationship type.
Parameters:
inwardIssue(required): First ticket key (e.g., "PROJ-123")outwardIssue(required): Second ticket key (e.g., "PROJ-456")linkType(required): Relationship type - one of:"Relates"- General relationship"Blocks"- First ticket blocks second ticket"Duplicate"- Tickets are duplicates"Cloners"- Cloning relationship
Example Usage:
Link PROJ-123 to PROJ-456 with a Blocks relationship
Output:
- Success confirmation
- Link type and direction
- Both ticket references
5. update_ticket
Updates an existing Jira ticket. You can update the summary, description, priority, and/or status. All fields except ticketKey are optional.
Parameters:
ticketKey(required): The ticket key to update (e.g., "PROJ-123")summary(optional): New summary/title for the ticketdescription(optional): New description for the ticketpriority(optional): New priority level (e.g., "High", "Medium", "Low")status(optional): New status (e.g., "In Progress", "Done", "To Do")
Example Usage:
Update ticket PROJ-123 to set priority to High and description to "Updated requirements based on client feedback"
Output:
- Success confirmation
- List of fields that were updated
- Ticket URL for easy access
Test Case Types
The generator creates different types of test cases based on the Jira issue type:
For Bugs
- Reproduce bug test case
- Verify fix test case
- Regression test case
For User Stories
- Positive test case (happy path)
- Negative test case (error handling)
- UI/UX test case (if applicable)
- Integration test case
For Tasks
- Functional verification
- Performance test (if applicable)
For Epics
- End-to-end test
- System integration test
Generic Test Cases
- Functional test
- Validation test
Project Structure
testcasegenerator/
├── pom.xml # Maven configuration
├── .env.example # Environment variables template
├── .env # Your actual environment variables (not in git)
├── README.md # This file
└── src/
└── main/
└── java/
└── com/
└── mcp/
├── Main.java # Application entry point
├── server/
│ └── JiraTestCaseMCPServer.java # MCP server implementation
└── service/
├── JiraService.java # Jira API integration
└── TestCaseGenerator.java # Test case generation logic
Code Overview
Main.java
- Entry point of the application
- Loads configuration from
.envfile - Initializes and starts the MCP server
- Validates required environment variables
JiraTestCaseMCPServer.java
- Implements the MCP protocol
- Handles MCP requests (initialize, tools/list, tools/call)
- Coordinates between Jira service and test case generator
- Formats responses in MCP format
JiraService.java
- Connects to Jira REST API
- Authenticates using Basic Auth (email + API token)
- Fetches and updates ticket details
- Handles status transitions
- Parses Jira's JSON response (including ADF format)
TestCaseGenerator.java
- Analyzes Jira ticket content
- Generates test cases based on issue type
- Creates different test scenarios (positive, negative, regression, etc.)
- Formats test cases with detailed steps and expected results
Troubleshooting
"JIRA_URL is required" Error
- Make sure you have a
.envfile in the same directory as your JAR file - Verify that the
.envfile contains all required variables
"Failed to fetch Jira ticket: 401" Error
- Check that your JIRA_EMAIL is correct
- Verify that your JIRA_API_TOKEN is valid and hasn't expired
- Ensure you have permission to access the ticket
"Failed to fetch Jira ticket: 404" Error
- Verify the ticket key is correct (e.g., "PROJ-123")
- Make sure the ticket exists and you have permission to view it
Server Not Responding in Claude
- Restart Claude Desktop after configuration changes
- Check the Claude logs for any error messages
- Verify the JAR file path in the configuration is correct and absolute
Development
Building from Source
# Clean and build
mvn clean package
# Run tests (if any)
mvn test
# Run without packaging
mvn compile exec:java
Adding Custom Test Case Logic
To customize test case generation, edit the TestCaseGenerator.java file and modify the generation methods:
generateBugTestCases()generateStoryTestCases()generateTaskTestCases()generateEpicTestCases()
Security Notes
- Never commit your
.envfile to version control - Keep your Jira API token secure
- Rotate your API tokens periodically
- Use read-only API tokens if possible
License
This project is provided as-is for educational and commercial use.
Support
For issues or questions:
- Check the troubleshooting section above
- Verify your Jira credentials and permissions
- Check the server logs for detailed error messages
Changelog
Version 1.0.0 (November 2025)
- ✅ Initial release with MCP protocol compliance
- ✅ AI-powered test case generation for multiple issue types
- ✅ Full ticket management (create any issue type)
- ✅ Ticket update functionality (summary, description, priority, status)
- ✅ Sub-task creation and linking
- ✅ Ticket linking with relationship types (Relates, Blocks, Duplicate, Cloners)
- ✅ Jira REST API v3 integration with Basic Authentication
- ✅ Environment-based secure configuration
- ✅ Support for Atlassian Document Format (ADF) for rich descriptions
- ✅ UTF-8 encoding support for international characters
- ✅ Comprehensive error handling and logging
Use Cases
This server is perfect for:
- QA Teams: Automatically generate test cases from user stories and bugs
- Development Teams: Create, update, and manage tickets without leaving your AI assistant
- Project Managers: Link related tickets, create sub-tasks, and update ticket status quickly
- Automation: Integrate Jira workflows into AI-powered automation pipelines
- Documentation: Generate test documentation from existing tickets
Technical Details
- Language: Java 23
- Build Tool: Maven 3.x
- Protocol: Model Context Protocol (MCP) via JSON-RPC 2.0
- Communication: stdin/stdout
- Jira API: REST API v3
- Authentication: Basic Auth (email + API token)
- Dependencies:
- Apache HttpClient 5.3 (HTTP communication)
- Gson 2.10.1 (JSON parsing)
- Dotenv Java 3.0.0 (environment configuration)