Skip to main content
Glama

update_integration

DestructiveIdempotent

Modifies an integration by slug, updating selected fields such as name, API key, provider config, secret mappings, pricing adjustments, or tags without changing model or workspace access.

Instructions

Update an integration's name, description, API key, provider config, Secret Reference mappings, pricing adjustments, or tags by slug. Only provided fields change; tags replaces the whole map and null clears it; key, secret mapping, and config changes take effect immediately and can disrupt dependent providers or live requests, while pricing multipliers change cost analytics and budget accounting. Review get_integration first. Model availability and workspace access remain separate in update_integration_models and update_integration_workspaces.

Input Schema

NameRequiredDescriptionDefault
keyNoNew API key for the provider
nameNoNew human-readable name for the integration
slugYesThe slug of the integration to update
tagsNoReplacement integration tags, or null to clear all tags
aws_regionNoNew AWS region (for AWS Bedrock)
api_versionNoNew API version (for Azure OpenAI)
custom_hostNoNew custom base URL for the provider
descriptionNoNew description for the integration
resource_nameNoNew resource name (for Azure OpenAI)
vertex_regionNoNew GCP region (for Vertex AI)
deployment_nameNoNew deployment name (for Azure OpenAI)
secret_mappingsNoReplacement runtime Secret Reference mappings; each target_field must be unique
aws_access_key_idNoNew AWS access key ID (for AWS Bedrock)
vertex_project_idNoNew GCP project ID (for Vertex AI)
pricing_adjustmentsNoReplacement cost multiplier configuration, or null to clear adjustments
aws_secret_access_keyNoNew AWS secret access key (for AWS Bedrock)

Output Schema

NameRequiredDescriptionDefault
okYesWhether the tool call succeeded and returned structured data
dataNoStructured success payload when ok is true
errorNoStructured error payload when ok is false

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.0.9
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changedv0.13.0
    • addedInput schema / properties / tags
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Replacement integration tags, or null to clear all tags"
      +}
  3. Changed2 schema fields changedv0.12.2
    • removedInput schema / properties / secret_mappings / items / properties / secret_key / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / secret_mappings / items / properties / secret_key / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  4. Changed2 schema fields changed
    • addedInput schema / properties / pricing_adjustments
      Added value: +{
      +  "anyOf": [
      +    {
      +      "properties": {
      +        "multiplier": {
      +          "description": "Per-unit multipliers applied over Portkey catalog pricing",
      +          "properties": {
      +            "additional_units": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "propertyNames": {
      +                    "type": "string"
      +                  },
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Multipliers keyed by Portkey pricing unit, such as web_search or file_search"
      +            },
      +            "cache_read_audio_input_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Cache-read audio input token price multiplier"
      +            },
      +            "cache_read_image_input_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Cache-read image input token price multiplier"
      +            },
      +            "cache_read_input_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Cache-read input token price multiplier"
      +            },
      +            "cache_read_text_input_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Cache-read text input token price multiplier"
      +            },
      +            "cache_write_image_input_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Cache-write image input token price multiplier"
      +            },
      +            "cache_write_input_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Cache-write input token price multiplier"
      +            },
      +            "cache_write_text_input_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Cache-write text input token price multiplier"
      +            },
      +            "default": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Fallback multiplier for pricing units; 1 is unchanged, 0.8 is a 20% discount"
      +            },
      +            "image": {
      +              "anyOf": [
      +                {
      +                  "properties": {
      +                    "default": {
      +                      "anyOf": [
      +                        {
      +                          "minimum": 0,
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Default image-generation price multiplier"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Image-generation pricing multipliers"
      +            },
      +            "prediction_accepted_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Accepted predicted-output token price multiplier"
      +            },
      +            "prediction_rejected_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Rejected predicted-output token price multiplier"
      +            },
      +            "reasoning_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Reasoning token price multiplier"
      +            },
      +            "request_audio_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Audio input token price multiplier"
      +            },
      +            "request_image_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Image input token price multiplier"
      +            },
      +            "request_text_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Text input token price multiplier"
      +            },
      +            "request_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Input token price multiplier"
      +            },
      +            "response_audio_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Audio output token price multiplier"
      +            },
      +            "response_image_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Image output token price multiplier"
      +            },
      +            "response_text_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Text output token price multiplier"
      +            },
      +            "response_token": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Output token price multiplier"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Replacement cost multiplier configuration, or null to clear adjustments"
      +}
    • addedInput schema / properties / secret_mappings
      Added value: +{
      +  "description": "Replacement runtime Secret Reference mappings; each target_field must be unique",
      +  "items": {
      +    "properties": {
      +      "secret_key": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Optional key to select from a multi-value secret"
      +      },
      +      "secret_reference_id": {
      +        "description": "Secret Reference UUID or slug accessible to the workspace",
      +        "type": "string"
      +      },
      +      "target_field": {
      +        "description": "Integration field populated at runtime: key or configurations.<field>",
      +        "type": "string"
      +      },
      +      "value_format": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "string",
      +              "json"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Treat the resolved value as a plain string or parsed JSON"
      +      }
      +    },
      +    "required": [
      +      "target_field",
      +      "secret_reference_id"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  5. Addedv1.0.1
  6. Removed
  7. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and mutation semantics, and the description adds real substance on top: partial-update semantics ('only provided fields change'), replacement/clearing semantics for tags, immediate effect of key/secret/config changes with a warning about disrupting dependent providers or live requests, and the analytics/accounting impact of pricing multipliers. That is exactly the operational context annotations cannot convey.

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

Conciseness5/5

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

Front-loaded with the core action and field list, then layered with the mutation-safety warning, the get_integration precondition, and the sibling carve-out. Every sentence carries distinct information; nothing is recycled from the schema or annotations.

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?

With 16 parameters, a 100% schema coverage, and an output schema present, the description needn't explain return values. What remains essential for a destructive, partially-applied mutation—precondition, replacement semantics, live-impact warnings, and scope boundaries—is all stated.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds behavior beyond the schema: tags is a full replacement and null clears it, and the key/secret_mappings/pricing_adjustments parameters carry immediate side effects described nowhere in the schema. It doesn't explain the provider-specific fields (aws_region, vertex_region, etc.), which are adequately covered by schema descriptions, so 5 is not warranted.

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

Purpose5/5

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

Starts with a specific verb+resource (update an integration by slug) and enumerates the mutable fields, including provider config, Secret Reference mappings, pricing adjustments, and tags. It explicitly carves out what this tool does not cover, naming update_integration_models and update_integration_workspaces, so an agent can distinguish it from siblings without opening a schema.

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

Usage Guidelines4/5

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

Provides a concrete precondition ('Review get_integration first') and routes the agent away from this tool for model availability and workspace access, which are the most likely sibling-confusion points. It stops short of explicit when-not-to-use scenarios outside those two carve-outs, so it's strong but not exhaustive.

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