Skip to main content
Glama

update_index

Modify an existing index in a workspace by changing only the fields you provide; update YAML, name, description, batch size, replicas, GPU, traces, and file filters, with optional validation.

Instructions

Updates an index in the specified workspace.

Only the fields you pass are changed; a field left as None is not touched (it is not cleared server-side).

Pass yaml_configuration to replace the index's YAML. When provided, pass the complete, updated configuration (not just the changed parts); it is validated before being applied. If validation fails and skip_validation_errors is False, it returns error messages.

All other parameters are index settings that can be updated independently of the YAML:

  • updated_index_name: rename the index.

  • description: new description.

  • max_allowed_batch_size: cap the number of files indexed per batch (1-500). Lower values reduce the chance that heavy files exceed the queue timeout and get retried.

  • max_index_replica_count: maximum number of index replicas (1-10).

  • gpu_enabled: enable or disable GPU acceleration.

  • capture_traces: record an indexing trace for every file queued for this index.

  • instance_size: pod size used to index files ("small", "medium", "large", or "xl").

  • file_name_prefix_filter: prefix pattern (e.g. "myprefix*") selecting which files are indexed. Can only be updated while the index is not deployed.

  • file_meta_filter: metadata conditions (field/operator/value, AND-combined) selecting which files are indexed. Can only be updated while the index is not deployed. :param index_name: Name of the index to update. :param updated_index_name: Optional new name for the index. :param yaml_configuration: Optional complete, updated YAML configuration for the index. :param description: Optional new description. :param max_allowed_batch_size: Optional per-pipeline cap on files indexed per batch (1-500). :param max_index_replica_count: Optional max number of index replicas (1-10). :param gpu_enabled: Optional toggle for GPU acceleration. :param capture_traces: Optional toggle for recording an indexing trace per queued file. :param instance_size: Optional pod size: "small", "medium", "large", or "xl". :param file_name_prefix_filter: Optional file-name prefix pattern filter. :param file_meta_filter: Optional metadata conditions filtering which files are indexed. :param skip_validation_errors: If True (default), updates the index even if validation fails. If False, stops update when validation fails.

:returns: Updated index or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
update_index(data={'key': 'value'}, threshold=10)

# Call with references
update_index(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
update_index(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

Input Schema

NameRequiredDescriptionDefault
index_nameYes
descriptionNo
gpu_enabledNo
instance_sizeNo
capture_tracesNo
file_meta_filterNo
updated_index_nameNo
yaml_configurationNo
max_allowed_batch_sizeNo
skip_validation_errorsNo
file_name_prefix_filterNo
max_index_replica_countNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changedv0.1.40
    • addedInput schema / $defs
      Added value: +{
      +  "MetaFilterCondition": {
      +    "description": "A single metadata condition controlling which files an index processes.",
      +    "properties": {
      +      "field": {
      +        "title": "Field",
      +        "type": "string"
      +      },
      +      "operator": {
      +        "enum": [
      +          "==",
      +          "!="
      +        ],
      +        "title": "Operator",
      +        "type": "string"
      +      },
      +      "value": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "title": "Value"
      +      }
      +    },
      +    "required": [
      +      "field",
      +      "operator",
      +      "value"
      +    ],
      +    "title": "MetaFilterCondition",
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / capture_traces
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Capture Traces"
      +}
    • addedInput schema / properties / description
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Description"
      +}
    • addedInput schema / properties / file_meta_filter
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/MetaFilterCondition"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "File Meta Filter"
      +}
    • addedInput schema / properties / file_name_prefix_filter
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "File Name Prefix Filter"
      +}
    • addedInput schema / properties / gpu_enabled
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Gpu Enabled"
      +}
    • addedInput schema / properties / instance_size
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "small",
      +        "medium",
      +        "large",
      +        "xl"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Instance Size"
      +}
    • addedInput schema / properties / max_allowed_batch_size
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Max Allowed Batch Size"
      +}
    • addedInput schema / properties / max_index_replica_count
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Max Index Replica Count"
      +}
    • addedInput schema / properties / updated_index_name
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Updated Index Name"
      +}
    • addedInput schema / properties / yaml_configuration / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / yaml_configuration / default
      Added value: +null
    • removedInput schema / properties / yaml_configuration / type
      Removed value: -"string"
    • changedInput schema / required
      Previous value: -[
      -  "index_name",
      -  "yaml_configuration"
      -]New value: +[
      +  "index_name"
      +]
  2. Changed4 schema fields changedv0.1.38
    • removedInput schema / properties / original_config_snippet
      Removed value: -{
      -  "title": "Original Config Snippet",
      -  "type": "string"
      -}
    • removedInput schema / properties / replacement_config_snippet
      Removed value: -{
      -  "title": "Replacement Config Snippet",
      -  "type": "string"
      -}
    • addedInput schema / properties / yaml_configuration
      Added value: +{
      +  "title": "Yaml Configuration",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "index_name",
      -  "original_config_snippet",
      -  "replacement_config_snippet"
      -]New value: +[
      +  "index_name",
      +  "yaml_configuration"
      +]
  3. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does this well by explaining that only passed fields change, that None does not clear fields, that YAML is replaced wholesale and validated, how skip_validation_errors behaves, and that results are stored with an object ID. It does not cover permissions, reversibility, or rate limits, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and organized, but it repeats every parameter twice: once in a bullet list and again in the :param block. The examples are generic and do not use update_index's actual parameters, and the object-store paragraph adds boilerplate, though it is relevant to the return behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter mutation tool with no annotations and no output schema, the description is complete enough to call correctly. It covers update semantics, validation behavior, deployment constraints, error returns, and the fact that output is stored as an object ID for later reference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates thoroughly for all 12 parameters. It explains ranges like batch size 1-500 and replica count 1-10, enum values for instance_size, the structure and AND semantics of file_meta_filter, the prefix-filter format, and the default behavior of skip_validation_errors.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Updates an index in the specified workspace.' It is clear what the tool does, but does not explicitly distinguish it from siblings such as create_index, validate_index, deploy_index, or get_index.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains update behavior and some constraints, such as file filters only being editable while the index is not deployed. However, it never states when to use update_index rather than create_index, validate_index, deploy_index, or other sibling tools, and gives no explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools