🚀

Claude CodeとJiraをAtlassianリモートMCPで連携して開発効率を向上させる

に公開

こんにちは、ツクリンクでソフトウェアエンジニアをしているHRT(@hrt_sc)です🙋
ツクリンクでは、Jiraを使ってタスク管理をしており、チケットに記載した内容をもとに実装を進めています。
そこで、AtlassianのリモートMCPを使ってJiraとClaude Codeを連携することで、より効率的にAIに実装を任せることができるのではないかと考え、実際に試してみました。
Claude CodeとAtlassianリモートMCPの活用方法や懸念事項について紹介します。

私の所属するチームのタスク管理方法

私の所属しているチームではPBR(Product Backlog Refinement)の段階ではnotionに要件や仕様をまとめるようにしており、この時点ではJiraを利用していません。
PBRが終了後、エンジニアのみで行うスプリントプランニング時にnotionに記載してある要件や仕様をもとにタスクを細分化し、Jiraチケットを起票しています。
また、Jiraのチケットには下記項目を記載するようにしています。

  • やること
  • やらないこと
  • 実装方針
  • 期待値

「やること」と「期待値」については必ず記載していますが、「実装方針」については記載していないことの方が多いのが現状です。

AtlassianリモートMCP導入前の課題

AtlassianリモートMCPを使ってClaude Codeで開発を行う前には、Jiraのチケットに記載されている内容をプロンプトに記載する手間がかかっていたため面倒でした。
また、UI実装を行う場合にはデザイナーの方に用意していただいたFigmaのデザインをもとに実装していますが、Figma MCPを使いたい場合にはJiraに記載の要件に加えてFigmaのURLをプロンプトに貼って指示を出すという手間もかかっていました。

Claude CodeとAtlassianリモートMCPの連携による活用方法

Claude CodeでのAtlassianリモートMCPへの接続方法

Claude CodeでAtlassianリモートMCPを利用するためには、まずはClaude CodeのMCP設定を行う必要があります。
下記の手順に沿って設定を行うことでClaude CodeでAtlassianリモートMCPを利用できます。

1. Claude Code設定ファイルに追加

下記をClaude Codeの設定ファイルに記載します。

"mcpServers": {
  "atlassian": {
    "type": "sse",
    "url": "https://mcp.atlassian.com/v1/sse"
  }
}

2. Claude Code内でMCP設定を行う

Claude Codeで/mcpコマンドを打つと管理できるMCPの一覧が表示されます。
一覧にAtlassianとあると思うので、カーソルを当てた状態でEnterを押して認証に進みます。

3. ブラウザからAtlassianの認証を行う

ブラウザに遷移して、下記のようなAtlassianの認証画面が表示されるのでapproveします。
他にも画面が出てくるかもしれませんが、許可する形で進めましょう。

下記のような画面が出たら設定完了です!

AtlassianリモートMCPを使って行えるJiraの操作

ここまで設定すると、Claude CodeでAtlassianリモートMCPを使って開発を行うことができるようになります。
Atlassian MCPのJiraにはどんなコマンドが用意されているのか分からなかったので、Claude Codeで聞いてみました。
下記のコマンドがあるそうです。

- getJiraIssue - 課題詳細取得
- editJiraIssue - 課題編集
- createJiraIssue - 新規課題作成
- getTransitionsForJiraIssue - 利用可能なトランジション取得
- transitionJiraIssue - 課題ステータス変更
- lookupJiraAccountId - ユーザーアカウントID検索
- searchJiraIssuesUsingJql - JQL検索
- addCommentToJiraIssue - コメント追加
- getJiraIssueRemoteIssueLinks - リモートリンク取得
- getVisibleJiraProjects - 表示可能プロジェクト取得
- getJiraProjectIssueTypesMetadata - プロジェクトの課題タイプ取得

例えば、Jiraチケットの内容を取得したい場合は下記のようにgetJiraIssueコマンドを使うことで実現できます。

getJiraIssue <チケットのURL>

プロンプトで上記のように指示することもできますが、私の場合はより効率的に利用するためにカスタムスラッシュコマンドを設定して使用しています。

Claude Codeのカスタムスラッシュコマンドを設定してさらに便利に

Claude Codeではカスタムスラッシュコマンドとして、ユーザー自身でコマンドを作成できます。

https://docs.anthropic.com/ja/docs/claude-code/slash-commands#カスタムスラッシュコマンド

カスタムスラッシュコマンドを設定しておき、それを使ってClaude Codeに指示を出すことで、さらに便利にAtlassianリモートMCPを活用できます。

実際に私が設定しているカスタムスラッシュコマンドは下記になります。

plan.md
---
description: "実装計画を立てて実装を行う"
---

# 実装計画を立てる
## 使い方

/plan <jira_ticket>

`<jira_ticket>`で指定したJiraのチケットをもとに実装計画を立てて実装を行ってください

