🎮

Claude Code Action でMCPを使用してみた

に公開

初めに

今話題のClaude Code ActionでMCPの設定ができるとのことなので、実際にやってみました。
最初の初期設定等は割愛します。

Jira MCPを使用

ルートディレクトリにMCPのファイルを作成する

.mcp.json
{
  "mcpServers": {
    "mcp-atlassian": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "JIRA_URL",
        "-e", "JIRA_USERNAME",
        "-e", "JIRA_API_TOKEN",
        "ghcr.io/sooperset/mcp-atlassian:latest"
      ],
      "env": {}
    }
  }
}

GitHubActions こんな感じのものを作成

manual-claude.yml
name: Manual Claude Workflow

on:
  workflow_dispatch:
    inputs:
      jira_number:
        description: 'Jira ticket number (e.g., BC-123)'
        required: true
        type: string

jobs:
  manual-claude-task:
    if: inputs.jira_number != ''
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
      issues: write
      id-token: write
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - name: Run Claude Code with MCP config
        uses: anthropics/claude-code-base-action@beta
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          JIRA_URL: https://xxx.atlassian.net
          JIRA_USERNAME: xxx@gmail.com
          JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
        with:
          prompt: |
            Jira番号 '${{ github.event.inputs.jira_number }}' のタスク情報を取得し、GitHub上でイシューを作成してください。
            
            手順:
            1. MCPのJira機能を使ってタスク詳細を取得
            2. 取得した情報をもとにGitHub Issueを作成
            3. イシューのタイトルと内容に@claudeを追加
            4. イシューの内容に下記を記載する
	            - 要件定義ドキュメントを作成
	            - 設計書を作成
	            - TDDでコード実装
	            - Pull Requestを作成
            
            注意:MCPツールの使用許可が求められた場合は、処理を終えてください。
          mcp_config: ".mcp.json"
          allowed_tools: "Bash,View,GlobTool,GrepTool,BatchTool,Edit,Write,mcp__mcp-atlassian__jira_get_user_profile,mcp__mcp-atlassian__jira_get_issue,mcp__mcp-atlassian__jira_search,mcp__mcp-atlassian__jira_search_fields,mcp__mcp-atlassian__jira_get_project_issues,mcp__mcp-atlassian__jira_get_transitions,mcp__mcp-atlassian__jira_get_worklog,mcp__mcp-atlassian__jira_download_attachments,mcp__mcp-atlassian__jira_get_agile_boards,mcp__mcp-atlassian__jira_get_board_issues,mcp__mcp-atlassian__jira_get_sprints_from_board,mcp__mcp-atlassian__jira_get_sprint_issues,mcp__mcp-atlassian__jira_get_link_types,mcp__mcp-atlassian__jira_create_issue,mcp__mcp-atlassian__jira_batch_create_issues,mcp__mcp-atlassian__jira_batch_get_changelogs,mcp__mcp-atlassian__jira_update_issue,mcp__mcp-atlassian__jira_delete_issue,mcp__mcp-atlassian__jira_add_comment,mcp__mcp-atlassian__jira_add_worklog,mcp__mcp-atlassian__jira_link_to_epic,mcp__mcp-atlassian__jira_create_issue_link,mcp__mcp-atlassian__jira_remove_issue_link,mcp__mcp-atlassian__jira_transition_issue,mcp__mcp-atlassian__jira_create_sprint,mcp__mcp-atlassian__jira_update_sprint,mcp__mcp-atlassian__confluence_search,mcp__mcp-atlassian__confluence_get_page,mcp__mcp-atlassian__confluence_get_page_children,mcp__mcp-atlassian__confluence_get_comments,mcp__mcp-atlassian__confluence_get_labels,mcp__mcp-atlassian__confluence_add_label,mcp__mcp-atlassian__confluence_create_page,mcp__mcp-atlassian__confluence_update_page,mcp__mcp-atlassian__confluence_delete_page,mcp__mcp-atlassian__confluence_add_comment"
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

注意点

Jira番号を記入して、実行します

Action実行

少しすると、イシューが作成される

bodyの先頭に@claudeが入っていなかったので、自動でclaudeが動かなかった・・・。
コメントで呼び出して起動

やってくれました。やったー!

触ってみて

ほかの自律系エージェントとの差別点はMCPがちゃんと使えるかどうか、かな?

MCPを使用できるので可能性は無限大。
ただ、コマンドの許可を記述するのがものすごくめんどくさい。

MCPは不具合もあるっぽい
https://github.com/anthropics/claude-code-action/issues/14

デメリットは庶民には少しお金がかかりすぎるところ・・・。

Discussion