LABSCO SUMMARY
`--tools` is the feature, not a convenience flag.
Loading jira_issue,jira_search gives an agent read access to issues and nothing that can create, delete or transition one — the permission boundary is the launch command rather than a token scope. It is also the context lever: every tool schema an agent loads sits in its context window whether or not it is used. The environment-variable-only auth is what makes this work in CI, where a browser sign-in has nowhere to happen.
What it is
A single-binary CLI for Atlassian Jira and Confluence that also runs as an MCP server. It authenticates purely from environment variables, works against Cloud and against Server/Data Center, and lets you choose which groups of tools an agent sees.
What you get
- Jira issues — get, search by JQL, create, update a field, delete, list subtasks, transition, and add or list comments
- Confluence pages — get content, create (optionally under a
--parent), update with the version auto-detected, manage labels and page restrictions --toolspicks which groups load:jira_user,jira_issue,jira_search,jira_create,jira_update,jira_delete,jira_transition,confluence_page,confluence_label,confluence_restriction- Three output formats via
--output—tablefor humans,jsonfor machines,markdownfor pasting into an assistant - Confluence storage-format macros are converted on the way out: code macros become fenced blocks, note and warning macros become labelled blockquotes, table-of-contents macros are dropped
JIRA_DEFAULT_PROJECTlets you omit--projecton create
Requirements
Go 1.21+, then go install github.com/putcho01/atlassian-cli@latest. Authentication is environment variables only. For Cloud: JIRA_URL, JIRA_EMAIL and JIRA_API_TOKEN, plus CONFLUENCE_URL, CONFLUENCE_EMAIL and CONFLUENCE_API_TOKEN if you use Confluence. For Server/Data Center: JIRA_URL and JIRA_PERSONAL_TOKEN (and CONFLUENCE_PERSONAL_TOKEN) — leaving the email unset switches it to Bearer auth automatically. Only the variables for the service you actually use are needed. Clients launch it as atlassian-cli mcp-server.
Setup effort
One command plus a key — go install github.com/putcho01/atlassian-cli@latest, then supply credentials
USE CASES
Pulling a ticket into the conversation
Fetch the issue including its description as markdown, ready to paste or reason over.
Finding issues with a JQL query
Run the search and get results as a table, JSON, or markdown depending on what happens next.
Reading a Confluence page an assistant can actually parse
Get the page with storage-format macros converted to fenced code blocks and blockquotes.
Running Atlassian steps inside CI
Authenticate from environment variables only, with no interactive login step to get stuck on.
Giving an agent read-only Jira
Start the server with just the issue and search groups so no write tool is exposed at all.
BEFORE YOU INSTALL
What to know first
Requires
- atlassian-cli on PATH
- JIRA_URL in your environment
- JIRA_EMAIL and JIRA_API_TOKEN in your environment (Cloud), or JIRA_PERSONAL_TOKEN instead (Server/Data Center)
- CONFLUENCE_URL with CONFLUENCE_EMAIL and CONFLUENCE_API_TOKEN, or CONFLUENCE_PERSONAL_TOKEN, if you use Confluence
INSTALLATION
Connect your client
Server setup
go install github.com/putcho01/atlassian-cli@latestMCP Clients
Claude Code
{
"mcpServers": {
"atlassian": {
"command": "atlassian-cli",
"args": [
"mcp-server"
],
"env": {
"JIRA_URL": "https://<YOUR_DOMAIN>.atlassian.net",
"JIRA_EMAIL": "<YOUR_JIRA_EMAIL>",
"JIRA_API_TOKEN": "<YOUR_JIRA_API_TOKEN>",
"CONFLUENCE_URL": "https://<YOUR_DOMAIN>.atlassian.net/wiki",
"CONFLUENCE_EMAIL": "<YOUR_CONFLUENCE_EMAIL>",
"CONFLUENCE_API_TOKEN": "<YOUR_CONFLUENCE_API_TOKEN>"
}
}
}
}This block is the Cloud (atlassian.net) setup. For Server/Data Center, set JIRA_URL and JIRA_PERSONAL_TOKEN (and CONFLUENCE_URL and CONFLUENCE_PERSONAL_TOKEN) instead and leave out the EMAIL variables — without an email it uses Bearer auth. Drop the CONFLUENCE_ lines if you only use Jira. go install puts atlassian-cli in $(go env GOPATH)/bin; the README adds that folder to PATH with export PATH="$PATH:$(go env GOPATH)/bin".