## 実装の流れ
### 1. ブランチ作成
- ブランチは`master`から派生する形で作成してください
- ブランチ作成前に`master``git pull`を実行してください
- ブランチ名は`feature/xxxx`のようにしてください(`xxxx`にはチケット番号である数字が入ります)

### 2. Jiraとの連携
下記コマンドを実行してJiraのチケットの内容を取得してください

getJiraIssue `<jira_ticket>`

### 3. Figmaとの連携
JiraのチケットにFigmaのリンクがある場合、Figma MCPを利用してデザインを取得し、そのデザインをもとに実装してください

### 4.実装
- JiraのIssue Typesが「タスク」の場合は、対象のJiraの親チケット番号のFeatureトグルを用いた条件分岐を必ず行ってください
- **実装の承認**: ユーザーに必ず承認を取ってから実装を開始してください

### 5. プルリクエスト作成
- プルリクエストのマージ先は`master`にしてください
- プルリクエストを作成する際には`.github/pull_request_template.md`のテンプレートに沿った形で作成してください
- プルリクエストのテンプレートにある「テスト項目」には何も記載しないでください

## 受け入れ条件
- Jiraチケットの「期待値」を満たしていること
- FeatureトグルOFFの場合にデグレしていないこと

実装を行いたい時には、Claude Codeで下記のように指示するだけです。

/plan <チケットのURL>

実行すると、下記のように実装計画が返ってきて承認することで実装が進んでいきます。

実装計画

**チケット概要**

- 課題:Featureトグルの追加
- 親チケット:xxxxx
- 種別:Sub-task

**やること**

Featureトグルを追加する

実装手順
1. ブランチ作成
- masterから feature/xxxxブランチを作成

2. コードベース調査
- 既存のFeatureトグル関連の実装箇所を特定
- 既存Featureトグル関連の実装パターンを調査

3.実装
- Featureトグルの設定を追加

4.PR作成
- テンプレートに沿ったPRを作成

FigmaのMCPも利用してUI実装にも対応する

ツクリンクでは、Figmaにあるデザインデータをもとに実装しています。
そのため、UI実装を行うJiraチケットには必ず該当デザインのFigmaのリンクを貼っておくようにしています。

FigmaのDev modeが利用できるプランの場合、FigmaのDev Mode MCPが使えます。

https://help.figma.com/hc/ja/articles/32132100833559-Dev-Mode-MCPサーバー利用ガイド

私もこのMCPを利用しているため、カスタムスラッシュコマンドには下記のようにFigma MCPを利用する旨を加えています。

### 3. Figmaとの連携
JiraのチケットにFigmaのリンクがある場合、Figma MCPを利用してデザインを取得し、そのデザインをもとに実装してください

これによって、Figmaのリンクをプロンプトで渡すことなく、カスタムスラッシュコマンド一つでJiraとFigmaの両方の内容を取得して実装を任せることができます。

Claude CodeとJiraをMCPで連携してから変わったこと

定量的なデータは示しづらいですが、体感としては一からの実装が楽になった感覚があります。
Claude Codeが実装計画を出してくれるので、どう実装を進めていくかを整理して開発を進めていけるようになりました。
特にUI実装の場合には、JiraチケットからFigmaリンクを自動取得してデザインに基づいた実装が一連の流れで完了するため、大幅な時間短縮を実感しています。

JiraチケットをもとにClaude Codeで実装するにあたっての懸念事項

AIが理解できるようにJiraチケットに内容を書く必要がある

Jiraのチケットに詳細な記載がなければ、AIが何を実装すれば良いか理解できず、生成されるコードが要件を満たしていなかったり、質が低かったりする可能性があります。
とはいえ、Jiraチケットに要件や設計を詳細に記載するとなると、記載自体に時間を使ってしまい、かえって生産性が下がって本末転倒となる可能性があります。

いきなり全てのタスクでAtlassianリモートMCPを使って実装するのではなく、やることが明確になっていてAIにも理解してもらいやすい小さめのチケットで検証を行い、生産性向上を実感できたらJiraチケットの記載にどれぐらいの時間をプラスで費やす価値があるのかを考えていくのが良いと思っています。

まとめ

AtlassianリモートMCPとClaude Codeの連携により、Jiraチケットの内容を直接取得して実装を進められるようになりました。
カスタムスラッシュコマンドと組み合わせることで、従来のコピペの手間を省き、開発効率を向上させることができます。

一方で、AIが適切に実装できるよう、Jiraチケットの記載内容を充実させる必要があります。
また、私の所属するチームでは、機能全体の要件や仕様についてはnotionで管理しているため、Jiraとnotionでの間で起こり得る情報の分散をどうするかという課題も残っています。
今後は、これらの懸念点を解決しながら、さらなる開発効率の向上を目指していきたいと思います。

Discussion