Skip to main content
Glama

update_model

Modify an existing data model's configuration, name, identifier, or tracking columns in Polytomic to adapt to evolving data requirements.

Instructions

Update an existing data model in Polytomic.

Args: id: The model ID to update name: Optional new name for the model configuration: Optional JSON string with model config (e.g. {"query": "SELECT * FROM users"}) identifier: Optional field name to use as unique identifier tracking_columns: Optional JSON array of column names for change tracking

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
nameNo
configurationNo
identifierNo
tracking_columnsNo

Implementation Reference

  • The `update_model` function acts as an MCP tool handler to update an existing data model in Polytomic. It fetches the current model state, merges it with new parameters, and performs a PUT request to the API.
    @mcp.tool()
    async def update_model(
        id: str,
        name: str | None = None,
        configuration: str | None = None,
        identifier: str | None = None,
        tracking_columns: str | None = None,
    ) -> str:
        """Update an existing data model in Polytomic.
    
        Args:
            id: The model ID to update
            name: Optional new name for the model
            configuration: Optional JSON string with model config (e.g. {"query": "SELECT * FROM users"})
            identifier: Optional field name to use as unique identifier
            tracking_columns: Optional JSON array of column names for change tracking
        """
        current = await polytomic_request(f"/models/{id}")
        current_data = current.get("data", current)
    
        body = {
            "name": name or current_data.get("name"),
            "connection_id": current_data.get("connection_id"),
            "configuration": json.loads(configuration) if configuration else current_data.get("configuration"),
        }
        if identifier:
            body["identifier"] = identifier
        elif current_data.get("identifier"):
            body["identifier"] = current_data.get("identifier")
    
        if tracking_columns:
            body["tracking_columns"] = json.loads(tracking_columns)
        elif current_data.get("tracking_columns"):
            body["tracking_columns"] = current_data.get("tracking_columns")
    
        result = await polytomic_request(f"/models/{id}", method="PUT", body=body)
        return json.dumps(result, indent=2)

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/therevenueengineer/polytomic-mcp'

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