get_projectsLABSCO SUMMARY
JQL is the reason this works well.
Because search takes JQL rather than a bespoke filter language, whatever you already know about querying Jira transfers directly and the assistant can build precise queries instead of listing everything. Transitions are handled properly too — it lists what is available for that issue before moving it, rather than guessing at a status name. Auth is deliberately flexible, but note that the sample Claude Desktop config in the README is written for token auth only.
What it is
An MCP server over Jira's REST API built on the jira-python library, working against Jira Cloud, Server or Data Center. It covers the everyday loop: find issues, read one, create one, comment, and transition it.
What you get
- Every project you have access to, listed
- One issue's full detail by key
- Issues found with JQL, so the filters you already use in Jira work here
- New issues created, with project, summary, description and issue type
- Comments added to an issue
- Available transitions listed for an issue, and the issue moved to a new status
- Bulk creation converted to the v3 REST API — up to 50 issues per call, with string descriptions converted to Atlassian Document Format automatically and issue types case-normalised ("bug" becomes "Bug")
Requirements
A Jira instance and credentials. Set JIRA_SERVER_URL, then JIRA_AUTH_METHOD to basic_auth or token_auth; basic auth uses JIRA_USERNAME and JIRA_PASSWORD, token auth uses JIRA_USERNAME and JIRA_TOKEN. Python 3.9 or higher; install with uv pip install mcp-server-jira or pip install mcp-server-jira, then run python -m mcp_server_jira or point the client at uv --directory <YOUR_PATH_TO_MCP_JIRA> run mcp-server-jira. A Dockerfile is included. Package mcp-server-jira 0.1.0.
Setup effort
Build from source
USE CASES
Finding what is actually assigned to you
Ask in plain language and let the assistant build the JQL, instead of hand-writing a filter in the Jira UI.
Filing a bug without leaving the conversation
Create the issue in the right project with a summary and description while the details are fresh.
Moving a ticket along
List the transitions available for that issue and pick one, rather than guessing a status that the workflow may not allow.
Opening a batch of tickets from a plan
Use bulk creation, which converts plain descriptions to Atlassian Document Format and reports per-issue successes and errors.
7 tools
Listed in project docs. Your client may show a different list.
get_issuesearch_issuescreate_issueadd_commentget_transitionstransition_issueBEFORE YOU INSTALL
What to know first
Tools you get
7 tools named in the project's documentation.
Requires
- uv on PATH
- Python 3.9 or later
- JIRA_SERVER_URL in your environment
- JIRA_USERNAME in your environment
- JIRA_TOKEN in your environment
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/InfinitIQ-Tech/mcp-jira.gitMCP Clients
Claude Desktop
{
"mcpServers": {
"jira": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_MCP_JIRA>",
"run",
"mcp-server-jira"
],
"env": {
"JIRA_SERVER_URL": "https://<YOUR_ORG>.atlassian.net/",
"JIRA_AUTH_METHOD": "token_auth",
"JIRA_USERNAME": "<YOUR_JIRA_USERNAME>",
"JIRA_TOKEN": "<YOUR_JIRA_TOKEN>"
}
}
}
}<YOUR_PATH_TO_MCP_JIRA> is the full path of the folder the clone created. If Claude Desktop cannot find uv, use its full path as the command (for example /Users/you/.local/bin/uv). The block is written for token auth; for basic auth set JIRA_AUTH_METHOD to basic_auth and give JIRA_USERNAME with JIRA_PASSWORD, or with JIRA_TOKEN for a Jira Cloud API token.