Skip to main content
Glama

Terraform Cloud MCP 服务器

模型上下文协议 (MCP) 服务器将 AI 助手与 Terraform Cloud API 集成,让您能够通过自然对话管理基础架构。该服务器基于 Pydantic 模型构建,并围绕特定领域模块构建,可与任何支持 MCP 的平台兼容,包括 Claude、Claude Code CLI、Claude Desktop、Cursor、Copilot Studio 等。

版本Python类型检查代码质量


特征

  • 帐户管理:获取经过身份验证的用户或服务帐户的帐户详细信息。

  • 工作区管理:创建、读取、更新、删除、锁定/解锁工作区。

  • 项目管理:创建、列出、更新和删除项目;管理项目标签绑定并在项目之间移动工作区。

  • 运行管理:创建运行、列出运行、获取运行详细信息、应用/放弃/取消运行。

  • 计划管理:使用高级 HTTP 重定向处理检索计划详细信息和 JSON 执行输出。

  • 申请管理:获取申请详情并从失败状态上传中恢复。

  • 组织管理:列出、创建、更新、删除组织以及查看组织权利。

  • 未来功能:变量管理、状态版本等。


Related MCP server: tfmcp

快速入门

先决条件

  • Python 3.12+

  • MCP(包括FastMCP和开发工具)

  • uv包管理器(推荐)或pip

  • Terraform Cloud API 令牌


安装

# Clone the repository git clone https://github.com/severity1/terraform-cloud-mcp.git cd terraform-cloud-mcp # Create virtual environment and activate it uv venv source .venv/bin/activate # Install package uv pip install .

添加到 Claude 环境

添加到 Claude Code CLI

# Add to Claude Code with your Terraform Cloud token claude mcp add -e TFC_TOKEN=YOUR_TF_TOKEN -s user terraform-cloud-mcp -- "terraform-cloud-mcp"

添加到 Claude 桌面

创建claude_desktop_config.json配置文件:

  • mac:〜/ Library / Application Support / Claude / claude_desktop_config.json

  • 胜利:%APPDATA%\Claude\claude_desktop_config.json

