Jira
STDIOContainerized MCP server providing comprehensive Jira API access and management capabilities
Containerized MCP server providing comprehensive Jira API access and management capabilities
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.
Prepare a Jira token
Configure Cursor
jiraMcp object under the mcpServers key)."/path/to/your/dotenv/file.env" to point to the file from step 1.{
  "mcpServers": {
    "jiraMcp": {
      "command": "podman",
      "args": [
        "run",
        "-i",
        "--rm",
        "--env-file",
        "/path/to/your/dotenv/file.env",
        "quay.io/sbaird/jira-mcp:latest"
      ],
      "description": "A containerized MCP server to query Jira issues"
    }
  }
}
Prerequisites
sudo dnf install podman (Fedora/RHEL) or brew install podman (macOS)sudo dnf install yq (Fedora/RHEL) or brew install yq (macOS)Get the code
git clone [email protected]:redhat-ai-tools/jira-mcp.git cd jira-mcp
~/.rh-jira-mcp.env file like this.make setup
Prepare a Jira token
.rh-jira-mcp.env file in your home directory and paste in the tokenDecide whether to enable write operations
Enabling your MCP server to make edits to Jira can be very useful, but can also cause a lot of problems if you are not careful in how you use the MCP tools.
By default, the server has write operations turned off.
If you want to turn it on, edit the .rh-jira-mcp.env file in your home directory to set JIRA_ENABLE_WRITE=true.
To confirm it's working, run Cursor, go to Settings and click on "Tools & Integrations". Under MCP Tools you should see "jiraMcp" with 20 tools enabled if
JIRA_ENABLE_WRITE=false (the default value) or 30 tools enabled if JIRA_ENABLE_WRITE=true.
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
This MCP server provides the following tools:
get_jira - Get details for a specific Jira issue by key.search_issues - Search issues using JQLcreate_issue - Create a new Jira issue with summary, description, type, priority, and assigneeupdate_issue - Update an existing issue's summary, description, priority, or assigneedelete_issue - Delete a Jira issue (use with caution)get_issue_comments - Get all comments for a Jira issueadd_comment - Add a comment to a Jira issuedelete_comment - Delete a comment from a Jira issueassign_issue - Assign a Jira issue to a userunassign_issue - Unassign a Jira issuetransition_issue - Transition a Jira issue to a new status (e.g., "In Progress", "Done")get_issue_transitions - Get available transitions for a Jira issueadd_issue_labels - Add labels to a Jira issueremove_issue_labels - Remove labels from a Jira issuelist_projects - List all projectsget_project - Get project details by keyget_project_components - Get components for a projectget_project_versions - Get versions for a projectget_project_roles - Get roles for a projectget_project_permission_scheme - Get permission scheme for a projectget_project_issue_types - Get issue types for a projectlist_boards - List all boardslist_sprints - List sprints for a boardget_sprint - Get sprint details by IDget_sprints_by_name - Get sprints by name for a board, optionally filtered by statesearch_users - Search users by queryget_user - Get user details by account IDget_current_user - Get current user infoget_assignable_users_for_project - Get assignable users for a projectget_assignable_users_for_issue - Get assignable users for an issuemake build - Build the imagemake run - Run the containermake clean - Clean up the built imagemake cursor-config - Modify ~/.cursor/mcp.json to install this MCP Servermake setup - Builds the image, configures Cursor, and creates ~/.rh-jira-mcp.env if it doesn't existmake run workspodman images jira-mcpmcp.json file to include your full path to the .rh-jira-mcp.env file."~/.rh-jira-mcp.env", to "/Users/your_username/.rh-jira-mcp.env",This project is licensed under the MIT License. See the LICENSE file for details.