Minimal MCP server for managing Jira Cloud tickets
Project description
jira-ticket-mcp
Minimal MCP server for managing Jira Cloud tickets.
The official Jira MCP server exposes a tool surface large enough to crowd out an LLM's context. This one exposes a deliberately small, curated set of tools covering the actions that actually get used.
Configuration
The server reads three settings, from environment variables or from the equivalent CLI arguments (CLI wins):
| Environment variable | CLI argument | Description |
|---|---|---|
JIRA_BASE_URL |
--jira-base-url |
Your Jira Cloud site, e.g. https://example.atlassian.net |
JIRA_EMAIL |
--jira-email |
The account email the API token belongs to |
JIRA_API_TOKEN |
--jira-api-token |
An API token from https://id.atlassian.com/manage-profile/security/api-tokens |
Running
uvx jira-ticket-mcp --jira-base-url https://example.atlassian.net \
--jira-email you@example.com \
--jira-api-token "$JIRA_API_TOKEN"
As an MCP server entry, e.g. for Claude Code:
{
"mcpServers": {
"jira": {
"command": "uvx",
"args": ["jira-ticket-mcp"],
"env": {
"JIRA_BASE_URL": "https://example.atlassian.net",
"JIRA_EMAIL": "you@example.com",
"JIRA_API_TOKEN": "..."
}
}
}
}
Tools
| Tool | What it does |
|---|---|
whoami |
Return the authenticated account, including its accountId |
search_issues |
Search by JQL, returning a trimmed projection rather than full issues |
get_issue |
Fetch one issue in full detail |
list_transitions |
List the status transitions currently valid for an issue |
create_issue |
Create an issue; parent_key makes it a subtask or attaches it to an epic |
batch_create_issues |
Create many issues, returning a per-item result |
edit_issue |
Change any subset of summary, description, assignee, priority, type, parent, labels |
remove_issue |
Delete an issue |
transition_issue |
Move an issue to a new status |
link_issues |
Link two issues with a named link type |
add_comment / list_comments / remove_comment |
Manage comments |
Descriptions and comments are markdown in both directions; the server converts to and from Atlassian Document Format at the boundary.
Shrinking the surface further
Register only the tools you need with --tools:
uvx jira-ticket-mcp --tools search_issues,get_issue,edit_issue
Unlisted tools are never registered, so they cost the caller no context.
Notes
- Jira Cloud only (REST API v3). Data Center and Server are not supported.
- Epics are linked through the
parentfield, which works on team-managed projects. Company-managed projects use an instance-specific Epic Link custom field; on those, setting a parent fails with an error saying so. batch_create_issuesnever raises on partial failure — Jira does not roll back, so it reports which items landed and which did not.
Development
pip install -e ".[test,dev]"
pytest
pre-commit run --all-files
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jira_ticket_mcp-0.1.tar.gz.
File metadata
- Download URL: jira_ticket_mcp-0.1.tar.gz
- Upload date:
- Size: 38.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d315e0ad007fc109a69d64ad9fa0c75de815da14aeb5feaaa3e0fc941cc37f0f
|
|
| MD5 |
aec78420c2e847ef10a70dd5fb116690
|
|
| BLAKE2b-256 |
024c438541841715fc20a48d78493a5745feba53050a2a9f4d9de541e369972c
|
Provenance
The following attestation bundles were made for jira_ticket_mcp-0.1.tar.gz:
Publisher:
release.yml on antolu/jira-ticket-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jira_ticket_mcp-0.1.tar.gz -
Subject digest:
d315e0ad007fc109a69d64ad9fa0c75de815da14aeb5feaaa3e0fc941cc37f0f - Sigstore transparency entry: 2257197352
- Sigstore integration time:
-
Permalink:
antolu/jira-ticket-mcp@4a910fcd38d7d8c2540e81a64b084a276cdeb97b -
Branch / Tag:
refs/tags/v0.1 - Owner: https://github.com/antolu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4a910fcd38d7d8c2540e81a64b084a276cdeb97b -
Trigger Event:
push
-
Statement type:
File details
Details for the file jira_ticket_mcp-0.1-py3-none-any.whl.
File metadata
- Download URL: jira_ticket_mcp-0.1-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20f4f93189240edc488a0d68dc74f9da9710889de12fc86de3c11f208c32e184
|
|
| MD5 |
4ebc9a4b02f6561901c69ee3656f7ed1
|
|
| BLAKE2b-256 |
531cce50db20bb2aa5844747246e552df6d957c679d59e6652b5b15743dc5acf
|
Provenance
The following attestation bundles were made for jira_ticket_mcp-0.1-py3-none-any.whl:
Publisher:
release.yml on antolu/jira-ticket-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jira_ticket_mcp-0.1-py3-none-any.whl -
Subject digest:
20f4f93189240edc488a0d68dc74f9da9710889de12fc86de3c11f208c32e184 - Sigstore transparency entry: 2257197362
- Sigstore integration time:
-
Permalink:
antolu/jira-ticket-mcp@4a910fcd38d7d8c2540e81a64b084a276cdeb97b -
Branch / Tag:
refs/tags/v0.1 - Owner: https://github.com/antolu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4a910fcd38d7d8c2540e81a64b084a276cdeb97b -
Trigger Event:
push
-
Statement type: