terraform-cloud-mcp

by severity1
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Supports loading Terraform Cloud API tokens from .env files for easier authentication configuration

  • Integrates with Terraform Cloud API, enabling workspace management (create, read, update, delete, lock/unlock) and authentication capabilities

Terraform Cloud MCP 服务器

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


特征

  • 帐户管理:获取经过身份验证的用户或服务帐户的帐户详细信息。
  • 工作区管理:创建、读取、更新、删除、锁定/解锁工作区。
  • 运行管理:创建运行、列出运行、获取运行详细信息、应用/放弃/取消运行。
  • 组织管理:列出、创建、更新、删除组织以及查看组织权利。
  • 未来功能:状态管理、变量管理等。

快速入门

先决条件

  • 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) :强制解锁被其他用户锁定的工作区。

数据保留

  • set_data_retention_policy(workspace_id, days) :设置数据保留策略。
  • get_data_retention_policy(workspace_id) :获取当前数据保留策略。
  • delete_data_retention_policy(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_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)

贡献

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

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

ID: iukijjkm1e