{ "mcpServers": { "terraform-cloud-mcp": { "command": "/path/to/uv", # Get this by running: `which uv` "args": [ "--directory", "/path/to/your/terraform-cloud-mcp", # Full path to this project "run", "terraform-cloud-mcp" ], "env": { "TFC_TOKEN": "my token..." # replace with actual token } } } }

用您的实际 Terraform Cloud API 令牌替换your_terraform_cloud_token

其他 MCP 兼容平台

对于其他平台(例如 Cursor、Copilot Studio 或 Glama),请按照其平台特定的说明添加 MCP 服务器。大多数平台需要:

  1. 用于启动服务器的服务器路径或命令。

  2. Terraform Cloud API 令牌的环境变量。

  3. 配置在需要时自动启动服务器。


可用工具

账户工具

  • get_account_details() :获取经过身份验证的用户或服务帐户的帐户信息。

工作区管理工具

列表和搜索

  • list_workspaces(organization, page_number, page_size, search) :列出和过滤工作区。

  • get_workspace_details(workspace_id, organization, workspace_name) :获取有关特定工作区的详细信息。

创建和更新

  • create_workspace(organization, name, params) :使用可选参数创建一个新的工作区。

  • update_workspace(organization, workspace_name, params) :更新现有工作区的配置。

删除

  • delete_workspace(organization, workspace_name) :删除工作区及其所有内容。

  • safe_delete_workspace(organization, workspace_name) :仅当工作区未管理任何资源时才删除。

锁定和解锁

  • lock_workspace(workspace_id, reason) :锁定工作区以防止运行。

  • unlock_workspace(workspace_id) :解锁工作区以允许运行。

  • force_unlock_workspace(workspace_id) :强制解锁被其他用户锁定的工作区。

运行管理工具

  • create_run(workspace_id, params) :使用其 ID 在工作区中创建并排队 Terraform 运行。

  • list_runs_in_workspace(workspace_id, ...) :使用 ID 列出并过滤特定工作区中的运行。

  • list_runs_in_organization(organization, ...) :列出并过滤整个组织的运行。

  • get_run_details(run_id) :获取有关特定运行的详细信息。

  • apply_run(run_id, comment) :应用等待确认的运行。

  • discard_run(run_id, comment) :放弃等待确认的运行。

  • cancel_run(run_id, comment) :取消当前计划或申请的运行。

  • force_cancel_run(run_id, comment) :立即强制取消运行。

  • force_execute_run(run_id) :通过取消之前的运行强制执行待处理的运行。

计划管理工具

  • get_plan_details(plan_id) :获取有关特定计划的详细信息。

  • get_plan_json_output(plan_id) :检索具有适当重定向处理的特定计划的 JSON 执行计划。

  • get_run_plan_json_output(run_id) :通过适当的重定向处理从运行中检索 JSON 执行计划。

应用管理工具

  • get_apply_details(apply_id) :获取有关特定申请的详细信息。

  • get_errored_state(apply_id) :从失败的申请中检索错误状态以进行恢复。

项目管理工具

  • create_project(organization, name, params) :使用可选参数创建一个新项目。

  • update_project(project_id, params) :更新现有项目的配置。

  • list_projects(organization, ...) :列出并过滤组织中的项目。

  • get_project_details(project_id) :获取有关特定项目的详细信息。

  • delete_project(project_id) :删除一个项目(如果它包含工作区则失败)。

  • list_project_tag_bindings(project_id) :列出绑定到项目的标签。

  • add_update_project_tag_bindings(project_id, tag_bindings) :添加或更新项目的标签绑定。

  • move_workspaces_to_project(project_id, workspace_ids) :将工作区移动到项目中。

组织管理工具

  • get_organization_details(organization) :获取有关特定组织的详细信息。

  • get_organization_entitlements(organization) :显示组织功能的权利集。

  • list_organizations(page_number, page_size, query, query_email, query_name) :列出和过滤组织。

  • create_organization(name, email, params) :使用可选参数创建一个新组织。

  • update_organization(organization, params) :更新现有组织的设置。

  • delete_organization(organization) :删除组织及其所有内容。


开发指南

有关详细的开发指南,包括代码标准、Pydantic 模式和贡献工作流程,请参阅我们的开发文档

快速开发设置

# Clone the repository git clone https://github.com/severity1/terraform-cloud-mcp.git cd terraform-cloud-mcp # Create virtual environment and activate it uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install in development mode with development dependencies uv pip install -e . uv pip install black mypy pydantic ruff

基本开发命令

# Run the server in development mode mcp dev terraform_cloud_mcp/server.py # Run tests and quality checks uv run -m mypy . uv run -m ruff check . uv run -m black .

有关代码组织、架构、开发工作流程和代码质量指南的详细信息,请参阅docs/DEVELOPMENT.md


文档

代码库包含全面的文档:

  • 代码注释:重点解释实施决策背后的“原因”

  • 文档字符串:所有公共函数和类都包含详细的文档字符串

  • 示例文件docs/目录包含每个域的详细示例:

    • docs/DEVELOPMENT.md :开发标准和编码指南

    • docs/CONTRIBUTING.md :项目贡献指南

    • docs/models/ :所有模型类型的使用示例

    • docs/tools/ :每个工具的详细使用示例

    • docs/conversations/ :使用 API 的示例对话流程

故障排除

  1. 检查服务器日志(默认启用调试日志)

  2. 使用 MCP 检查器 ( http://localhost:5173 ) 进行调试

  3. 调试日志记录已在server.py中启用:

    import logging logging.basicConfig(level=logging.DEBUG)

贡献

欢迎贡献!如果您想为该项目做出贡献,请打开一个问题或拉取请求。

请参阅我们的贡献指南,了解有关如何开始、代码质量标准和拉取请求流程的详细说明。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/severity1/terraform-cloud-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server