🎮
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 }}
注意点
- allowed_toolsの指定は結構適当。
- いろいろ議論されているっぽい
- https://github.com/anthropics/claude-code-action/issues/30
Jira番号を記入して、実行します
Action実行
少しすると、イシューが作成される
bodyの先頭に@claudeが入っていなかったので、自動でclaudeが動かなかった・・・。
コメントで呼び出して起動
やってくれました。やったー!
触ってみて
ほかの自律系エージェントとの差別点はMCPがちゃんと使えるかどうか、かな?
MCPを使用できるので可能性は無限大。
ただ、コマンドの許可を記述するのがものすごくめんどくさい。
MCPは不具合もあるっぽい
デメリットは庶民には少しお金がかかりすぎるところ・・・。
Discussion