Token导航 LogoToken导航TokenDH.com
Terry-Form MCP logo
运维云端stdio官方级别未说明来源级核验

Terry-Form MCP

MCP Server

Terry-Form MCP是一个容器化的Terraform执行服务,通过Model Context Protocol为AI助手提供安全、结构化的Terraform访问能力。

工具数

25

提示词数

0

GitHub Stars

9

资源数

0
基础设施即代码PythonClaude开发工具Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

aj-geddes

提供方

aj-geddes

最后核验

2026/5/17 20:19

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -it --rm \

详细介绍

Terry Form MCP

通过模型上下文协议实现人工智能驱动的地形执行。

![Release](https://github.com/aj-geddes/terry-form-mcp/releases) ![License: MIT](https://opensource.org/licenses/MIT) ](https://github.com/aj-geddes/terry-form-mcp/blob/main/Dockerfile) ![Python](https://www.python.org/)

Terry Form MCP是一个集装箱 模型上下文协议 服务器,为克劳德等人工智能助手提供对Terraform的安全、结构化访问。它公开了25个MCP工具,涵盖了Terraform执行、LSP智能、GitHub集成和Terraform Cloud连接——所有这些工具都在Docker中运行,设计阻止了破坏性操作。

文档网站

______________________________________________________________________

仪表盘

Terry-Form MCP Dashboard

内置的web仪表板提供实时服务器运行状况监控、工具类别概述和集成状态一目了然。实时状态每5秒自动刷新一次。

配置UI

Server Configuration

选项卡式配置界面允许您管理服务器设置、集成、云提供商凭据和速率限制,所有这些都不需要接触配置文件。使用HAT堆栈(HTMX+Alpine.js+Tailwind CSS)构建。

GitHub集成云提供商费率限制
Cloud ProvidersRate Limits

工具目录

Tool Catalog

交互式工具目录位于 /tools 列出了所有25个MCP工具,包括搜索、类别过滤和可扩展参数详细信息。也可作为原始JSON端点在 /api/tools 作为一种静态 tools.json 文件。

______________________________________________________________________

快速开始

先决条件

  • Docker已安装并正在运行
  • Python>=3.10(用于本地开发)

1.建造

scripts/build.sh      # Linux/macOS
scripts\build.bat     # Windows
# or directly:
docker build -t terry-form-mcp .

2.作为MCP服务器运行

docker run -it --rm \
  -v "$(pwd)":/mnt/workspace \
  terry-form-mcp

3.验证图像

scripts/verify.sh   # Runs 8 checks: Docker, image size, Terraform, terraform-ls, Python, files, tools, startup

______________________________________________________________________

环境变量

所有配置都是通过环境变量进行的。基本使用不需要配置文件。

服务器配置

变量描述默认值必填
MCP_TRANSPORT传输协议: stdio, sse,或 streamable-httpstdio没有
TERRY_HOST服务器绑定地址(回退: HOST)0.0.0.0没有
TERRY_PORT服务器端口(回退: PORT)8000没有
TERRY_FORM_API_KEY用于前端身份验证的API密钥;如果未设置,则禁用身份验证
TERRY_CSRF_SECRETCSRF令牌秘密;如果未设置,则在重新启动时重新生成随机推荐
TERRY_WORKSPACE_ROOTTerraform工作区根目录/mnt/workspace没有
TERRY_CONFIG_PATH配置文件路径/app/config/terry-config.json没有

地形

变量描述默认值必填
MAX_OPERATION_TIMEOUT地形命令超时(秒)(10–3600)300没有

语言服务器协议

变量描述默认值必填
TERRY_TERRAFORM_LS_PATH通往 terraform-ls 二进制terraform-ls没有
TERRY_LSP_TIMEOUTLSP请求超时(秒)30没有
TERRY_LSP_MAX_RESPONSE_BYTES最大LSP响应大小(字节)10485760没有

GitHub集成

变量描述默认值必填
GITHUB_APP_IDGitHub应用程序ID适用于GitHub功能
GITHUB_APP_PRIVATE_KEY_PATHGitHub应用程序私钥文件的路径GitHub功能
GITHUB_APP_PRIVATE_KEYGitHub应用程序私钥(内联PEM)Alt到路径
GITHUB_APP_INSTALLATION_IDGitHub应用程序安装ID
GITHUB_APP_WEBHOOK_SECRETWebhook签名验证密钥

地形云

变量描述默认值必填
TF_API_TOKENTerraform Cloud API令牌用于TF Cloud功能

速率限制

变量描述默认值必填
TERRY_RATE_LIMIT_TERRAFORM每分钟地形操作数20没有
TERRY_RATE_LIMIT_GITHUBGitHub每分钟操作数30没有
TERRY_RATE_LIMIT_TF_CLOUD地形云每分钟运行次数30没有
TERRY_RATE_LIMIT_DEFAULT默认每分钟速率限制100没有

云提供商通道

这些变量直接转发到Terraform子流程。将它们设置为与您的云提供商进行身份验证。

AWS: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_DEFAULT_REGION, AWS_REGION, AWS_PROFILE

GCP: GOOGLE_CREDENTIALS, GOOGLE_APPLICATION_CREDENTIALS, GOOGLE_PROJECT, GOOGLE_REGION, GOOGLE_ZONE

Azure: ARM_CLIENT_ID, ARM_CLIENT_SECRET, ARM_SUBSCRIPTION_ID, ARM_TENANT_ID

______________________________________________________________________

MCP客户端配置

将Terry Form添加到任何兼容MCP的客户端:

{
  "mcpServers": {
    "terry": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/path/to/your/workspace:/mnt/workspace",
        "terry-form-mcp"
      ]
    }
  }
}

