Cover image
Try Now
2025-04-05

将AI助手与Terraform Cloud API集成的模型上下文协议(MCP)服务器,使您可以通过自然对话管理基础架构

3 years

Works with Finder

2

Github Watches

1

Github Forks

6

Github Stars

Terraform Cloud MCP Server

A Model Context Protocol (MCP) server that integrates AI assistants with the Terraform Cloud API, allowing you to manage your infrastructure through natural conversation. Built with Pydantic models and structured around domain-specific modules, this server is compatible with any MCP-supporting platform including Claude, Claude Code CLI, Claude Desktop, Cursor, Copilot Studio, and others.

Version Python Type Checking Code Quality


Features

  • Account Management: Get account details for authenticated users or service accounts.
  • Workspace Management: Create, read, update, delete, lock/unlock workspaces.
  • Run Management: Create runs, list runs, get run details, apply/discard/cancel runs.
  • Plan Management: Retrieve plan details and JSON execution output with advanced HTTP redirect handling.
  • Apply Management: Get apply details and recover from failed state uploads.
  • Organization Management: List, create, update, delete organizations, and view organization entitlements.
  • Future Features: Variables management, state versions, and more.

Quick Start

Prerequisites

  • Python 3.12+
  • MCP (includes FastMCP and development tools)
  • uv package manager (recommended) or pip
  • Terraform Cloud API token

Installation

# 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 .

Adding to Claude Environments

Adding to 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"

Adding to Claude Desktop

Create a claude_desktop_config.json configuration file:

  • mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • win: %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
      }
    }
  }
}

Replace your_terraform_cloud_token with your actual Terraform Cloud API token.

Other MCP-Compatible Platforms

For other platforms (like Cursor, Copilot Studio, or Glama), follow their platform-specific instructions for adding an MCP server. Most platforms require:

  1. The server path or command to start the server.
  2. Environment variables for the Terraform Cloud API token.
  3. Configuration to auto-start the server when needed.

Available Tools

Account Tools

  • get_account_details(): Gets account information for the authenticated user or service account.

Workspace Management Tools

List & Search

  • list_workspaces(organization, page_number, page_size, search): List and filter workspaces.
  • get_workspace_details(workspace_id, organization, workspace_name): Get detailed information about a specific workspace.

Create & Update

  • create_workspace(organization, name, params): Create a new workspace with optional parameters.
  • update_workspace(organization, workspace_name, params): Update an existing workspace's configuration.

Delete

  • delete_workspace(organization, workspace_name): Delete a workspace and all its content.
  • safe_delete_workspace(organization, workspace_name): Delete only if the workspace isn't managing any resources.

Lock & Unlock

  • lock_workspace(workspace_id, reason): Lock a workspace to prevent runs.
  • unlock_workspace(workspace_id): Unlock a workspace to allow runs.
  • force_unlock_workspace(workspace_id): Force unlock a workspace locked by another user.

Run Management Tools

  • create_run(workspace_id, params): Create and queue a Terraform run in a workspace using its ID.
  • list_runs_in_workspace(workspace_id, ...): List and filter runs in a specific workspace using its ID.
  • list_runs_in_organization(organization, ...): List and filter runs across an entire organization.
  • get_run_details(run_id): Get detailed information about a specific run.
  • apply_run(run_id, comment): Apply a run waiting for confirmation.
  • discard_run(run_id, comment): Discard a run waiting for confirmation.
  • cancel_run(run_id, comment): Cancel a run currently planning or applying.
  • force_cancel_run(run_id, comment): Forcefully cancel a run immediately.
  • force_execute_run(run_id): Forcefully execute a pending run by canceling prior runs.

Plan Management Tools

  • get_plan_details(plan_id): Get detailed information about a specific plan.
  • get_plan_json_output(plan_id): Retrieve the JSON execution plan for a specific plan with proper redirect handling.
  • get_run_plan_json_output(run_id): Retrieve the JSON execution plan from a run with proper redirect handling.

Apply Management Tools

  • get_apply_details(apply_id): Get detailed information about a specific apply.
  • get_errored_state(apply_id): Retrieve the errored state from a failed apply for recovery.

Organization Management Tools

  • get_organization_details(organization): Get detailed information about a specific organization.
  • get_organization_entitlements(organization): Show entitlement set for organization features.
  • list_organizations(page_number, page_size, query, query_email, query_name): List and filter organizations.
  • create_organization(name, email, params): Create a new organization with optional parameters.
  • update_organization(organization, params): Update an existing organization's settings.
  • delete_organization(organization): Delete an organization and all its content.

Development Guide

For detailed development guidance including code standards, Pydantic patterns, and contribution workflows, see our Development Documentation.

Quick Development Setup

# 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

Basic Development Commands

# 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 .

For detailed information on code organization, architecture, development workflows, and code quality guidelines, refer to docs/DEVELOPMENT.md.


Documentation

The codebase includes comprehensive documentation:

  • Code Comments: Focused on explaining the "why" behind implementation decisions
  • Docstrings: All public functions and classes include detailed docstrings
  • Example Files: The docs/ directory contains detailed examples for each domain:
    • docs/DEVELOPMENT.md: Development standards and coding guidelines
    • docs/CONTRIBUTING.md: Guidelines for contributing to the project
    • docs/models/: Usage examples for all model types
    • docs/tools/: Detailed usage examples for each tool
    • docs/conversations/: Sample conversation flows with the API

Troubleshooting

  1. Check server logs (debug logging is enabled by default)
  2. Use the MCP Inspector (http://localhost:5173) for debugging
  3. Debug logging is already enabled in server.py:
    import logging
    logging.basicConfig(level=logging.DEBUG)
    

Contributing

Contributions are welcome! Please open an issue or pull request if you'd like to contribute to this project.

See our Contributing Guide for detailed instructions on how to get started, code quality standards, and the pull request process.

相关推荐

  • NiKole Maxwell
  • I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Callycode Limited
  • A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.

  • Alexandru Strujac
  • Efficient thumbnail creator for YouTube videos

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Beniyam Berhanu
  • Therapist adept at identifying core issues and offering practical advice with images.

  • Khalid kalib
  • Write professional emails

  • ANGEL LEON
  • A world class elite tech co-founder entrepreneur, expert in software development, entrepreneurship, marketing, coaching style leadership and aligned with ambition for excellence, global market penetration and worldy perspectives.

  • INFOLAB OPERATIONS 2
  • A medical specialist offering assistance grounded in clinical guidelines. Disclaimer: This is intended for research and is NOT safe for clinical use!

  • apappascs
  • 发现市场上最全面,最新的MCP服务器集合。该存储库充当集中式枢纽,提供了广泛的开源和专有MCP服务器目录,并提供功能,文档链接和贡献者。

  • ShrimpingIt
  • MCP系列GPIO Expander的基于Micropython I2C的操作,源自ADAFRUIT_MCP230XX

  • OffchainLabs
  • 进行以太坊的实施

  • huahuayu
  • 统一的API网关,用于将多个Etherscan样区块链Explorer API与对AI助手的模型上下文协议(MCP)支持。

  • deemkeen
  • 用电源组合控制您的MBOT2:MQTT+MCP+LLM

  • jae-jae
  • MCP服务器使用剧作《无头浏览器》获取网页内容。

  • zhaoyunxing92
  • MCP(消息连接器协议)服务

    Reviews

    4 (1)
    Avatar
    user_t9RC0b8W
    2025-04-15

    The MCP-Server by tgsca is a game-changer for managing server operations efficiently. With its intuitive interface and robust performance, it makes server management a breeze. I highly recommend visiting https://mcp.so/server/mcp-server/tgsca to explore its features. The welcoming information and seamless start URL greatly enhance the user experience. It's definitely a must-have for anyone in need of reliable server management solutions.