MCP HubMCP Hub
George5562

Jira-MCP-Server

by: George5562

MCP server that allows interaction with Jira using natural language

39created 19/12/2024
Visit
Jira
NLP

📌Overview

Purpose: The Jira MCP Server enables users to interact with Jira using natural language for efficient project management tasks.

Overview: This framework leverages the Model Context Protocol to provide a robust interface for managing Jira projects, issues, and workflows. It allows users to create, modify, and manage project-related tasks seamlessly through user-friendly commands.

Key Features:

  • Project Management: Automate project creation and configuration, allowing for easy setup and modification of project settings.

  • Issue Management: Facilitate comprehensive issue handling including creation, updating, linking, and deleting, which streamlines the workflow processes for teams.

  • Automated Workflows: Implement automated issue workflows that enhance productivity by reducing manual intervention and allowing for better task delegation.

  • Error Handling: Robust error reporting system to identify invalid keys, missing fields, and permission issues, ensuring user clarity during interactions.


Jira MCP Server

Speak to Jira in natural language to get information on and modify your project. Use it with Claude Desktop in combination with a custom README that you will create with project information, so that you can delegate PM tasks (e.g., given you have a list of your team and their specialties, assign any new issue to the most relevant person).

Built using the Model Context Protocol.

The server enables:

  • Project creation and configuration
  • Issue and subtask management
  • Issue linking and dependencies
  • Automated issue workflows

Configuration

Required environment variables:

Available Tools

1. User Management

// Get user's account ID by email
{
  email: "user@example.com";
}

2. Issue Type Management

// List all available issue types
// Returns: id, name, description, subtask status
// No parameters required

3. Issue Link Types

// List all available issue link types
// Returns: id, name, inward/outward descriptions
// No parameters required

4. Issue Management

Retrieving Issues

// Get all issues in a project
{
  projectKey: "PROJECT"
}

// Get issues with JQL filtering
{
  projectKey: "PROJECT",
  jql: "status = 'In Progress' AND assignee = currentUser()"
}

// Get issues assigned to user
{
  projectKey: "PROJECT",
  jql: "assignee = 'user@example.com' ORDER BY created DESC"
}

Creating Issues

// Create a standard issue
{
  projectKey: "PROJECT",
  summary: "Issue title",
  issueType: "Task",  // or "Story", "Bug", etc.
  description: "Detailed description",
  assignee: "accountId",  // from get_user tool
  labels: ["frontend", "urgent"],
  components: ["ui", "api"],
  priority: "High"
}

// Create a subtask
{
  parent: "PROJECT-123",
  projectKey: "PROJECT",
  summary: "Subtask title",
  issueType: "Subtask",
  description: "Subtask details",
  assignee: "accountId"
}

Updating Issues

// Update issue fields
{
  issueKey: "PROJECT-123",
  summary: "Updated title",
  description: "New description",
  assignee: "accountId",
  status: "In Progress",
  priority: "High"
}

Issue Dependencies

// Create issue link
{
  linkType: "Blocks",  // from list_link_types
  inwardIssueKey: "PROJECT-124",  // blocked issue
  outwardIssueKey: "PROJECT-123"  // blocking issue
}

Deleting Issues

// Delete single issue
{
  issueKey: "PROJECT-123"
}

// Delete issue with subtasks
{
  issueKey: "PROJECT-123",
  deleteSubtasks: true
}

// Delete multiple issues
{
  issueKeys: ["PROJECT-123", "PROJECT-124"]
}

Field Formatting

Description Field

The description field supports markdown-style formatting:

  • Use blank lines between paragraphs
  • Use "- " for bullet points
  • Use "1. " for numbered lists
  • Use headers ending with ":" (followed by blank line)

Example:

Task Overview:

This task involves implementing new features:
- Feature A implementation
- Feature B testing

Steps:
1. Design component
2. Implement logic
3. Add tests

Acceptance Criteria:
- All tests passing
- Documentation updated

Error Handling

The server provides detailed error messages for:

  • Invalid issue keys
  • Missing required fields
  • Permission issues
  • API rate limits

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/George5562/Jira-MCP-Server.git
    cd Jira-MCP-Server
    
  2. Install dependencies:

    npm install
    
  3. Configure environment variables:
    Create a .env file in the root directory:

    JIRA_HOST=your-instance.atlassian.net
    JIRA_EMAIL=your-email@example.com
    JIRA_API_TOKEN=your-api-token
    
  4. Build the project:

    npm run build
    
  5. Start the server:

    npm start
    

Configuring Claude Desktop

To use this MCP server with Claude Desktop:

  1. Locate your Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Add the Jira MCP server to your configuration:

    {
      "mcp_servers": [
        {
          "name": "jira-server",
          "command": "npm start",
          "cwd": "/path/to/jira-server",
          "env": {
            "JIRA_HOST": "your-instance.atlassian.net",
            "JIRA_EMAIL": "your-email@example.com",
            "JIRA_API_TOKEN": "your-api-token"
          }
        }
      ]
    }
    

    Replace /path/to/jira-server with the absolute path to your cloned repository.

  3. Restart Claude Desktop to apply the changes.

References