runspec-jira
A full-featured Jira runnable for runspec,
ported from the Atlassian MCP server
onto atlassian-python-api — covering Jira Software/Core and Service Desk
(JSM), on Cloud and Server/Data Center. One runnable — jira — with ~37
verbs. pip install it into a venv and it's discoverable by runspec local,
runspec serve (MCP), and runspec-console.
runspec serve flattens each verb into a leaf MCP tool (jira_get-issue, …).
Read verbs are autonomy = "autonomous"; writes are autonomy = "confirm".
The narrower one-runnable-per-project JSM option,
runspec-jsm, is unchanged — use this package when you want the full Jira surface.
Install
pip install runspec-jira
Verbs
| Area | Verbs |
|---|---|
| Issues | get-issue, create-issue, update-issue, assign-issue, delete-issue |
| Search | search (JQL), get-project-issues |
| Transitions | list-transitions, transition-issue |
| Comments | add-comment, edit-comment |
| Links | get-link-types, create-issue-link, link-to-epic, create-remote-issue-link, remove-issue-link |
| Worklog | get-worklog, add-worklog |
| Projects | get-all-projects, search-projects, get-project-components, get-project-issue-types, get-create-fields |
| Fields / users | search-fields, get-user-profile, search-assignable-users |
| Watchers | get-watchers, add-watcher, remove-watcher |
| Service desk | list-request-types, list-request-type-fields, raise-request, get-request |
| Attachments | list-attachments, download-attachments, add-attachment, remove-attachment |
Auth — env vars only
export JIRA_URL=https://your-org.atlassian.net
# Cloud (API token):
export JIRA_USERNAME=you@example.com
export JIRA_API_TOKEN=<api-token>
# …or Server/DC (Personal Access Token):
export JIRA_PERSONAL_TOKEN=<pat>
Cloud vs Server/DC is detected from a .atlassian.net host or set with
JIRA_CLOUD. Every verb takes --env, selecting JIRA_<ENV>_* prefixed vars.
The PAT can instead ride the runspec-console secret channel via the optional
--jira-pat (a password-typed arg, refused on the CLI, kept out of logs).
JSON-object args (--additional-fields, --fields, --visibility,
--worklog-json, --field-values) are passed as strings and parsed in the core.
jira search --jql "project = OPS AND status = 'In Progress'"
jira create-issue --project OPS --summary "Disk full on db-01" --issue-type Incident
jira transition-issue --issue OPS-42 --transition Done
Public Python API
The pure logic is in runspec-jira-core — over
atlassian-python-api, no runspec dependency, no entry points. Every op takes
a JiraConfig first arg and raises JiraError, so a private wrapper can inject
credentials and bake in a default project_key / service_desk_id / env:
from runspec_jira_core import config_from_env, build_client, get_issue
cfg = config_from_env(env="prod")
issue = get_issue(cfg, "OPS-42")
Development
python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
ruff check . && ruff format --check .
pytest
Metadata
Release files for runspec-jira 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| runspec_jira-0.3.1.tar.gz | 12.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| runspec_jira-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.0 kB
Release files / runspec_jira-0.3.1.tar.gz
| Download URL | runspec_jira-0.3.1.tar.gz |
|---|---|
| Size | 12.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3fff6b40624d431658499d807e8084a2e68f4fe99e9f9bbd0a73e257479b32ec
|
|
BLAKE2b-256 checksum How to use checksums |
529bdcfed3af56318b3055a8d834b7d59c79dc1fa90cfbc188e92f1e534bd651
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / runspec_jira-0.3.1-py3-none-any.whl
| Download URL | runspec_jira-0.3.1-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a489114355bda074606828a77529e6da0c273f190a64ddec2c6823cac8dcf8fa
|
|
BLAKE2b-256 checksum How to use checksums |
76a1f43c9604b6838a7dfb2f8b0b470bbe45e9326d0dc8a753bfc1f8249add57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log