{
  "markdown": "![Jira MCP](/docs/images/jiramcp.png)\n\n# Jira MCP - The most feature-rich MCP server for Jira\n\n![Claude Demo](/docs/images/claude.gif)\n\n[![Python](https://img.shields.io/badge/Python-3.12-blue.svg?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/)\n[![MCP](https://img.shields.io/badge/MCP-Model%20Context%20Protocol-orange.svg?style=for-the-badge&logo=modelcontextprotocol&logoColor=white)](https://modelcontextprotocol.io/)\n[![pytest](https://img.shields.io/badge/pytest-000000.svg?style=for-the-badge&logo=pytest&logoColor=white)](https://pytest.org/)\n[![ruff](https://img.shields.io/badge/ruff-d7ff64.svg?style=for-the-badge&logo=ruff&logoColor=black)](https://docs.astral.sh/ruff/)\n[![uv](https://img.shields.io/badge/uv-000000.svg?style=for-the-badge&logo=uv&logoColor=white)](https://docs.astral.sh/uv/)\n[![CI](https://img.shields.io/github/actions/workflow/status/xcollantes/jira-mcp/ci.yml?branch=main&style=for-the-badge&logo=github-actions&logoColor=white)](https://github.com/xcollantes/jira-mcp/actions)\n[![License](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge&logo=mit&logoColor=white)](https://opensource.org/licenses/MIT)\n[![Version](https://img.shields.io/badge/Version-0.2.2-blue.svg?style=for-the-badge&logo=semver&logoColor=white)](https://github.com/xcollantes/jira-mcp/releases)\n\n<!-- mcp-name: io.github.xcollantes/jira-mcp -->\n\n**The most powerful and feature-rich MCP server for Jira integration.** Control Jira through AI-powered LLM clients like Cursor, Claude Desktop, Windsurf, and ChatGPT using the Model Context Protocol.\n\n## Why Jira MCP is the Best Choice\n\n- **Enterprise Ready**: Runs completely locally with no third-party data sharing. Safe for corporate environments.\n- **Full-Featured**: Complete Jira control including create, update, search, transition, and manage tickets using natural language.\n- **Easy Setup**: Pre-built binaries for Linux, macOS, and Windows. Get started in minutes.\n- **Actively Maintained**: Open source, MIT licensed, with regular updates and community support.\n- **AI-Native**: Built specifically for the Model Context Protocol to provide the best AI-to-Jira experience.\n\n## Getting started\n\n**[Jira MCP Server](https://jira.xaviercollantes.dev)**\n\n## Installation\n\n### Install jira-cli\n\nThe MCP server uses the `jira-cli` to execute Jira commands.\n\nFollow the installation instructions for your operating system:\n<https://github.com/ankitpokhrel/jira-cli?tab=readme-ov-file#installation>\n\n### Get Jira API Token\n\nDepending on your implementation of Jira (Cloud or Self-Hosted), you will need\nto use a different authentication type.\n\nGet your API token from: <https://id.atlassian.com/manage-profile/security/api-tokens>\n\nYou will need to set the following environment variables:\n\n- `JIRA_API_TOKEN` - Your Jira API token\n- `JIRA_AUTH_TYPE` - Authentication type (`bearer` for token, `basic` for Jira\n  account API token, `password` for Jira account password)\n\n**Recommended:** Pass these variables in your MCP client configuration using the\n`env` field (shown in the configuration examples below). This is more reliable\nthan shell environment variables because GUI applications like Cursor and\nWindsurf do not inherit variables from `.bashrc` or `.zshrc`.\n\nOther ways to add credentials to your environment:\n<https://github.com/ankitpokhrel/jira-cli/discussions/356>\n\n### Start Jira CLI\n\n```bash\njira init\n```\n\nThis should initialize the Jira CLI by asking for your Jira URL and credentials.\n\n### Test Jira CLI\n\n```bash\njira issue list\n```\n\nThis should return a list of issues in Jira.\n\n### MCP Server: Option 1: Download binaries (Recommended)\n\nDownload the latest release for your operating system from the [Releases\npage](https://github.com/xcollantes/jira-mcp/releases).\n\n| Operating System | Binary |\n|------------------|--------|\n| Linux | `jira-mcp-linux` |\n| Windows | `jira-mcp-windows.exe` |\n| macOS (Apple Silicon) | `jira-mcp-macos-apple-silicon-arm64` |\n| macOS (Intel) | `jira-mcp-macos-x64` |\n\n#### Linux\n\n```bash\n# Download the binary\ncurl -L -o jira-mcp https://github.com/xcollantes/jira-mcp/releases/latest/download/jira-mcp-linux\n\n# Make it executable\nchmod +x jira-mcp\n\n# Move to a directory in your PATH (optional)\nsudo mv jira-mcp /usr/local/bin/\n```\n\nAdd to your LLM client configuration:\n\n**NOTE:** Make sure to replace `/usr/local/bin/jira-mcp` with the path to the\nbinary on your machine if you moved it to a different location.\n\n```json\n{\n  \"mcpServers\": {\n    \"jira\": {\n      \"command\": \"/usr/local/bin/jira-mcp\",\n      \"env\": {\n        \"JIRA_API_TOKEN\": \"your-api-token\",\n        \"JIRA_AUTH_TYPE\": \"basic\"\n      }\n    }\n  }\n}\n```\n\n#### macOS\n\n```bash\n# For Apple Silicon (M1/M2/M3)\ncurl -L -o jira-mcp https://github.com/xcollantes/jira-mcp/releases/latest/download/jira-mcp-macos-apple-silicon-arm64\n\n# For Intel Macs\ncurl -L -o jira-mcp https://github.com/xcollantes/jira-mcp/releases/latest/download/jira-mcp-macos-x64\n\n# Make it executable\nchmod +x jira-mcp\n\n# Move to a directory in your PATH (optional)\nsudo mv jira-mcp /usr/local/bin/\n```\n\n**Note:** macOS may block the binary on first run. If you see a security\nwarning, go to **System Settings > Privacy & Security** and click **Allow\nAnyway**, or run:\n\n```bash\nxattr -d com.apple.quarantine /usr/local/bin/jira-mcp\n```\n\nAdd to your LLM client configuration:\n\n**NOTE:** Make sure to replace `/usr/local/bin/jira-mcp` with the path to the\nbinary on your machine if you moved it to a different location.\n\n```json\n{\n  \"mcpServers\": {\n    \"jira\": {\n      \"command\": \"/usr/local/bin/jira-mcp\",\n      \"env\": {\n        \"JIRA_API_TOKEN\": \"your-api-token\",\n        \"JIRA_AUTH_TYPE\": \"basic\"\n      }\n    }\n  }\n}\n```\n\n#### Windows\n\n1. Download `jira-mcp-windows.exe` from the [Releases\n   page](https://github.com/xcollantes/jira-mcp/releases).\n2. Move the executable to a convenient location (e.g., `C:\\Program\n   Files\\jira-mcp\\`).\n\nAdd to your LLM client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"jira\": {\n      \"command\": \"C:\\\\Program Files\\\\jira-mcp\\\\jira-mcp-windows.exe\",\n      \"env\": {\n        \"JIRA_API_TOKEN\": \"your-api-token\",\n        \"JIRA_AUTH_TYPE\": \"basic\"\n      }\n    }\n  }\n}\n```\n\n**NOTE:** Make sure to replace `C:\\\\Program\nFiles\\\\jira-mcp\\\\jira-mcp-windows.exe` with the path to the binary on your\nmachine if you moved it to a different location.\n\n### MCP Server: Option 2: Development setup with uv\n\nGet repo:\n\n```bash\ngit clone https://github.com/xcollantes/jira-mcp.git\ncd jira-mcp\n```\n\nAdd MCP server to your choice of LLM client:\n\n**NOTE:** You will need to look up for your specific client on how to add MCPs.\n\nUsually the JSON file for the LLM client will look like this:\n\n```json\n{\n  \"mcpServers\": {\n    \"jira\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"--directory\",\n        \"/ABSOLUTE/PATH/TO/REPO/ROOT\",\n        \"run\",\n        \"python\",\n        \"-m\",\n        \"src.main\"\n      ],\n      \"env\": {\n        \"JIRA_API_TOKEN\": \"your-api-token\",\n        \"JIRA_AUTH_TYPE\": \"basic\"\n      }\n    }\n  }\n}\n```\n\nThis will tell your LLM client application that there's a tool that can be\ncalled by calling `uv --directory /ABSOLUTE/PATH/TO/REPO run python -m\nsrc.main`.\n\nInstall UV: <https://docs.astral.sh/uv/getting-started/installation/>\n\n### MCP Server: Option 3: Install globally with pipx\n\n```bash\n# Install pipx if you haven't already\nbrew install pipx\npipx ensurepath\n\n# Clone and install the MCP server\ngit clone https://github.com/xcollantes/jira-mcp.git\ncd jira-mcp\npipx install -e .\n```\n\n## How it works\n\n1. You enter some questions or prompt to a LLM Client such as the Claude\n   Desktop, Cursor, Windsurf, or ChatGPT.\n2. The client sends your question to the LLM model (Sonnet, Grok, ChatGPT)\n3. LLM analyzes the available tools and decides which one(s) to use\n   - The LLM you're using will have a context of the tools and what each tool is\n     meant for in human language.\n   - Alternatively without MCPs, you could include in the prompt the endpoints\n     and a description on each endpoint for the LLM to \"call on\". Then you could\n     copy and paste the text commands into the terminal on your machine.\n   - MCPs provide a more deterministic and standardized method on LLM-to-server\n     interactions.\n4. The client executes the chosen tool(s) through the MCP server.\n   - The MCP server is either running local on your machine or an endpoint\n     hosting the MCP server remotely.\n5. The results are sent back to LLM.\n6. LLM formulates a natural language response and one or both of the following\n   happen:\n   - The response is displayed to you with data from the MCP server\n   - Some action is performed using the MCP server\n\n## Development\n\n### Logging\n\nDo not use `print` statements for logging. Use the logging module instead.\nWriting to stdout will corrupt the JSON-RPC messages and break your server.\n\n### Pre-commit\n\nThis project uses [pre-commit](https://pre-commit.com/) to run\n[ruff](https://docs.astral.sh/ruff/) linting and formatting checks, and\n[pytest](https://docs.pytest.org/) tests before each commit.\n\nTo set up pre-commit hooks:\n\n```bash\nuv sync\nuv run pre-commit install\n```\n\nOnce installed, ruff and pytest will automatically run when you commit. To run\nchecks manually on all files:\n\n```bash\nuv run pre-commit run --all-files\n```\n\n## Docstrings / Tool decorator parameters\n\nMCP.tools decorator parameters are especially important as this is the human\nreadable text that the LLM has context of. This will be treated as part of the\nprompt when fed to the LLM and this will decide when to use each tool.\n\n## Architecture\n\nMCP follows a client-server architecture where an **MCP host** (an AI\napplication like Cursor or ChatGPT desktop) establishes connections to one or\nmore **MCP servers**. The **MCP host** accomplishes this by creating one **MCP\nclient** for each **MCP server**. Each MCP client maintains a dedicated\nconnection with its corresponding MCP server.\n\n<https://modelcontextprotocol.io/docs/learn/architecture>\n\n## Pitfalls / Troubleshooting\n\n## Edit the jira-cli config file\n\nOn MacOS:\n\n```text\n/Users/<your-username>/.config/.jira/.config.yml\n```\n\n## 404 error when using `jira init`\n\nIf you get a 404 error when using `jira init`, you may need to edit the jira-cli\nconfig file to point to the correct Jira instance. There are only 3 possible\nvalues for the auth type so try each one. `basic`, `password`, or `bearer`.\n",
  "bytes": 10400,
  "sha": "83131461735ac813b43f10c8c7cebe9accbbdc901aea42b5020a3b4f294839f9",
  "repo_slug": "xcollantes/jira-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_xcollantes_jira_mcp_6bb66d9f/readme"
}