Claude Code GitHub Actions内でTerraform MCPサーバーを使ってみる
Claude Code GitHub Actions内でTerraform MCPサーバー(ローカル)を使えるように設定してみました。
Claude Code GitHub Actions
GitHub Actions上のワークフロー上でClaude Codeを動かす機能です。
この機能を使うことで、GitHub IssueやPull Requestのコメントから@claudeメンションでClaude Codeを呼び出すことができます。
Claude Code GitHub Actionsは22025年8月にGAになりました。
Terraform MCPサーバー
Terraform MCPサーバーは、Terraformの開発元のHashiCorpが公開しているMCPサーバーです。
このMCPサーバーを使うことで、AIがTerraform Registryを検索したり・HCP Terraformを操作したりすることが可能です。
やってみた
Terraform MCPサーバーはリモートMCPサーバーとして動作することも可能ですが、今回はローカルで動作させます。
ちょっとややこしいですが、ワークフローで起動するGitHub Actions内で動作する形です。
.mcp.jsonの追加
GitHubリポジトリ内で使いたいため、MCPインストールスコープレベルはプロジェクトになります。
プロジェクトスコープの場合は.mcp.jsonファイルに記載しておくことで、自動的にMCPサーバー設定が読み込まれます。
.mcp.jsonにTerraform MCPサーバー用の設定を追加します。
{
"mcpServers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"hashicorp/terraform-mcp-server:0.3.2"
]
}
}
}
.mcp.jsonを使わない方法として、GitHub Actionsのワークフローファイル内のanthropics/claude-code-action内のclaude_argsパラメータで任意のMCP設定ファイルを指定することも可能です。
ワークフローファイルの修正
Claude Codeに対して、利用を許可するツールを設定します。
claude_argsに対して、allowed-toolsでMCPサーバーの許可するツールを定義します。(ベータ版とは、アクションの記載方法が異なっていることに注意してください。)
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
additional_permissions: |
actions: read
+ claude_args: |
+ --allowed-tools "mcp__terraform__get_latest_provider_version,mcp__terraform__search_providers"
ちなみに、Terraform MCPサーバーのツールをすべて許可したい場合は以下のように記載します。
claude_args: |
--allowed-tools "mcp__terraform"
MCPツールの権限を設定する際には、mcp__terraform__*のようにワイルドカードはサポートされていないことに注意してください。
動作確認
上記をGitHub上にPush後、動作確認を行いました。
Terraform MCPサーバー公式ドキュメントで紹介されているプロンプトを、GitHub Issue内のコメントで実行してみました。
I need help understanding what resources are available
in the Google provider that are for AI
執筆時点の最新のGoogle Providerの情報を使って回答してくれました。

GitHub Actionsのジョブを見てみると、Terraform MCPサーバーを使っていることを確認できました。


おわりに
Terraform MCPサーバーの追加を行ってみました。
HCP Terraformの操作もさせたい場合は、GitHub ActionsにHCP Terraformの認証情報を渡す必要があります。
後ほど、Claude Code GitHub ActionsからHCP Terraformを操作するパターンについてもブログにしたいと思います。