Platform-specific examples

克劳德桌面(Windows)

{
  "mcpServers": {
    "terry": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "C:\\Users\\YourUsername\\terraform-projects:/mnt/workspace",
        "terry-form-mcp"
      ]
    }
  }
}

克劳德桌面(macOS)

{
  "mcpServers": {
    "terry": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/YourUsername/terraform-projects:/mnt/workspace",
        "terry-form-mcp"
      ]
    }
  }
}

VSCode(使用工作空间变量)

{
  "mcp.servers": {
    "terry": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "${workspaceFolder}:/mnt/workspace",
        "terry-form-mcp"
      ]
    }
  }
}

______________________________________________________________________

工具(25)

类别工具计数
核心地形terry, terry_version, terry_environment_check, terry_workspace_list4
LSP情报terraform_validate_lsp, terraform_hover, terraform_complete, terraform_format_lsp, terraform_lsp_status5
诊断terry_lsp_debug, terry_workspace_info, terry_lsp_init, terry_file_check, terry_workspace_setup, terry_analyze6
安全terry_security_scan, terry_recommendations2
GitHubgithub_clone_repo, github_list_terraform_files, github_get_terraform_config, github_prepare_workspace4
地形云tf_cloud_list_workspaces, tf_cloud_get_workspace, tf_cloud_list_runs, tf_cloud_get_state_outputs4

核心地形

# Initialize and validate a project
terry(path="infrastructure/aws", actions=["init", "validate"])

# Plan with variables
terry(path="environments/prod", actions=["plan"], vars={"instance_count": "3", "region": "us-east-1"})

init, validate, fmt,以及 plan 是允许的。 applydestroy 被封锁。

LSP情报

# Code completions
terraform_complete(file_path="main.tf", line=10, character=0)

# Hover documentation
terraform_hover(file_path="main.tf", line=15, character=12)

# Detailed validation with error locations
terraform_validate_lsp(file_path="main.tf")

# Format a file
terraform_format_lsp(file_path="main.tf")

由...驱动 terraform-ls v0.38.5--提供上下文感知的补全、内联文档和具有精确源位置的诊断。

GitHub集成

# Clone a repo and prepare it for Terraform operations
github_clone_repo(owner="myorg", repo="infrastructure")
github_prepare_workspace(owner="myorg", repo="infrastructure", config_path="environments/prod")

安全扫描

# Scan for hardcoded credentials, missing encryption, overly permissive policies
terry_security_scan(path="my-project")

# Get actionable improvement recommendations
terry_recommendations(path="my-project")

______________________________________________________________________

建筑

