# Atlassian CLI MCP Server

[![PyPI](https://img.shields.io/pypi/v/acli-mcp-server)](https://pypi.org/project/acli-mcp-server)
[![License](https://img.shields.io/pypi/l/acli-mcp-server)](https://github.com/bpmiranda3099/acli-mcp-server/blob/main/LICENSE)

MCP server that wraps the [Atlassian CLI (acli)](https://developer.atlassian.com/cloud/acli/) into two generic tools — same pattern as [`gh-cli-mcp-server`](https://github.com/bpmiranda3099/gh-cli-mcp-server).

## Why?

The official Atlassian MCP server exposes 30+ individual tools. This server wraps the entire `acli` binary into just 2:

- `call_acli` — run any `acli` command
- `suggest_acli_commands` — get help with syntax

Covers Jira (work items, projects, boards, sprints) and Confluence (pages, spaces, blogs) through one interface.

## Prerequisites

- [Atlassian CLI (acli)](https://developer.atlassian.com/cloud/acli/guides/install-macos/) installed and authenticated
- [uv](https://docs.astral.sh/uv/getting-started/installation/) (recommended, for running with `uvx`)

## Usage with MCP clients

```json
{
  "mcpServers": {
    "atlassian": {
      "command": "uvx",
      "args": ["acli-mcp-server"]
    }
  }
}
```

## Examples

| You say | What runs |
|---|---|
| "List my Jira projects" | `acli jira project list --site site.atlassian.net` |
| "Create a task in PROJ" | `acli jira workitem create --site site.atlassian.net --project PROJ --type Task --summary "..."` |
| "Show issue PROJ-123" | `acli jira workitem view --site site.atlassian.net --workitem PROJ-123` |
| "Move PROJ-123 to Done" | `acli jira workitem transition --site site.atlassian.net --workitem PROJ-123 --transition Done` |
| "List pages in SPACE" | `acli confluence page list --site site.atlassian.net --space SPACE` |
| "Show current sprint" | `acli jira sprint list --site site.atlassian.net --board 1` |

## Why not just use `acli` through a shell tool?

You can — it works. This server just cleans things up:

- Parses `acli` output into structured JSON when possible, instead of raw terminal text
- Handles timeouts so commands don't hang forever
- Includes a `suggest_acli_commands` tool for when you're unsure about syntax
- Shows up as a dedicated "atlassian" capability instead of generic shell access
- Blocks shell injection (no `;`, `|`, `&&`, etc.)

Same `acli` underneath, just a safer wrapper for MCP clients.
