Skip to main content
Glama
severity1

terraform-cloud-mcp

update_variable_set

Modify Terraform Cloud variable set configurations like name, description, global scope, or priority settings to adapt infrastructure management parameters.

Instructions

Update an existing variable set.

Modifies the settings of a variable set. Only specified attributes will be updated; unspecified attributes remain unchanged.

API endpoint: PATCH /varsets/{varset_id}

Args: varset_id: The ID of the variable set (format: "varset-xxxxxxxx")

params: Variable set parameters to update (optional):
    - name: New name for the variable set
    - description: New description of the variable set
    - global: Whether this is a global variable set
    - priority: Whether this variable set takes priority over workspace variables

Returns: The updated variable set with all current settings and configuration

See: docs/tools/variables.md#update-variable-set for reference documentation

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
varset_idYes
paramsNo

Implementation Reference

  • The async handler function implementing the core logic for the 'update_variable_set' tool. It validates input using VariableSetParams, constructs the API payload, and performs a PATCH request to update the variable set in Terraform Cloud.
    @handle_api_errors
    async def update_variable_set(
        varset_id: str,
        params: Optional[VariableSetParams] = None,
    ) -> APIResponse:
        """Update an existing variable set.
    
        Modifies the settings of a variable set. Only specified attributes will be
        updated; unspecified attributes remain unchanged.
    
        API endpoint: PATCH /varsets/{varset_id}
    
        Args:
            varset_id: The ID of the variable set (format: "varset-xxxxxxxx")
    
            params: Variable set parameters to update (optional):
                - name: New name for the variable set
                - description: New description of the variable set
                - global: Whether this is a global variable set
                - priority: Whether this variable set takes priority over workspace variables
    
        Returns:
            The updated variable set with all current settings and configuration
    
        See:
            docs/tools/variables.md#update-variable-set for reference documentation
        """
        param_dict = params.model_dump(exclude_none=True) if params else {}
        request = VariableSetUpdateRequest(varset_id=varset_id, **param_dict)
    
        payload = create_api_payload(
            resource_type="varsets", model=request, exclude_fields={"varset_id"}
        )
    
        return await api_request(f"varsets/{varset_id}", method="PATCH", data=payload)
  • Pydantic schema model 'VariableSetParams' used for input validation of optional parameters (name, description, global, priority) passed to the update_variable_set handler.
    class VariableSetParams(APIRequest):
        """Parameters for variable set operations without routing fields.
    
        This model provides all optional parameters for creating or updating variable
        sets, separating configuration parameters from routing information.
    
        Reference: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/variable-sets
    
        See:
            docs/models/variables.md for reference
        """
    
        name: Optional[str] = Field(
            None,
            description="Variable set name",
            min_length=1,
            max_length=90,
        )
        description: Optional[str] = Field(
            None,
            description="Description of the variable set",
            max_length=512,
        )
        global_: Optional[bool] = Field(
            None,
            alias="global",
            description="Whether this is a global variable set",
        )
        priority: Optional[bool] = Field(
            None,
            description="Whether this variable set takes priority over workspace variables",
        )
  • Tool registration line where 'update_variable_set' is registered as an MCP tool with write permissions configuration (enabled only if not in read-only mode).
    mcp.tool(**write_tool_config)(variables.update_variable_set)
  • Internal Pydantic request model 'VariableSetUpdateRequest' constructed in the handler, including varset_id validation and embedding VariableSetParams.
    class VariableSetUpdateRequest(APIRequest):
        """Request model for updating variable sets.
    
        Used for PATCH /varsets/:varset_id endpoint.
    
        Reference: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/variable-sets
    
        See:
            docs/models/variables.md for reference
        """
    
        varset_id: str = Field(
            ...,
            description="The variable set ID",
            pattern=r"^varset-[a-zA-Z0-9]{16}$",
        )
        params: Optional[VariableSetParams] = Field(
            None,
            description="Variable set parameters to update",
        )

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