# Claude Code Source: https://jira.xaviercollantes.dev/ai-tools/claude-code Configure Claude Code CLI to use Jira MCP Set up Jira MCP with Claude Code to manage Jira tickets directly from the command line using natural language. ## Prerequisites * Claude Code CLI installed (`npm install -g @anthropic-ai/claude-code`) * Active Claude subscription (Pro, Max, or API access) * Jira MCP installed (see [Quickstart](/quickstart)) * jira-cli configured and authenticated ## Configuration Claude Code stores its MCP configuration in `~/.claude/claude_desktop_config.json` or a similar location depending on your setup. Add the following to your Claude Code MCP configuration: ```json theme={null} { "mcpServers": { "jira": { "command": "/usr/local/bin/jira-mcp", "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` Replace `/usr/local/bin/jira-mcp` with the actual path to your jira-mcp binary. ```json theme={null} { "mcpServers": { "jira": { "command": "uv", "args": ["--directory", "/ABSOLUTE/PATH/TO/jira-mcp", "run", "python", "-m", "src.main"], "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` Replace `/ABSOLUTE/PATH/TO/jira-mcp` with the actual path to your cloned repository. Restart Claude Code to apply the changes. ## Usage examples Once configured, you can interact with Jira using natural language: * "Show me my assigned tickets" * "Create a bug ticket for the login page issue" * "Move PROJ-123 to In Progress" * "Add a comment to PROJ-456 explaining the fix" * "What tickets are in the current sprint?" ## Troubleshooting 1. Verify the path to your jira-mcp binary is correct. 2. Make sure jira-cli is properly configured by running `jira issue list` in your terminal. 3. Check Claude Code's logs for error messages. Ensure your Jira credentials are set in the MCP configuration's `env` field: ```json theme={null} { "mcpServers": { "jira": { "command": "/usr/local/bin/jira-mcp", "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` GUI applications and CLI tools may not inherit shell environment variables from `.bashrc` or `.zshrc`. Using the `env` field in the MCP configuration is the recommended approach. # Cursor Source: https://jira.xaviercollantes.dev/ai-tools/cursor Configure Cursor IDE to use Jira MCP Set up Jira MCP in Cursor to manage Jira tickets directly from your IDE using natural language. ## Prerequisites * Cursor IDE installed * Jira MCP installed (see [Quickstart](/quickstart)) * jira-cli configured and authenticated ## Configuration In Cursor, go to **Settings > MCP** or open the command palette and search for "MCP". Add the following configuration to your MCP servers: ```json theme={null} { "mcpServers": { "jira": { "command": "/usr/local/bin/jira-mcp", "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` Replace `/usr/local/bin/jira-mcp` with the actual path to your jira-mcp binary. ```json theme={null} { "mcpServers": { "jira": { "command": "uv", "args": ["--directory", "/ABSOLUTE/PATH/TO/jira-mcp", "run", "python", "-m", "src.main"], "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` Replace `/ABSOLUTE/PATH/TO/jira-mcp` with the actual path to your cloned repository. Restart Cursor or reload the window to apply the changes. ## Usage examples Once configured, you can interact with Jira using natural language in Cursor: * "Show me my assigned tickets" * "Create a bug ticket for the login page issue" * "Move PROJ-123 to In Progress" * "Add a comment to PROJ-456 explaining the fix" * "What tickets are in the current sprint?" ## Troubleshooting 1. Verify the path to your jira-mcp binary is correct. 2. Make sure jira-cli is properly configured by running `jira issue list` in your terminal. 3. Check Cursor's MCP logs for error messages. Ensure your Jira credentials are set in the MCP configuration's `env` field: ```json theme={null} { "mcpServers": { "jira": { "command": "/usr/local/bin/jira-mcp", "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` GUI applications like Cursor do not inherit shell environment variables from `.bashrc` or `.zshrc`. Using the `env` field in the MCP configuration is the recommended approach. # Windsurf Source: https://jira.xaviercollantes.dev/ai-tools/windsurf Configure Windsurf to use Jira MCP Set up Jira MCP in Windsurf to manage Jira tickets directly from your IDE using natural language with Cascade AI. ## Prerequisites * Windsurf editor installed * Jira MCP installed (see [Quickstart](/quickstart)) * jira-cli configured and authenticated ## Configuration In Windsurf, go to **Settings > MCP** or open the command palette and search for "MCP". Add the following configuration to your MCP servers: ```json theme={null} { "mcpServers": { "jira": { "command": "/usr/local/bin/jira-mcp", "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` Replace `/usr/local/bin/jira-mcp` with the actual path to your jira-mcp binary. ```json theme={null} { "mcpServers": { "jira": { "command": "uv", "args": ["--directory", "/ABSOLUTE/PATH/TO/jira-mcp", "run", "python", "-m", "src.main"], "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` Replace `/ABSOLUTE/PATH/TO/jira-mcp` with the actual path to your cloned repository. Restart Windsurf or reload the window to apply the changes. ## Usage examples Once configured, you can interact with Jira using natural language in Windsurf's Cascade AI: * "Show me my assigned tickets" * "Create a bug ticket for the login page issue" * "Move PROJ-123 to In Progress" * "Add a comment to PROJ-456 explaining the fix" * "What tickets are in the current sprint?" ## Troubleshooting 1. Verify the path to your jira-mcp binary is correct. 2. Make sure jira-cli is properly configured by running `jira issue list` in your terminal. 3. Check Windsurf's MCP logs for error messages. Ensure your Jira credentials are set in the MCP configuration's `env` field: ```json theme={null} { "mcpServers": { "jira": { "command": "/usr/local/bin/jira-mcp", "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` GUI applications like Windsurf do not inherit shell environment variables from `.bashrc` or `.zshrc`. Using the `env` field in the MCP configuration is the recommended approach. # Contributing Source: https://jira.xaviercollantes.dev/contributing Help improve Jira MCP through bug reports, feature requests, and code contributions ## Ways to contribute We welcome contributions from the community! Whether you're reporting a bug, suggesting a new feature, or helping with development, your input helps make Jira MCP better for everyone. ## Report issues and suggest features Found an issue? Help us fix it by providing detailed bug reports with reproduction steps. Have an idea for improvement? Suggest new features and enhancements to the project. ## Contribute code Interested in contributing code to Jira MCP? Check out our [Development guide](/development) to get started with the codebase. ## Development contributions Interested in contributing code? Check out our [Development guide](/development) to get started with the codebase. ## Community guidelines * Be respectful and constructive in your communications * Use clear, descriptive titles for issues * Provide sufficient context and details * Follow up on issues you've created if more information is requested * Help others by sharing your experiences and solutions ## Get help Need help or have questions? You can: * Check the [documentation](/quickstart) for answers * Search existing [issues](https://github.com/xcollantes/jira-mcp/issues) and [discussions](https://github.com/xcollantes/jira-mcp/discussions) * Start a [new discussion](https://github.com/xcollantes/jira-mcp/discussions) for questions Thank you for helping make Jira MCP better! 🚀 # Development Source: https://jira.xaviercollantes.dev/development Contribute to Jira MCP development **Prerequisites**: - Python 3.11 or higher - UV package manager - jira-cli installed and configured ## Getting started Clone the repository and set up your development environment: ```bash theme={null} git clone https://github.com/xcollantes/jira-mcp.git cd jira-mcp uv sync ``` ## Pre-commit hooks This project uses [pre-commit](https://pre-commit.com/) to run [ruff](https://docs.astral.sh/ruff/) linting and formatting checks, and [pytest](https://docs.pytest.org/) tests before each commit. ```bash theme={null} uv sync uv run pre-commit install ``` Once installed, ruff and pytest will automatically run when you commit. To run checks manually on all files: ```bash theme={null} uv run pre-commit run --all-files ``` ## Logging Do not use `print` statements for logging. Use the logging module instead. Writing to stdout will corrupt the JSON-RPC messages and break your server. ## Docstrings and tool decorators MCP tools decorator parameters are especially important as this is the human-readable text that the LLM has context of. This will be treated as part of the prompt when fed to the LLM and this will decide when to use each tool. ## Troubleshooting On macOS: ```text theme={null} /Users//.config/.jira/.config.yml ``` If you get a 404 error when using `jira init`, you may need to edit the jira-cli config file to point to the correct Jira instance. There are only 3 possible values for the auth type, so try each one: * `basic` * `password` * `bearer` # Feature Request Source: https://jira.xaviercollantes.dev/feature-request Suggest new features and improvements for Jira MCP Have an idea for a new feature or improvement? We'd love to hear it! Feature requests help us understand what the community needs and prioritize our development efforts. ## Before suggesting Search [existing issues](https://github.com/xcollantes/jira-mcp/issues) with the "Enhancement" label to see if your idea has already been suggested. If it has, you can add your support and additional thoughts to the existing discussion. Check if your suggestion aligns with our current development priorities or planned features. ## Submit a feature request [Create a new GitHub Issue](https://github.com/xcollantes/jira-mcp/issues/new) with the "Enhancement" label. Choose a clear, specific title that summarizes your suggestion, e.g., "Add support for bulk ticket updates" or "Implement dark mode for web interface". ### Problem statement * **Current situation**: What's the problem or limitation you're facing? * **Impact**: How does this affect your workflow or productivity? * **Use case**: Provide a concrete example of when and how this feature would be used ### Proposed solution * **Description**: How should the new feature work? * **User experience**: What would the user interaction look like? * **Implementation approach**: If you have technical knowledge, suggest how this could be implemented ### Additional context * Screenshots, mockups, or diagrams if applicable * Any research or data supporting the need ## What makes a good feature request? **Pro tip**: Feature requests with detailed use cases, clear problem statements, and implementation ideas are more likely to be considered and implemented. # Jira MCP - The Best MCP Server for Jira Integration Source: https://jira.xaviercollantes.dev/index The most powerful and feature-rich MCP server for Jira. Control Jira through AI-powered LLM clients like Cursor, Claude, and Windsurf using the Model Context Protocol. Claude Demo **Safe for corporate environments.** This MCP server runs completely locally on your machine using the [jira-cli](https://github.com/ankitpokhrel/jira-cli) command line tool. No data is sent to third-party services. If your organization approves the use of jira-cli, on a technical level this MCP server is safe to use. *If in doubt, check with your IT department.* **Jira MCP is the best MCP server for Jira integration**, allowing AI assistants like Cursor, Claude Desktop, Windsurf, or ChatGPT to ask questions and perform actions with your Jira instance. ## Why Jira MCP? Runs locally with no third-party data sharing. Safe for corporate environments. Complete Jira control: create, update, search, and manage tickets with natural language. Pre-built binaries for all platforms. Get started in minutes, not hours. MIT licensed and actively maintained. Contribute or customize as needed. ## Example prompts ## Get started Install and configure Jira MCP in minutes. ## Configure your AI tool Set up Jira MCP with your preferred AI assistant. Configure Cursor IDE with Jira MCP. Set up Claude Code CLI with Jira MCP. Configure Windsurf with Jira MCP. ## How it works You enter questions or commands to an LLM client such as Claude Desktop, Cursor, Windsurf, or ChatGPT. The LLM analyzes the available MCP tools and decides which one(s) to use. The LLM has context of each tool and what it is meant for in human language. The client executes the chosen tool(s) through the MCP server. The MCP server runs locally on your machine or remotely via an endpoint. The results are sent back to the LLM, which formulates a natural language response and displays data or performs actions using the MCP server. ## Architecture MCP follows a client-server architecture where an **MCP host** (an AI application like Cursor or Claude Desktop) establishes connections to one or more **MCP servers**. The **MCP host** accomplishes this by creating one **MCP client** for each **MCP server**. Each MCP client maintains a dedicated connection with its corresponding MCP server. Read the official MCP documentation for details on architecture. # Quickstart - Install Jira MCP Source: https://jira.xaviercollantes.dev/quickstart Get started with Jira MCP, the best MCP server for Jira integration. Install and configure in minutes on Linux, macOS, or Windows. Get the best Jira MCP server up and running in just a few minutes. Jira MCP provides seamless AI-powered Jira integration for Cursor, Claude, Windsurf, and other LLM clients. ## Prerequisites Before installing Jira MCP, you need to set up the Jira CLI that the MCP server uses to execute commands. Follow the installation instructions for your operating system from the [jira-cli repository](https://github.com/ankitpokhrel/jira-cli?tab=readme-ov-file#installation). Depending on your Jira implementation (Cloud or Self-Hosted), you will need to use a different authentication type. Add these to your `.bashrc`, `.zshrc`, or other shell configuration file: ```bash theme={null} # https://id.atlassian.com/manage-profile/security/api-tokens export JIRA_API_TOKEN="" # `bearer` for token, # `basic` for Jira account API token # `password` for Jira account password export JIRA_AUTH_TYPE="basic" ``` Make sure to source the file after adding the credentials: ```bash theme={null} source ~/.bashrc ``` See [alternative credential methods](https://github.com/ankitpokhrel/jira-cli/discussions/356) for other ways to configure authentication. GUI applications like Cursor and Windsurf do not inherit shell environment variables from `.bashrc` or `.zshrc`. It is recommended to pass these variables explicitly in the MCP configuration using the `env` field (shown in the examples below). ```bash theme={null} jira init ``` This will prompt you for your Jira URL and credentials. ```bash theme={null} jira issue list ``` This should return a list of issues in Jira. ## Install the MCP server Choose your preferred installation method: Download the latest release for your operating system from the [Releases page](https://github.com/xcollantes/jira-mcp/releases). | Operating System | Binary | | --------------------- | ------------------------------------ | | Linux | `jira-mcp-linux` | | Windows | `jira-mcp-windows.exe` | | macOS (Apple Silicon) | `jira-mcp-macos-apple-silicon-arm64` | | macOS (Intel) | `jira-mcp-macos-x64` | ```bash theme={null} # Download the binary curl -L -o jira-mcp https://github.com/xcollantes/jira-mcp/releases/latest/download/jira-mcp-linux # Make it executable chmod +x jira-mcp # Move to a directory in your PATH (optional) sudo mv jira-mcp /usr/local/bin/ ``` Add to your LLM client configuration: ```json theme={null} { "mcpServers": { "jira": { "command": "/usr/local/bin/jira-mcp", "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` Replace `/usr/local/bin/jira-mcp` with the path to the binary on your machine if you moved it to a different location. ```bash theme={null} # For Apple Silicon (M1/M2/M3) curl -L -o jira-mcp https://github.com/xcollantes/jira-mcp/releases/latest/download/jira-mcp-macos-apple-silicon-arm64 # For Intel Macs curl -L -o jira-mcp https://github.com/xcollantes/jira-mcp/releases/latest/download/jira-mcp-macos-x64 # Make it executable chmod +x jira-mcp # Move to a directory in your PATH (optional) sudo mv jira-mcp /usr/local/bin/ ``` macOS may block the binary on first run. If you see a security warning, go to **System Settings > Privacy & Security** and click **Allow Anyway**, or run: ```bash theme={null} xattr -d com.apple.quarantine /usr/local/bin/jira-mcp ``` Add to your LLM client configuration: ```json theme={null} { "mcpServers": { "jira": { "command": "/usr/local/bin/jira-mcp", "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` Replace `/usr/local/bin/jira-mcp` with the path to the binary on your machine if you moved it to a different location. 1. Download `jira-mcp-windows.exe` from the [Releases page](https://github.com/xcollantes/jira-mcp/releases). 2. Move the executable to a convenient location (e.g., `C:\Program Files\jira-mcp\`). Add to your LLM client configuration: ```json theme={null} { "mcpServers": { "jira": { "command": "C:\\Program Files\\jira-mcp\\jira-mcp-windows.exe", "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` Replace `C:\\Program Files\\jira-mcp\\jira-mcp-windows.exe` with the path to the binary on your machine if you moved it to a different location. Clone the repository: ```bash theme={null} git clone https://github.com/xcollantes/jira-mcp.git cd jira-mcp ``` Add MCP server to your LLM client configuration: ```json theme={null} { "mcpServers": { "jira": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/REPO/ROOT", "run", "python", "-m", "src.main" ], "env": { "JIRA_API_TOKEN": "your-api-token", "JIRA_AUTH_TYPE": "basic" } } } } ``` This tells your LLM client that there is a tool that can be called by running `uv --directory /ABSOLUTE/PATH/TO/REPO run python -m src.main`. Install UV if you haven't already: [UV installation guide](https://docs.astral.sh/uv/getting-started/installation/) ```bash theme={null} # Install pipx if you haven't already brew install pipx pipx ensurepath # Clone and install the MCP server git clone https://github.com/xcollantes/jira-mcp.git cd jira-mcp pipx install -e . ``` ## Next steps Set up Jira MCP in Cursor IDE. Set up Jira MCP with Claude Code CLI. Set up Jira MCP in Windsurf. Contribute to Jira MCP development. # Report a Bug Source: https://jira.xaviercollantes.dev/report-bug Help us fix issues by reporting bugs with detailed information Found a bug in Jira MCP? Help us improve by providing detailed information about the issue. ## Before reporting Search [existing issues](https://github.com/xcollantes/jira-mcp/issues) to see if the bug has already been reported. If it has, you can add your experience to the existing discussion. Make sure you're using the latest version of Jira MCP. Bugs in older versions may already be fixed. ## Create a bug report [Create a new GitHub Issue](https://github.com/xcollantes/jira-mcp/issues/new) with the "Bug" label. Choose a descriptive title that summarizes the problem. ### Description * **What happened**: Clear description of the bug * **When it happens**: Under what circumstances does this occur? * **Impact**: How does this affect your workflow? ### Steps to reproduce Provide step-by-step instructions to reproduce the issue: 1. Step one 2. Step two ### Expected behavior What should have happened instead? ### Environment * **OS**: (e.g., macOS 14.0, Windows 11, Ubuntu 22.04) * **Python version**: (e.g., Python 3.11.5) * **Jira MCP version**: (e.g., v1.2.0) * **AI tool**: (e.g., Cursor, Claude Desktop, Windsurf) * **Jira instance**: (e.g., Jira Cloud, Jira Server/Data Center) ### Logs and error messages Include any relevant error messages, logs, or stack traces. Remember to redact any sensitive information like API keys or personal data. ### Screenshots If applicable, include screenshots that demonstrate the issue.