┌─────────────┐     MCP Protocol     ┌──────────────────────────────────────┐
│ AI Assistant │ ◄──────────────────► │  Terry-Form MCP Server               │
│ (Claude)     │                      │                                      │
└─────────────┘                      │  ┌─────────────┐  ┌──────────────┐  │
                                     │  │ Terraform    │  │ terraform-ls │  │
                                     │  │ CLI 1.12     │  │ LSP 0.38.5   │  │
                                     │  └──────┬───────┘  └──────┬───────┘  │
                                     │         │                 │          │
                                     │         ▼                 ▼          │
                                     │  ┌──────────────────────────────┐   │
                                     │  │   /mnt/workspace (isolated)   │   │
                                     │  └──────────────────────────────┘   │
                                     └──────────────────────────────────────┘
                                              Docker Container

关键组件

文件目的
src/server_enhanced_with_lsp.py主FastMCP服务器——注册所有25个工具
src/terry-form-mcp.py核心Terraform子流程执行
src/terraform_lsp_client.py异步LSP客户端包装 terraform-ls
src/mcp_request_validator.py输入净化、路径遍历预防、速率限制
src/github_repo_handler.py克隆存储库并提取Terraform文件
src/github_app_auth.pyGitHub应用程序JWT/OAuth身份验证
src/frontend/HAT堆栈web UI(仪表板+配置)

前端堆栈

内置的web UI使用 HAT堆栈:

  • HTMX 2.0——不完全重新加载的部分页面更新
  • A.lpine.js 3.14——标签和吐司的轻量级客户端反应
  • Tailwind CSS——暗模式优先实用样式

与一起运行时,可在服务器根目录访问 streamable-httpsse 运输。

______________________________________________________________________

安全模型

Terry Form采用四层深度防御:

保护
集装箱隔离所有执行都在临时Docker容器中。没有主机访问权限。
操作许可清单只有 init, validate, fmt, planapply/destroy.
工作区隔离所有文件操作仅限于 /mnt/workspace。路径遍历被阻止。
输入验证JSON模式强制、变量净化、每个类别的速率限制。

强制环境变量: TF_IN_AUTOMATION=true, TF_INPUT=false, CHECKPOINT_DISABLE=true.

______________________________________________________________________

使用Web UI运行

要使用仪表板和配置UI,请使用HTTP传输运行:

# Local
MCP_TRANSPORT=streamable-http HOST=0.0.0.0 PORT=8000 python3 src/server_enhanced_with_lsp.py

# Docker
docker run -it --rm \
  -p 8000:8000 \
  -v "$(pwd)":/mnt/workspace \
  -e MCP_TRANSPORT=streamable-http \
  terry-form-mcp

然后打开 http://localhost:8000 在您的浏览器中。

配置选项卡

选项卡它配置了什么
服务器传输模式、主机、端口、API密钥
GitHub应用ID、安装ID、私钥路径、webhook密钥
地形云API令牌
云提供商AWS、GCP和Azure凭据
速率限制每类请求限制(立即适用)
地形选项日志级别,操作超时

______________________________________________________________________

集装箱详情

建立在 hashicorp/terraform:1.12 (基于阿尔卑斯山,~150MB)。包括:

  • Terraform CLI 1.12
  • terraform-ls v0.38.5用于LSP支持
  • Python 3.12与FastMCP 3.0+
  • 以非root用户身份运行 terraform (UID 1001)

______________________________________________________________________

发展

# Install dependencies
pip install -r requirements.txt

# Run locally
python3 src/server_enhanced_with_lsp.py

# Code quality
black .       # Format (88-char line limit)
flake8 .      # Lint
mypy src/*.py # Type check

______________________________________________________________________

局限性

  • 无状态修改applydestroy 被故意封锁
  • 仅字符串变量 --CLI直通不支持复杂变量类型
  • LSP冷启动 --第一次LSP操作需要1-2秒进行初始化
  • 本地执行 --专为开发工作流程而非生产CI/CD而设计

______________________________________________________________________

许可证

麻省理工学院

目录标签

目录标签

基础设施即代码PythonClaude开发工具Terraform执行本地部署AI集成容器化服务

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Docker

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

25

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauthlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP