Terraform MCP Server

官方

用于基础设施即代码工作流的

你可以用 Terraform MCP 做什么?

  • 搜索公共 Terraform 注册表 — 通过 search_providerssearch_modules 按关键字查找提供程序和模块。
  • 查看提供程序和模块详情 — 使用 get_provider_detailsget_module_details 检索文档、版本以及输入/输出。
  • 管理 HCP Terraform / TFE 工作区 — 通过 list_workspaces 及相关工具列出、创建、更新和删除工作区,包括变量和标签。
  • 控制运行执行 — 使用运行管理工具列出运行、应用或放弃计划,以及锁定/解锁工作区。
  • 访问私有注册表 — 在连接到 Terraform Enterprise 时,从私有提供程序和模块注册表中搜索并检索详情。

文档

Terraform MCP Server

Terraform MCP Server 是一个 模型上下文协议 (MCP) 服务器,它提供与 Terraform Registry API 的无缝集成,为基础设施即代码 (IaC) 开发提供高级自动化和交互能力。

特性

  • 双传输支持:同时支持 Stdio 和 StreamableHTTP 传输,并具有可配置的端点
  • Terraform Registry 集成:直接与公共 Terraform Registry API 集成,用于提供程序、模块和策略
  • HCP Terraform 和 Terraform Enterprise 支持:完整的工作区管理、组织/项目列表以及私有注册表访问
  • 工作区操作:创建、更新、删除工作区,并支持变量、标签和运行管理
  • 用于监控工具使用情况的 OTel 指标:集成 OpenTelemetry 计量器,以在 Streamable HTTP 模式下跟踪工具调用量、延迟和故障。启用此功能时,还会公开默认的 HTTP 服务器指标

安全说明: 根据查询的不同,MCP 服务器可能会向 MCP 客户端和 LLM 公开某些 Terraform 数据。请勿将 MCP 服务器与不受信任的 MCP 客户端或 LLM 一起使用。

法律说明: 您对第三方 MCP 客户端/LLM 的使用仅受此类 MCP/LLM 使用条款的约束,IBM 对此类第三方工具的性能不承担任何责任。IBM 明确否认对第三方 MCP 客户端/LLM 的任何及所有保证和责任,并且可能无法为第三方工具导致的问题提供支持。

注意: MCP 服务器提供的输出和建议是动态生成的,可能会因查询、模型和连接的 MCP 客户端而异。用户在实施前应彻底审查所有输出/建议,以确保它们符合其组织的安全最佳实践、成本效益目标和合规性要求。

先决条件

  1. 确保已安装并运行 Docker,以便在容器化环境中使用服务器。
  2. 安装支持模型上下文协议 (MCP) 的 AI 助手。

命令行选项

环境变量:

变量描述默认值
TFE_ADDRESS设置用于 API 调用的 Terraform Enterprise/HCP Terraform 地址。必须包含协议(例如,https://app.terraform.io)。在 streamable-http 模式下,这是设置地址的唯一方式;客户端无法通过标头或查询参数提供。可选
TFE_TOKENTerraform Enterprise API 令牌""(空)
TFE_SKIP_TLS_VERIFY跳过 HCP Terraform 或 Terraform Enterprise TLS 验证false
LOG_LEVEL日志级别:tracedebuginfowarnerrorfatalpanic(覆盖 --log-level 标志)info
LOG_FORMAT日志格式:textjson(覆盖 --log-format 标志)text
TRANSPORT_MODE设置为 streamable-http 以启用 HTTP 传输(仍支持旧版 http 值)stdio
TRANSPORT_HOST绑定 HTTP 服务器的主机127.0.0.1
TRANSPORT_PORTHTTP 服务器端口8080
MCP_ENDPOINTHTTP 服务器端点路径/mcp
MCP_REDIRECT_ROOT_URL将请求重定向到 / 的 URL""
MCP_KEEP_ALIVESSE 连接的保活间隔(例如,30s、1m)。0 表示禁用0
MCP_SESSION_MODE会话模式:statefulstatelessstateful
MCP_ALLOWED_ORIGINS用于 CORS 的允许来源的逗号分隔列表""(空)
MCP_CORS_MODECORS 模式:strictdevelopmentdisabledstrict
MCP_TLS_CERT_FILETLS 证书文件路径,非本地主机部署时需要(例如 /path/to/cert.pem""(空)
MCP_TLS_KEY_FILETLS 密钥文件路径,非本地主机部署时需要(例如 /path/to/key.pem""(空)
MCP_RATE_LIMIT_GLOBAL全局速率限制(格式:rps:burst10:20
MCP_RATE_LIMIT_SESSION每会话速率限制(格式:rps:burst5: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-IPX-Forwarded-ForRemoteAddr
MCP_XFF_TRUSTED_HOPSX-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_ENDPOINTOTel Collector 或后端的 URLlocalhost:4318
INSTANA_ENABLED为 streamable-http 服务器启用 Instana 检测(指标和 HTTP 请求跟踪)。需要服务器可访问的 Instana 代理。false
# 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 编码代理处理您的项目。一个 AGENTS.md 文件适用于不同的编码代理。此类指令的示例位于 instructions/example-AGENTS.md 中,为了使用它,请将一个名为 AGENTS.md 的文件提交到您的 Terraform 配置所在的目录。

安装

与 Visual Studio Code 一起使用

将以下 JSON 块添加到 VS Code 中的用户设置 (JSON) 文件。您可以通过按 Ctrl + Shift + P 并键入 Preferences: Open User Settings (JSON) 来执行此操作。

有关在 VS Code 的 代理模式文档 中使用 MCP 服务器工具的更多信息。

版本 0.3.0+ 或更高版本 0.2.3 或更低
{
  "mcp": {
    "servers": {
      "terraform": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e", "TFE_TOKEN=${input:tfe_token}",
          "-e", "TFE_ADDRESS=${input:tfe_address}",
          "hashicorp/terraform-mcp-server:1.1.0"
        ]
      }
    },
    "inputs": [
      {
        "type": "promptString",
        "id": "tfe_token",
        "description": "Terraform API Token",
        "password": true
      },
      {
        "type": "promptString",
        "id": "tfe_address",
        "description": "Terraform Address",
        "password": false
      }
    ]
  }
}
{
  "mcp": {
    "servers": {
      "terraform": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "hashicorp/terraform-mcp-server:0.2.3"
        ]
      }
    }
  }
}

或者,您可以将类似的示例(即不带 mcp 键)添加到工作区中名为 .vscode/mcp.json 的文件中。这将允许您与他人共享配置。

版本 0.3.0+ 或更高版本 0.2.3 或更低
{
  "servers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "TFE_TOKEN=${input:tfe_token}",
        "-e", "TFE_ADDRESS=${input:tfe_address}",
        "hashicorp/terraform-mcp-server:1.1.0"
      ]
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "tfe_token",
      "description": "Terraform API Token",
      "password": true
    },
    {
      "type": "promptString",
      "id": "tfe_address",
      "description": "Terraform Address",
      "password": false
    }
  ]
}
{
  "servers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "hashicorp/terraform-mcp-server:0.2.3"
      ]
    }
  }
}

Install in VS Code (docker) Install in VS Code Insiders (docker)

与 Cursor 一起使用

将其添加到您的 Cursor 配置 (~/.cursor/mcp.json) 或通过设置 → Cursor 设置 → MCP:

版本 0.3.0+ 或更高版本 0.2.3 或更低
{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "TFE_ADDRESS=<<PASTE_TFE_ADDRESS_HERE>>",
        "-e", "TFE_TOKEN=<<PASTE_TFE_TOKEN_HERE>>",
        "hashicorp/terraform-mcp-server:1.1.0"
      ]
    }
  }
}
{
  "servers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "hashicorp/terraform-mcp-server:0.2.3"
      ]
    }
  }
}
Add terraform MCP server to Cursor

与 Claude Desktop / Amazon Q Developer / Kiro CLI 一起使用

有关在 Claude Desktop 用户文档 中使用 MCP 服务器工具的更多信息。阅读有关在 Amazon Q DeveloperKiro CLI 中使用 MCP 服务器的更多信息。

版本 0.3.0+ 或更高版本 0.2.3 或更低
{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "TFE_ADDRESS=<<PASTE_TFE_ADDRESS_HERE>>",
        "-e", "TFE_TOKEN=<<PASTE_TFE_TOKEN_HERE>>",
        "hashicorp/terraform-mcp-server:1.1.0"
      ]
    }
  }
}
{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "hashicorp/terraform-mcp-server: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

与 Gemini 扩展一起使用

为安全起见,请避免硬编码您的凭据,创建或更新 ~/.gemini/.env(其中 ~ 是您的主目录或项目目录)以存储 HCP Terraform 或 Terraform Enterprise 凭据

# ~/.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 或更低
{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "TFE_ADDRESS=<<PASTE_TFE_ADDRESS_HERE>>",
        "-e", "TFE_TOKEN=<<PASTE_TFE_TOKEN_HERE>>",
        "hashicorp/terraform-mcp-server:1.1.0"
      ],
      "disabled": false
    }
  }
}
{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "hashicorp/terraform-mcp-server:0.2.3"
      ],
      "disabled": false
    }
  }
}

从源代码安装

使用最新的发布版本:

go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@latest

使用主分支:

go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@main
版本 0.3.0+ 或更高版本 0.2.3 或更低
{
  "mcp": {
    "servers": {
      "terraform": {
        "type": "stdio",
        "command": "/path/to/terraform-mcp-server",
        "env": {
          "TFE_TOKEN": "<<TFE_TOKEN_HERE>>"
        },
      }
    }
  }
}
{
  "mcp": {
    "servers": {
      "terraform": {
        "type": "stdio",
        "command": "/path/to/terraform-mcp-server"
      }
    }
  }
}

本地构建 Docker 镜像

