atli
atli is a command-line interface for Jira and Confluence. It exposes every
operation of mcp-atlassian as an
ordinary shell command — no MCP client, server process, or daemon. Tools are
discovered at startup from the mcp-atlassian server itself, so new tools appear
automatically with pinned versions.
atli tools # list what your credentials unlock
atli jira get-issue --issue-key PROJ-1 # markdown, verbatim from the tool
atli confluence search --query "deploy"
atli --profile work jira search --jql "assignee = currentUser()"
Install
$ pipx install mcp-atlassian-cli
Or from a checkout:
$ git clone <this-repo> && cd mcp-atlassian-cli
$ python -m venv .venv
$ .venv/bin/pip install -e .
$ .venv/bin/atli tools
Requires Python 3.11+. The package pins mcp-atlassian>=0.23,<0.24 (which
resolves to fastmcp 3.4.x today) and cyclopts>=4.22,<5.
Authentication
atli authenticates with the same environment variables as mcp-atlassian.
Tools appear only for services you have configured — 63 Jira commands with
JIRA_* set, 35 Confluence commands with CONFLUENCE_* set, 98 with both,
none with neither.
| Deployment | Jira | Confluence |
|---|---|---|
| Cloud (basic auth) | JIRA_URL + JIRA_USERNAME + JIRA_API_TOKEN |
CONFLUENCE_URL + CONFLUENCE_USERNAME + CONFLUENCE_API_TOKEN |
| Data Center / Server (PAT) | JIRA_URL + JIRA_PERSONAL_TOKEN |
CONFLUENCE_URL + CONFLUENCE_PERSONAL_TOKEN |
| Data Center / Server (mTLS) | JIRA_URL + JIRA_CLIENT_CERT (+ JIRA_CLIENT_KEY) |
CONFLUENCE_URL + CONFLUENCE_CLIENT_CERT (+ CONFLUENCE_CLIENT_KEY) |
Notes:
- On Cloud, username is the Atlassian account email; the API token comes from https://id.atlassian.com/manage-profile/security/api-tokens.
- On Data Center/Server, the personal token is created under Profile → Personal Access Tokens.
- mTLS with an encrypted private key is not supported (the underlying
library rejects it). Decrypt the key first:
openssl rsa -in key.enc -out key. - Data Center/Server also accepts username + API token via the same
*_USERNAME/*_API_TOKENvariables if basic auth is enabled. *URLmay include/wikifor Confluence. The URL decides Cloud vs Data Center: hosts ending in.atlassian.net(also.jira.com,.jira-dev.com,.atlassian.com, and exact-matchapi.atlassian.com, plus the US-Gov domains) mean Cloud; everything else, includinglocalhostand private IPs, means Data Center/Server.
$ export JIRA_URL="https://your-company.atlassian.net"
$ export JIRA_USERNAME="you@your-company.com"
$ export JIRA_API_TOKEN="..."
$ atli tools | head -3
Profiles (multiple instances)
Storing credentials in a TOML file lets you switch instances with
--profile NAME and keep several side by side. Config lookup order:
$ATLI_CONFIG— if set, must point at an existing file (an error otherwise)./.atli.tomlin the current directory~/.config/atli/config.toml
The first existing file wins. Any key you set in a profile (including options
such as TOOLSETS = "all", which is unprefixed) replaces the ambient
environment for that service prefix; prefixes the profile doesn't mention are
left untouched. TOOLSETS only takes effect in a profile that also sets at
least one service-prefixed key (JIRA_*/CONFLUENCE_*/MCP_ATLASSIAN_*) —
a TOOLSETS-only profile changes nothing.
# ~/.config/atli/config.toml
default_profile = "work"
[profiles.work]
JIRA_URL = "https://your-company.atlassian.net"
JIRA_USERNAME = "you@your-company.com"
JIRA_API_TOKEN = "..."
CONFLUENCE_URL = "https://your-company.atlassian.net/wiki"
CONFLUENCE_USERNAME = "you@your-company.com"
CONFLUENCE_API_TOKEN = "..."
[profiles.dc]
JIRA_URL = "https://jira.internal.example.com"
JIRA_PERSONAL_TOKEN = "..."
Warning: profiles are plaintext credentials. After creating the file, run:
$ chmod 600 ~/.config/atli/config.toml
Profile selection order: --profile NAME flag > $ATLI_PROFILE > the
default_profile key. The flag must appear before the subcommand; atli --profile=work tools and atli --profile work tools both work.
$ atli profiles # lists profiles and URLs — never tokens
* work (default)
jira: https://your-company.atlassian.net
confluence: https://your-company.atlassian.net/wiki
dc
jira: https://jira.internal.example.com
$ atli --profile dc jira get-issue --issue-key OPS-42
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success (tool output on stdout) |
| 1 | Tool or server failure — the tool's error message on stderr |
| 2 | Usage or configuration error — bad flags, missing/invalid config file, unknown profile |
Notes for agents and scripts
atli <service> <tool> --helpshows every parameter with its type and default, straight from the tool's schema.- Repeatable list flags repeat:
--read-users alice --read-users bob(onconfluence set-page-restrictions) gives["alice", "bob"];--read-users alice,bobgives one element"alice,bob". - Startup takes ~1 s warm, a few seconds cold (the mcp-atlassian import
dominates). For bulk work, prefer one
searchover many single-item calls.
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 mcp_atlassian_cli-0.1.0.tar.gz.
File metadata
- Download URL: mcp_atlassian_cli-0.1.0.tar.gz
- Upload date:
- Size: 25.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d088cbdb6dc223873c9d5e0cabc0249fa53c95cde9eda479038270cd4faa70c5
|
|
| MD5 |
20b1b9c975a6d4bb16dd99b88a38bb95
|
|
| BLAKE2b-256 |
dcffabc9ab316acddb685af30db2b2fdcbf79f9da9b975235466745f8ed5a063
|
Provenance
The following attestation bundles were made for mcp_atlassian_cli-0.1.0.tar.gz:
Publisher:
release.yml on HumanBean17/atlassian-mcp-cli-wrapper
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_atlassian_cli-0.1.0.tar.gz -
Subject digest:
d088cbdb6dc223873c9d5e0cabc0249fa53c95cde9eda479038270cd4faa70c5 - Sigstore transparency entry: 2507682246
- Sigstore integration time:
-
Permalink:
HumanBean17/atlassian-mcp-cli-wrapper@75bc6230b2b6075cded567f5cd95e989bbc80281 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/HumanBean17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@75bc6230b2b6075cded567f5cd95e989bbc80281 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mcp_atlassian_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_atlassian_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f822032f1535cc67b395857a7703c60b702804a12ac759edb9819a6e364f720a
|
|
| MD5 |
faa7b1558139090861659058ec52fe86
|
|
| BLAKE2b-256 |
de402c769cda0f1bb7f9bc14cca5cc83e01dca3ab0a0c5c81651c1ea4f94a65d
|
Provenance
The following attestation bundles were made for mcp_atlassian_cli-0.1.0-py3-none-any.whl:
Publisher:
release.yml on HumanBean17/atlassian-mcp-cli-wrapper
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_atlassian_cli-0.1.0-py3-none-any.whl -
Subject digest:
f822032f1535cc67b395857a7703c60b702804a12ac759edb9819a6e364f720a - Sigstore transparency entry: 2507682272
- Sigstore integration time:
-
Permalink:
HumanBean17/atlassian-mcp-cli-wrapper@75bc6230b2b6075cded567f5cd95e989bbc80281 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/HumanBean17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@75bc6230b2b6075cded567f5cd95e989bbc80281 -
Trigger Event:
push
-
Statement type: