Claude Code GitHub ActionsからTerraform MCPサーバーを使ってHCP Terraformを操作してみた
先日、Claude Code GitHub Actions上でTerraform MCPサーバーを使用してみました。
Terraform MCPサーバーはHCP Terraformを操作するツールも提供しています。
今回は、Claude Code GitHub ActionsからTerraform MCPサーバー経由でHCP Terraformを操作してみました。
やってみた
Claude Code GitHub ActionsにTerraform MCPサーバーを追加
上記のブログの手順で、Terraform MCPサーバーを追加します。
HCP Terraformにアクセスするには、追加でHCP Terraformの認証情報(APIトークン)をGitHubリポジトリにセットする必要があります。
GitHub Actions SecretsにHCP TerraformのAPIトークンをセット
以下の手順で、HCP Terraformの認証情報(APIトークン)を準備します。
GitHub Actions SecretsにAPIトークンをTFE_TOKENとしてセットします。
GitHubリポジトリ -> Settings -> Secrets And variables -> Actions -> New repository secretの順番に選択します。

以下の情報をセットして、Add secretを選択します。
- Name: TFE_TOKEN
- Secret: HCP Terraform APIトークン

Claude Code実行環境にHCP Terraform APIトークンを環境変数としてセット(ワークフローファイルの修正)
Claude Code GitHub Actions上で、HCP Terraform APIトークンを利用できるようにワークフローファイルに記述を追加します。
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 }}
claude_args: |
--allowed-tools "mcp__terraform__list_workspaces"
env:
additional_permissions: |
actions: read
+ TFE_TOKEN: ${{ secrets.TFE_TOKEN }}
allowed-toolsではWorkspaceの一覧を確認するツールだけ許可しました。
以下を参考に、必要に応じて許可するツールを追加してください。
Terraform MCPにHCP Terraform APIトークンをセット(.mcp.jsonの修正)
最後にTerraform MCPサーバーにAPIトークンを設定します。
{
"mcpServers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
+ "-e", "TFE_TOKEN=${TFE_TOKEN}",
"hashicorp/terraform-mcp-server:0.3.2"
]
}
}
}
動作確認
Claude Code GitHub Actionsを使って、HCP TerraformのWorkspace一覧を取得してみます。
GitHub上のIssueコメントで以下のプロンプトを実行しました。
@claude
HCP Terraform Org <HCP Terraform Organization名>のWorkspace一覧を取得してください。
以下の応答があり、正常にHCP Terraform上のWorkspace一覧を取得できました。


おわりに
以前Claude Code GitHub ActionsとHCP Terraformを組み合わせたTerraformワークフローを考えてみました。
Claude CodeにPlanやポリシーチェックの結果をどうやって渡すかに悩みました。
HCP Terraform上でPlan・Applyを実行するため、GitHubで実行しているClaude Codeは内容を確認できないためです。(Pull RequestにCIの結果として表示されますが、詳細はリンクを開かないと見れない)
Claude Code GitHub Actions上でTerraform MCPサーバー経由でHCP Terraformにアクセスすればこの課題を解決できそうです。
Runの結果詳細から、Claude Codeでコード修正することも今後試してみたいと思います。