在使用服务器之前,您需要在本地构建 Docker 镜像:

  1. 克隆仓库:
git clone https://github.com/hashicorp/terraform-mcp-server.git
cd terraform-mcp-server
  1. 构建 Docker 镜像:
make docker-build
  1. 这将创建一个本地 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 以允许来自容器外部的连接。

  1. (可选)在 http 模式下测试连接
# Test the connection
curl http://localhost:8080/health
  1. 您可以按如下方式在 AI 助手上使用它:
{
  "mcpServers": {
    "terraform": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "terraform-mcp-server:dev"
      ]
    }
  }
}

可用工具

在此处查看可用工具 :link:

可用资源

在此处查看可用资源 :link:

可用指标

收集两种指标。 首先,通过使用 otelhttp.NewHandler(...) 包装 HTTP mux 来添加标准 HTTP 服务器指标。这会发出:

  1. http.server.request.body.size
  2. http.server.response.body.size
  3. http.server.request.duration

其次,MCP 服务器使用 MCP 钩子(BeforeCallTool / AfterCallTool)记录围绕工具执行的自定义工具指标。这些会发出:

  1. mcp_tool_calls_total
  2. mcp_tool_errors_total
  3. 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

可用工具集:registryregistry-privateterraformalldefault。查看 pkg/toolsets/mapping.go 了解各个工具名称。不能同时使用这两个标志。

传输支持

Terraform MCP Server 支持多种传输协议:

1. Stdio 传输(默认)

使用 JSON-RPC 消息进行标准输入/输出通信。非常适合本地开发以及与 MCP 客户端的直接集成。

2. StreamableHTTP 传输

基于现代 HTTP 的传输,同时支持直接 HTTP 请求和服务器发送事件 (SSE) 流。这是远程/分布式设置的推荐传输方式。

特性:

  • 端点http://{hostname}:8080/mcp
  • 健康检查http://{hostname}:8080/health
  • 环境配置:设置 TRANSPORT_MODE=httpTRANSPORT_PORT=8080 以启用
  • 组织允许列表:将 MCP_ORGANIZATION_ALLOWLIST--organization-allowlist 设置为允许的 HCP Terraform 组织名称的 CSV 列表

会话模式

Terraform MCP Server 在使用 StreamableHTTP 传输时支持两种会话模式:

  • 有状态模式(默认):在请求之间维护会话状态,支持上下文感知操作。
  • 无状态模式:每个请求独立处理,不维护会话状态,这对于高可用性部署或使用负载均衡器时非常有用。

要启用无状态模式,请设置环境变量:

export MCP_SESSION_MODE=stateless

集中部署的令牌透传

当为多个用户集中运行 MCP 服务器(StreamableHTTP 模式)时,每个用户可以通过 HTTP 头传递自己的 Terraform 令牌,以实现 RBAC 强制。这允许单个服务器实例为具有不同权限的多个用户提供服务。

当配置了 MCP_ORGANIZATION_ALLOWLIST--organization-allowlist 时,允许列表必须是 HCP Terraform 组织名称的 CSV 列表。服务器需要 Authorization: Bearer <token>,并且除非该令牌可以访问 CSV 允许列表中的至少一个组织,否则会拒绝请求。如果请求还包含 TFE_TOKEN 头,则 Bearer 令牌优先,确保由允许列表验证的令牌是用于 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-ForX-Real-IP
X-Real-IP如果 X-Real-IP 头是有效的 IP,则使用它,否则回退到 RemoteAddr
X-Forwarded-For使用 X-Forwarded-For 链,选择从右侧数第 MCP_XFF_TRUSTED_HOPS 个条目。如果值缺失或无效,则回退到 RemoteAddr

信任模型

X-Forwarded-ForX-Real-IP 由客户端和中间代理设置,因此除非服务器前面的受信任代理覆盖它们,否则它们可能被伪造。因此,默认值为 RemoteAddr,它只信任服务器直接连接的对等方。仅当服务器位于您控制的、设置这些头的代理之后时,才启用 X-Real-IPX-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=2108.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-ForMCP_XFF_TRUSTED_HOPS 为您运行的代理数量。

支持的头

描述
TFE_TOKENTerraform 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 令牌重定向到恶意服务器。
  • 切勿在查询参数中传递令牌 - 服务器将拒绝此类请求并返回 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.1.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.1.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.1.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在 Docker 中运行 HTTP 服务器
make test-http测试 HTTP 健康端点
make clean移除构建产物
make help显示所有可用命令

贡献

  1. Fork 仓库
  2. 创建您的功能分支
  3. 进行更改
  4. 运行测试
  5. 提交拉取请求

许可证

本项目根据 MPL-2.0 开源许可证的条款进行许可。请参阅 LICENSE 文件了解完整条款。

安全

对于安全问题,请联系 security@hashicorp.com 或遵循我们的 安全政策

支持

对于错误报告和功能请求,请在 GitHub 上提交 issue。

对于一般问题和讨论,请发起 GitHub Discussion。