Labsco
redhat-ai-tools logo

Jira

โ˜… 17

from redhat-ai-tools

A server for querying Jira issues, requiring a Jira token for authentication.

๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeQuick setup

redhat-ai-tools/jira-mcp

A containerized Python MCP server for Cursor to provide access to Jira.

[!IMPORTANT] This project is experimental and was initially created as a learning exercise. Be aware there are more capable and mature Jira MCP solutions available, such as sooperset/mcp-atlassian, and Atlassian's own MCP Server.

See also redhat-ai-tools/jira-mcp-snowflake which provides another way to access Red Hat Jira data.

Using with an HTTP-based MCP application

If you want to use this MCP server with an application that communicates via HTTP, then you need to run the server with an HTTP-based transport mechanism. Here is an example of how to do this using Streamable HTTP, which is the current recommended http-based transport mechanism for MCP:

export $(grep -v '^#' ~/.rh-jira-mcp.env | xargs) && python server.py --transport http --port 3075

Here is an example of how to do this using SSE, which is a deprecated http-based transport mechanism (e.g., because you have an older MCP client application that depends on SSE):

export $(grep -v '^#' ~/.rh-jira-mcp.env | xargs) && python server.py --transport sse --port 3075

For either Streamable HTTP or SSE, the JIRA_API_KEY in your environment is ignored (and not neeed). This is an important security feature, because otherwise anyone who had access to the HTTP service would have access to the account information for whoever configured and ran that server. Instead, calling applications must send in their own Jira token as a Bearer token. Here is an example of how to do that using Llama Stack:

from llama_stack_client import LlamaStackClient

client = LlamaStackClient(base_url=LLAMA_STACK_URL)
mcp_llama_stack_client_response = client.responses.create(
    model=LLAMA_STACK_MODEL_ID,
    input="Tell me about RHAISTRAT-24.",
    tools=[
        {
            "type": "mcp",
            "server_url": JIRA_MCP_URL,
            "server_label": "Jira_tools",            
            "headers": {
                "Authorization": f"Bearer {JIRA_API_TOKEN}"
            }
        }
    ]
)

Available Tools

This MCP server provides the following tools:

Issue Search & Retrieval

  • get_jira - Get details for a specific Jira issue by key.
  • search_issues - Search issues using JQL

Issue Creation & Management

  • create_issue - Create a new Jira issue with summary, description, type, priority, and assignee
  • update_issue - Update an existing issue's summary, description, priority, or assignee
  • delete_issue - Delete a Jira issue (use with caution)

Issue Comments

  • get_issue_comments - Get all comments for a Jira issue
  • add_comment - Add a comment to a Jira issue
  • delete_comment - Delete a comment from a Jira issue

Issue Assignment

  • assign_issue - Assign a Jira issue to a user
  • unassign_issue - Unassign a Jira issue

Issue Workflow & Status

  • transition_issue - Transition a Jira issue to a new status (e.g., "In Progress", "Done")
  • get_issue_transitions - Get available transitions for a Jira issue

Issue Labels

  • add_issue_labels - Add labels to a Jira issue
  • remove_issue_labels - Remove labels from a Jira issue

Project Management

  • list_projects - List all projects
  • get_project - Get project details by key
  • get_project_components - Get components for a project
  • get_project_versions - Get versions for a project
  • get_project_roles - Get roles for a project
  • get_project_permission_scheme - Get permission scheme for a project
  • get_project_issue_types - Get issue types for a project

Board & Sprint Management

  • list_boards - List all boards
  • list_sprints - List sprints for a board
  • get_sprint - Get sprint details by ID
  • get_sprints_by_name - Get sprints by name for a board, optionally filtered by state

User Management

  • search_users - Search users by query
  • get_user - Get user details by account ID
  • get_current_user - Get current user info
  • get_assignable_users_for_project - Get assignable users for a project
  • get_assignable_users_for_issue - Get assignable users for an issue

Development Commands

  • make build - Build the image
  • make run - Run the container
  • make clean - Clean up the built image
  • make cursor-config - Modify ~/.cursor/mcp.json to install this MCP Server
  • make setup - Builds the image, configures Cursor, and creates ~/.rh-jira-mcp.env if it doesn't exist