

Jira / Confluence を操作する CLI を Go で自作した
公式 ACLI や Atlassian MCP サーバーではなく自作した理由と、設計上の判断について
作ったもの#
https://github.com/putcho01/atlassian-cli ↗
Jira と Confluence を操作する Go 製の CLI ツールです。MCP サーバーも内蔵しています。
なぜ作ったか#
AI エージェント から Jira のチケットを検索したり、Confluence のページを取得したりしたいと思いました。既存の選択肢として公式 ACLI ↗ と Atlassian リモート MCP サーバー ↗がありましたが、どちらも自分のユースケースに合いませんでした。
| atlassian-cli | ACLI | Atlassian MCP サーバー | |
|---|---|---|---|
| 配布形式 | シングルバイナリ(依存なし) | パッケージインストール必要 | リモートサーバー |
| 認証 | 環境変数のみ | 対話ログイン | OAuth ブラウザフロー |
| コンテキスト消費 | 必要分だけロード | — | 多数のスキーマを一括ロード |
| Server/DC 対応 | あり(PAT 認証) | Cloud 中心 | Cloud のみ |
| 主な用途 | 開発者・自動化・AI エージェント | 管理者向けバルク操作 | 汎用 AI 連携 |
ACLI は認証に acli auth login という対話ログインが必要です。開発者が日常的に使う操作には機能が多すぎます。
Atlassian リモート MCP サーバー は 2026 年 2 月に GA になりました。ただし、多数のツールスキーマを起動時に一括ロードするため、コンテキストを消費します(参考 ↗)。また OAuth のブラウザフローが必要です。
そこで atlassian-cli ↗ を作りました。Go 製のシングルバイナリで、環境変数だけで認証が完結し、必要なツールだけをロードできる MCP サーバーを内蔵しています。
使い方#
# 進行中のチケットを検索
atlassian-cli jira issue search "project = PROJ AND status = 'In Progress'" -o markdown
# チケットの詳細を取得
atlassian-cli jira issue get PROJ-123
# ステータスを更新
atlassian-cli jira issue transition PROJ-123 "Done"
# チケットを作成
atlassian-cli jira issue create --project PROJ --summary "ログインのバグを修正" --type Bug --priority HighbashClaude Code に MCP サーバーとして組み込む場合は以下のように設定します。
{
"mcpServers": {
"atlassian": {
"command": "atlassian-cli",
"args": ["mcp-server", "--tools", "jira_issue,jira_search,jira_transition"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "[email protected]",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}json実装のポイント#
シングルバイナリ#
go install だけで使えるシングルバイナリとして配布しています。AI エージェント環境に組み込む際に、ランタイムのバージョン差異や依存関係のインストール手順がないのは地味に重要でした。
HTML → Markdown 変換#
Confluence はページ本文を HTML と独自マクロ(ac:structured-macro、ac:link など)で保存しています。-o markdown を指定すると、GitHub Flavored Markdown に変換します。
これにより、Confluence のページ内容をターミナルで読んだり、AI エージェントにそのままコンテキストとして渡したりできます。
3 種類の出力フォーマット#
全コマンドで --output / -o を受け付けます。
atlassian-cli jira issue search "project = PROJ AND status = 'In Progress'" -o markdown
atlassian-cli jira issue get PROJ-123 -o jsonbashtable— デフォルト。人間が読みやすい表形式json— 他のツールへのパイプやスクリプト向けmarkdown— AI エージェントにコンテキストとして渡す用途
MCP ツールグループの絞り込み#
内蔵の MCP サーバーはツールをグループ単位で管理していて、--tools フラグで必要なものだけをロードできます。
# issue の取得と検索
atlassian-cli mcp-server --tools jira_issue,jira_searchbash利用可能なグループ:jira_user、jira_issue、jira_search、jira_create、jira_update、jira_delete、jira_transition、confluence_page、confluence_label、confluence_restriction。
スキーマの数を絞ることで、エージェントが本来の作業に使えるコンテキストを最大化できます。
まとめ#
機能を絞ることを意識して作りました。go install して環境変数を設定するだけで使えて、出力をパイプできるものが欲しい場合はこのツールが役に立つかもしれません。