Terraform MCP Server
公式HashiCorp TerraformのInfrastructure as Codeワークフロー向けMCPサーバー。Terraform Registryを通じたプロバイダーおよびモジュールの検出機能を含む。
Terraform MCPで何ができますか?
- Search Terraform Registry — 検索して、
search_providersとget_provider_detailsを使用してパブリックレジストリからプロバイダーやモジュールを見つけるよう依頼します。 - Manage HCP Terraform workspaces — ワークスペース操作を介して、ワークスペースの作成、更新、削除、および変数、タグ、ランを処理します。
- List organizations and projects — HCP Terraform または Terraform Enterprise から組織とプロジェクトの一覧を取得します。
- Access private registry content —
registry-privateツールセットを使用して、プライベートレジストリのプロバイダー、モジュール、ポリシーをクエリします。 - Filter available tools —
--toolsetsや--toolsフラグ(例:list_workspaces)を使用して、必要な機能のみを有効にします。
ドキュメント
Terraform MCP Server
Terraform MCP Serverは、Model Context Protocol (MCP)サーバーであり、Terraform RegistryおよびHCP TerraformAPIとシームレスに統合し、Infrastructure as Code(IaC)開発における高度な自動化と対話機能を実現します。
目次
機能
- デュアルトランスポートサポート: 設定可能なエンドポイントを持つStdioおよびStreamableHTTPトランスポートの両方
- Terraform Registry統合: プロバイダー、モジュール、ポリシー向けの公開Terraform Registry APIとの直接統合
- HCP TerraformおよびTerraform Enterpriseサポート: 完全なワークスペース管理、組織/プロジェクト一覧、プライベートレジストリへのアクセス
- ワークスペース操作: 変数、タグ、ラン管理をサポートするワークスペースの作成、更新、削除
- ツール使用状況監視のためのOTelメトリクス: Streamable HTTPモードでツール呼び出し量、レイテンシ、失敗を追跡するためのオープンテレメトリーメーターとの統合。この機能を有効にすると、デフォルトのHTTPサーバーメトリクスも公開されます
セキュリティに関する注意: クエリによっては、MCPサーバーが特定のTerraformデータをMCPクライアントおよびLLMに公開する場合があります。信頼できないMCPクライアントまたはLLMとMCPサーバーを使用しないでください。
法的注意: 第三者のMCPクライアント/LLMの使用は、そのようなMCP/LLMの利用規約にのみ従うものとし、IBMはそのような第三者のツールの性能について責任を負いません。IBMは、第三者のMCPクライアント/LLMに対する一切の保証および責任を明示的に否認し、第三者のツールによって引き起こされた問題を解決するためのサポートを提供できない場合があります。
注意: MCPサーバーによって提供される出力および推奨事項は動的に生成され、クエリ、モデル、接続されたMCPクライアントによって異なる場合があります。ユーザーは、実装前にすべての出力/推奨事項を十分に確認し、組織のセキュリティベストプラクティス、コスト効率の目標、コンプライアンス要件に沿っていることを確認する必要があります。
前提条件
- Dockerがインストールされ、実行されていることを確認して、コンテナ化された環境でサーバーを使用します。
- Model Context Protocol(MCP)をサポートするAIアシスタントをインストールします。
コマンドラインオプション
環境変数:
| 変数 | 説明 | デフォルト |
|---|---|---|
TFE_ADDRESS | API呼び出し用のTerraform Enterprise/HCP Terraformアドレスを設定します。プロトコルを含める必要があります(例: https://app.terraform.io)。streamable-httpモードでは、これがアドレスを設定する唯一の方法です。クライアントがヘッダーやクエリパラメータで提供することはできません。 | オプション |
TFE_TOKEN | Terraform Enterprise APIトークン | ""(空) |
TF_MCP_SHARED_SECRET | HCP Terraform / TFEへのリクエストでX-Tf-Mcp-Secretヘッダーとして送信される共有シークレット。ホスト型MCPデプロイからのリクエストを識別するために使用されます。TLS経由でのみ使用する必要があります。 | ""(空) |
TFE_SKIP_TLS_VERIFY | HCP TerraformまたはTerraform EnterpriseのTLS検証をスキップ | false |
LOG_LEVEL | ログレベル: trace、debug、info、warn、error、fatal、panic(--log-levelフラグを上書き) | info |
LOG_FORMAT | ログ形式: textまたはjson(--log-formatフラグを上書き) | text |
TRANSPORT_MODE | HTTPトランスポートを有効にするにはstreamable-httpに設定(レガシーhttp値もサポート) | stdio |
TRANSPORT_HOST | HTTPサーバーをバインドするホスト | 127.0.0.1 |
TRANSPORT_PORT | HTTPサーバーポート | 8080 |
MCP_ENDPOINT | HTTPサーバーエンドポイントパス | /mcp |
MCP_REDIRECT_ROOT_URL | /へのリクエストをリダイレクトするURL | "" |
MCP_KEEP_ALIVE | SSE接続のキープアライブ間隔(例: 30s、1m)。無効にする場合は0 | 0 |
MCP_SESSION_MODE | セッションモード: statefulまたはstateless | stateful |
MCP_ALLOWED_ORIGINS | CORS用の許可されたオリジンのカンマ区切りリスト | ""(空) |
MCP_CORS_MODE | CORSモード: strict、development、またはdisabled | strict |
MCP_TLS_CERT_FILE | TLS証明書ファイルへのパス。非localhostデプロイに必要(例: /path/to/cert.pem) | ""(空) |
MCP_TLS_KEY_FILE | TLSキーファイルへのパス。非localhostデプロイに必要(例: /path/to/key.pem) | ""(空) |
MCP_RATE_LIMIT_GLOBAL | グローバルレート制限(形式: rps:burst) | 10:20 |
MCP_RATE_LIMIT_SESSION | セッションごとのレート制限(形式: rps:burst) | 5:10 |
MCP_ORGANIZATION_ALLOWLIST | HTTPサーバーへのアクセスを許可されたHCP Terraform組織名のCSVリスト | ""(空) |
MCP_FORWARD_CLIENT_IP | X-Forwarded-Forを介してクライアントIPをHCP Terraform / TFEに転送します。有効にするにはtrueに設定 | false |
MCP_REMOTE_IP_METHOD | 転送が有効な場合のクライアントIPの取得方法: RemoteAddr(直接接続のみ)、X-Real-IP、またはX-Forwarded-For | RemoteAddr |
MCP_XFF_TRUSTED_HOPS | X-Forwarded-Forチェーンの右から数えた信頼できるプロキシホップ数。MCP_REMOTE_IP_METHOD=X-Forwarded-Forの場合のみ使用 | 0 |
ENABLE_TF_OPERATIONS | 明示的な承認が必要なツールを有効にする | false |
OTEL_METRICS_ENABLED | otelを使用したツールおよびサーバーメトリクスを有効にする | false |
OTEL_METRICS_SERVICE_VERSION | メトリクスを送信するterraform-mcp-serverのバージョン。メトリクス属性の設定に使用され、異なるデプロイ間でのメトリクス追跡にも役立ちます | latest |
OTEL_METRICS_SERVICE_NAME | メトリクスのソースを識別します(例: "terraform-mcp-server") | terraform-mcp-server |
OTEL_METRICS_EXPORT_INTERVAL | メトリクスのフラッシュ頻度を制御します | 2 |
OTEL_METRICS_ENDPOINT | OTelコレクターまたはバックエンドのURL | localhost:4318 |
INSTANA_ENABLED | streamable-httpサーバーのInstana計装(メトリクスおよびHTTPリクエストトレーシング)を有効にします。サーバーから到達可能なInstanaエージェントが必要です。 | false |
INSTANA_SERVICE_NAME | Instana計装が有効な場合、MCPサーバーに使用するサービス名 | terraform-mcp-server |
# Stdio mode
terraform-mcp-server stdio [--log-file /path/to/log] [--log-level info] [--log-format text] [--toolsets <toolsets>] [--tools <tools>]
# StreamableHTTP mode
terraform-mcp-server streamable-http [--transport-port 8080] [--transport-host 127.0.0.1] [--mcp-endpoint /mcp] [--organization-allowlist <orgs-csv>] [--log-file /path/to/log] [--log-level info] [--log-format text] [--toolsets <toolsets>] [--tools <tools>]
手順
MCPサーバーのデフォルトの手順はcmd/terraform-mcp-server/instructions.mdにあります。これらが組織のTerraformプラクティスに適していない場合、またはMCPサーバーが不正確な応答を生成している場合は、独自の手順に置き換えてコンテナまたはバイナリを再ビルドしてください。そのような手順の例はinstructions/example-mcp-instructions.mdにあります。
AGENTS.mdは基本的にコーディングエージェント向けのREADMEとして機能します。AIコーディングエージェントがプロジェクトで作業するためのコンテキストと手順を提供する、専用の予測可能な場所です。1つのAGENTS.mdファイルがさまざまなコーディングエージェントで動作します。そのような手順の例はinstructions/example-AGENTS.mdにあり、使用するにはAGENTS.mdという名前のファイルをTerraform構成が置かれているディレクトリにコミットします。
インストール
Visual Studio Codeでの使用
VS Codeのユーザー設定(JSON)ファイルに次のJSONブロックを追加します。これを行うには、Ctrl + Shift + Pを押してPreferences: Open User Settings (JSON)と入力します。
VS CodeのエージェントモードドキュメントでのMCPサーバーツールの使用について詳しくは、こちらをご覧ください。
| バージョン0.3.0以上 | バージョン0.2.3以下 |
|---|---|
|
|
オプションで、ワークスペース内の.vscode/mcp.jsonというファイルに同様の例(つまり、mcpキーなし)を追加できます。これにより、設定を他のユーザーと共有できます。
| バージョン0.3.0以上 | バージョン0.2.3以下 |
|---|---|
|
|
Cursorでの使用
これをCursor設定(~/.cursor/mcp.json)または設定 → Cursor設定 → MCPに追加します:
| バージョン0.3.0以上 | バージョン0.2.3以下 |
|---|---|
|
|
Claude Desktop / Amazon Q Developer / Kiro CLI での使用
Claude Desktop での MCP サーバーツールの使用については、ユーザードキュメント を参照してください。Amazon Q Developer および Kiro CLI での MCP サーバーの使用についても詳しく説明しています。
| バージョン 0.3.0 以降 | バージョン 0.2.3 以下 |
|---|---|
|
|
Claude Code での使用
Claude Code での MCP サーバーツールの使用と追加については、ユーザードキュメント を参照してください。
- ローカル (
stdio) トランスポート
claude mcp add terraform -s user -t stdio -- docker run -i --rm hashicorp/terraform-mcp-server
- リモート (
streamable-http) トランスポート
# Run server (example)
docker run -p 8080:8080 --rm -e TRANSPORT_MODE=streamable-http -e TRANSPORT_HOST=0.0.0.0 hashicorp/terraform-mcp-server
# Add to Claude Code
claude mcp add --transport http terraform http://localhost:8080/mcp
Codex CLI での使用
Codex CLI での MCP サーバーツールの使用と追加については、ユーザードキュメント を参照してください。
注: 認証済みの HCP Terraform または Terraform Enterprise ツールを使用するには、Docker コマンドに
TFE_ADDRESSとTFE_TOKENを追加してください。
- ローカル (
stdio) トランスポート
codex mcp add terraform -- docker run -i --rm hashicorp/terraform-mcp-server
- リモート (
streamable-http) トランスポート
# Run server (example)
docker run --rm -p 127.0.0.1:8080:8080 -e TRANSPORT_MODE=streamable-http -e TRANSPORT_HOST=0.0.0.0 hashicorp/terraform-mcp-server
# Add to Codex
codex mcp add terraform --url http://localhost:8080/mcp
Gemini 拡張機能での使用
セキュリティ上の理由から、認証情報をハードコーディングすることは避け、HCP Terraform または Terraform Enterprise の認証情報を保存するために ~/.gemini/.env を作成または更新してください(~ はホームディレクトリまたはプロジェクトディレクトリです)。
# ~/.gemini/.env
TFE_ADDRESS=your_tfe_address_here
TFE_TOKEN=your_tfe_token_here
拡張機能をインストールして Gemini を実行します。
gemini extensions install https://github.com/hashicorp/terraform-mcp-server
gemini
Bob IDE / Shell での使用
Bob IDE または Shell での MCP サーバーツールの使用と追加については、Bob での MCP の使用 を参照してください。
| バージョン 0.3.0 以降 | バージョン 0.2.3 以下 |
|---|---|
|
|
ソースからのインストール
最新のリリースバージョンを使用する場合:
go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@latest
main ブランチを使用する場合:
go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@main
| バージョン 0.3.0 以降 | バージョン 0.2.3 以下 |
|---|---|
|
|
Docker イメージのローカルビルド
サーバーを使用する前に、Docker イメージをローカルでビルドする必要があります:
- リポジトリをクローンします:
git clone https://github.com/hashicorp/terraform-mcp-server.git
cd terraform-mcp-server
- Docker イメージをビルドします:
make docker-build
- これにより、以下の設定で使用できるローカル Docker イメージが作成されます。
# Run in stdio mode
docker run -i --rm terraform-mcp-server:dev
# Run in streamable-http mode
docker run -p 8080:8080 --rm -e TRANSPORT_MODE=streamable-http -e TRANSPORT_HOST=0.0.0.0 terraform-mcp-server:dev
# Filter tools (optional)
docker run -i --rm terraform-mcp-server:dev --toolsets=registry,terraform
docker run -i --rm terraform-mcp-server:dev --tools=search_providers,get_provider_details
注: Docker で実行する場合、コンテナ外部からの接続を許可するために
TRANSPORT_HOST=0.0.0.0を設定する必要があります。
- (任意)http モードで接続をテストします。
# Test the connection
curl http://localhost:8080/health
- AI アシスタントで次のように使用できます:
{
"mcpServers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"terraform-mcp-server:dev"
]
}
}
}
利用可能なツール
利用可能なリソース
利用可能なメトリクス
2 種類のメトリクスが収集されます。 まず、HTTP mux を otelhttp.NewHandler(...) でラップすることで、標準の HTTP サーバーメトリクスが追加されます。これにより、以下が出力されます:
- http.server.request.body.size
- http.server.response.body.size
- http.server.request.duration
次に、MCP サーバーは MCP フック(BeforeCallTool / AfterCallTool)を使用して、ツール実行時のカスタムツールメトリクスを記録します。これにより、以下が出力されます:
- mcp_tool_calls_total
- mcp_tool_errors_total
- mcp_tool_duration_seconds
ツールフィルタリング
--toolsets(グループ)または --tools(個別)を使用して、利用可能なツールを制御します:
# Enable tool groups (default: registry)
terraform-mcp-server --toolsets=registry,terraform
# Enable specific tools only
terraform-mcp-server --tools=search_providers,get_provider_details,list_workspaces
利用可能なツールセット: registry、registry-private、terraform、all、default。個別のツール名については pkg/toolsets/mapping.go を参照してください。両方のフラグを同時に使用することはできません。
トランスポートサポート
Terraform MCP Server は複数のトランスポートプロトコルをサポートしています:
1. Stdio トランスポート(デフォルト)
JSON-RPC メッセージを使用した標準入出力通信。ローカル開発や MCP クライアントとの直接統合に最適です。
2. StreamableHTTP トランスポート
直接 HTTP リクエストと Server-Sent Events (SSE) ストリームの両方をサポートする最新の HTTP ベースのトランスポート。リモート/分散セットアップに推奨されるトランスポートです。
特徴:
- エンドポイント:
http://{hostname}:8080/mcp - ヘルスチェック:
http://{hostname}:8080/health - 環境設定: 有効にするには
TRANSPORT_MODE=httpまたはTRANSPORT_PORT=8080を設定します - 組織の許可リスト: 許可された HCP Terraform 組織名の CSV リストに
MCP_ORGANIZATION_ALLOWLISTまたは--organization-allowlistを設定します
セッションモード
Terraform MCP Server は、StreamableHTTP トランスポート使用時に 2 つのセッションモードをサポートしています:
- ステートフルモード(デフォルト): リクエスト間でセッション状態を維持し、コンテキストを考慮した操作を可能にします。
- ステートレスモード: 各リクエストはセッション状態を維持せずに独立して処理されます。高可用性デプロイメントやロードバランサーを使用する場合に役立ちます。
ステートレスモードを有効にするには、環境変数を設定します:
export MCP_SESSION_MODE=stateless
集中型デプロイメントのためのトークンパススルー
複数ユーザー向けに MCP サーバーを集中管理(StreamableHTTP モード)で実行する場合、各ユーザーは RBAC 適用のために HTTP ヘッダーを介して自分の Terraform トークンを渡すことができます。これにより、単一のサーバーインスタンスで異なる権限を持つ複数のユーザーにサービスを提供できます。
MCP_ORGANIZATION_ALLOWLIST または --organization-allowlist が設定されている場合、許可リストは HCP Terraform 組織名の CSV リストである必要があります。サーバーは Authorization: Bearer <token> を要求し、そのトークンが CSV 許可リスト内の少なくとも 1 つの組織にアクセスできない限り、リクエストを拒否します。リクエストに TFE_TOKEN ヘッダーも含まれている場合、ベアラートークンが優先され、許可リストによって検証されたトークンが Terraform API リクエストに使用されるトークンであることが保証されます。組織名の一致は大文字と小文字を区別しません。設定された CSV 値がゼロ個の組織名に解析される場合、サーバーは不正な組織許可リストエラーで終了します。
クライアント IP 転送
プロキシまたはロードバランサーの背後で MCP サーバーを集中管理して実行する場合、X-Forwarded-For ヘッダーを介して発信元クライアントの IP を HCP Terraform / TFE に転送できます。これはデフォルトでオフになっており、MCP_FORWARD_CLIENT_IP=true で有効にする必要があります。
有効にすると、サーバーは MCP_REMOTE_IP_METHOD に従ってクライアント IP を取得します:
| メソッド | 動作 |
|---|---|
RemoteAddr(デフォルト) | 直接 TCP 接続のアドレスのみを使用します。X-Forwarded-For と X-Real-IP は無視されます。 |
X-Real-IP | 有効な IP の場合は X-Real-IP ヘッダーを使用し、それ以外の場合は RemoteAddr にフォールバックします。 |
X-Forwarded-For | X-Forwarded-For チェーンを使用し、右から MCP_XFF_TRUSTED_HOPS 番目のエントリを選択します。値が欠落しているか無効な場合は RemoteAddr にフォールバックします。 |
信頼モデル
X-Forwarded-For と X-Real-IP はクライアントと中間プロキシによって設定されるため、サーバーの前にある信頼できるプロキシがそれらを上書きしない限り、スプーフィングされる可能性があります。このため、デフォルトは RemoteAddr であり、サーバーが直接接続されているピアのみを信頼します。サーバーがこれらのヘッダーを設定する制御下にあるプロキシの背後にある場合にのみ、X-Real-IP または X-Forwarded-For を有効にしてください。
信頼できるホップ
X-Forwarded-For を使用する場合、MCP_XFF_TRUSTED_HOPS はサーバーとインターネットの間で運用するプロキシの数です。各プロキシはリクエストを受け取ったアドレスを追加し、右端のエントリはサーバーに最も近いプロキシによって設定されるため、ホップはチェーンの右から数えられます。サーバーはその数の信頼できるエントリをスキップし、左側の次のエントリを取得します。
たとえば、MCP_XFF_TRUSTED_HOPS=1 とヘッダー 200.1.2.3, 10.1.1.10 の場合、サーバーは 200.1.2.3 を選択します。MCP_XFF_TRUSTED_HOPS=2 と 108.0.0.1, 200.1.2.3, 10.1.1.10, 192.168.0.1 の場合、200.1.2.3 を選択します。ホップ数がエントリ数より多い場合、または選択されたエントリが有効な IP でない場合、サーバーは RemoteAddr にフォールバックします。
ホップ数を低く設定しすぎるとクライアント指定の値が信頼され、高く設定しすぎると自社インフラストラクチャのさらに奥のアドレスが信頼されます。運用するプロキシの正確な数に設定してください。
制限事項
- サーバーはリクエストの最初の
X-Forwarded-Forヘッダーのみを読み取ります。リクエストが複数のX-Forwarded-Forヘッダーを運ぶことは有効ですが、Go の標準ライブラリは最初のもののみを返し、サーバーはそれらを結合しません。プロキシチェーンが複数のヘッダーを出力する場合は、単一の結合されたX-Forwarded-Forヘッダーを出力するように設定してください。 - IPv4 と IPv6 の両方のアドレスがサポートされています。有効な IP ではない値は拒否され、サーバーは
RemoteAddrにフォールバックします。
以前のバージョンからの移行
以前のバージョンでは、ヘッダーが存在する場合、設定なしで左端の X-Forwarded-For 値を使用していました。左端の値は最もスプーフィングされやすいため、これは安全ではありませんでした。デフォルトは現在 RemoteAddr です。プロキシの背後でサーバーを実行し、X-Forwarded-For が HCP Terraform / TFE に転送されることに依存している場合は、MCP_REMOTE_IP_METHOD=X-Forwarded-For と MCP_XFF_TRUSTED_HOPS を運用するプロキシの数に設定してください。
サポートされているヘッダー
| ヘッダー | 説明 |
|---|---|
TFE_TOKEN | Terraform API トークン |
Authorization: Bearer <token> | 標準の Bearer 認証を使用する代替方法 |
TFE_SKIP_TLS_VERIFY | リクエストの TLS 検証をスキップします |
例: curl
# Using TFE_TOKEN header
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "TFE_TOKEN: your-user-token" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",...}'
# Using Authorization Bearer header
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-user-token" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",...}'
セキュリティに関する考慮事項
- TFE_ADDRESS はクライアントが設定できません。 streamable-http モードでは、Terraform アドレスはサーバー側の
TFE_ADDRESS環境変数(またはデフォルト)からのみ取得されます。HTTP ヘッダーまたはクエリパラメータを介してTFE_ADDRESSを設定しようとするリクエストは、403 で拒否されます。これにより、クライアントがリクエストとAuthorizationトークンを悪意のあるサーバーにリダイレクトすることを防ぎます。 - ホステッドデプロイメントの識別:
TF_MCP_SHARED_SECRETを設定すると、その値がすべての HCP Terraform / TFE リクエストでX-Tf-Mcp-Secretヘッダーとして送信され、バックエンドが既知のホステッドデプロイメントからのリクエストを識別できるようになります(例: IP 許可リストの適用)。これはヘッダーで送信される静的シークレットであるため、TLS 経由でのみ使用し、値を認証情報として扱ってください。 - クエリパラメータでトークンを渡さないでください - サーバーはそのようなリクエストを 400 エラーで拒否します。
- 集中管理でデプロイする場合は、常に TLS(
MCP_TLS_CERT_FILE/MCP_TLS_KEY_FILE)を使用して、転送中のトークンを保護してください。 MCP_ALLOWED_ORIGINSを設定して、接続できるクライアントを制限してください。
集中型デプロイメントの例
# Start server centrally (no token set server-side)
docker run -p 8080:8080 \
-e TRANSPORT_MODE=streamable-http \
-e TRANSPORT_HOST=0.0.0.0 \
-e TFE_ADDRESS=https://tfe.company.com \
-e MCP_TLS_CERT_FILE=/certs/server.pem \
-e MCP_TLS_KEY_FILE=/certs/server-key.pem \
-e MCP_ALLOWED_ORIGINS=https://ide.company.com \
-e MCP_ORGANIZATION_ALLOWLIST=team-alpha,team-beta \
-v /path/to/certs:/certs \
hashicorp/terraform-mcp-server:1.3.0
ユーザーはその後、ヘッダーを介して渡された個々のトークンで接続し、ユーザーごとの RBAC 適用が可能になります。
トラブルシューティング
コーポレートプロキシ / TLS 検査(Zscaler など)
コーポレートプロキシが TLS 検査(Zscaler Internet Access など)を実行している場合、証明書エラーが発生する可能性があります:
tls: failed to verify certificate: x509: certificate signed by unknown authority
解決策: コーポレート CA 証明書をコンテナにマウントします:
docker run -i --rm \
-v /path/to/corporate-ca.pem:/etc/ssl/certs/corporate-ca.pem \
-e SSL_CERT_FILE=/etc/ssl/certs/corporate-ca.pem \
hashicorp/terraform-mcp-server:1.3.0
MCP クライアント設定の場合:
{
"mcpServers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v", "/path/to/corporate-ca.pem:/etc/ssl/certs/corporate-ca.pem",
"-e", "SSL_CERT_FILE=/etc/ssl/certs/corporate-ca.pem",
"-e", "TFE_TOKEN=<>",
"hashicorp/terraform-mcp-server:1.3.0"
]
}
}
}
代替: バイナリを直接実行する
環境で Docker が許可されていない場合は、サーバーバイナリを直接インストールして実行できます。これにより、システムの証明書ストアが使用されます:
go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@latest
terraform-mcp-server stdio
開発
前提条件
- Go(特定のバージョンについては go.mod ファイルを確認してください)
- Docker(任意、コンテナビルド用)
利用可能な Make コマンド
| コマンド | 説明 |
|---|---|
make build | バイナリをビルドする |
make test | すべてのテストを実行する |
make test-e2e | エンドツーエンドテストを実行する |
make docker-build | Dockerイメージをビルドする |
make run-http | HTTPサーバーをローカルで実行する |
make docker-run-http | HTTPサーバーをDockerで実行する |
make test-http | HTTPヘルスエンドポイントをテストする |
make clean | ビルド成果物を削除する |
make help | 利用可能なすべてのコマンドを表示する |
コントリビューション
- リポジトリをフォークする
- フィーチャーブランチを作成する
- 変更を加える
- テストを実行する
- プルリクエストを送信する
ライセンス
このプロジェクトはMPL-2.0オープンソースライセンスの条件に基づいてライセンスされています。完全な条件については、LICENSEファイルを参照してください。
セキュリティ
セキュリティの問題については、security@hashicorp.comまでご連絡いただくか、セキュリティポリシーに従ってください。
サポート
バグ報告や機能リクエストについては、GitHubでイシューを開いてください。
一般的な質問や議論については、GitHubディスカッションを開いてください。