Skip to main content
Glama

update_rate_limit

Update an existing rate-limit policy by ID, including its name, reset interval, maximum value, or non-empty conditions. Use it to adjust limits without changing the policy type, target, or grouping.

Instructions

Update a rate-limit policy's name, unit, value, or non-empty conditions by id. The public contract does not allow changing its type, target, or grouping after creation.

Input Schema

NameRequiredDescriptionDefault
idYesRate-limit policy UUID
nameNoReplacement display name
unitNoReplacement reset interval
valueNoReplacement maximum
conditionsNoReplacement conditions

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. Changed9 schema fields changedv0.11.5
    • addedInput schema / properties / conditions
      Added value: +{
      +  "description": "Replacement conditions",
      +  "items": {
      +    "properties": {
      +      "excludes": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "minItems": 1,
      +            "type": "array"
      +          }
      +        ],
      +        "description": "Values to exclude"
      +      },
      +      "key": {
      +        "description": "Match key such as api_key, virtual_key, provider, config, prompt, model, endpoint_type, mcp_server, mcp_tool, workspace_id, or metadata.*",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "value": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "minItems": 1,
      +            "type": "array"
      +          }
      +        ],
      +        "description": "One value or several OR-matched values; use * for wildcard matching"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "value"
      +    ],
      +    "type": "object"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedInput schema / properties / id / description
      Previous value: -"The unique identifier of the rate limit"New value: +"Rate-limit policy UUID"
    • addedInput schema / properties / id / minLength
      Added value: +1
    • changedInput schema / properties / name / description
      Previous value: -"New name for the rate limit"New value: +"Replacement display name"
    • changedInput schema / properties / unit / description
      Previous value: -"New time unit: 'rpm' (per minute), 'rph' (per hour), or 'rpd' (per day)"New value: +"Replacement reset interval"
    • changedInput schema / properties / unit / enum
      Previous value: -[
      -  "rpm",
      -  "rph",
      -  "rpd"
      -]New value: +[
      +  "rpm",
      +  "rph",
      +  "rpd",
      +  "rpw"
      +]
    • changedInput schema / properties / value / description
      Previous value: -"New maximum allowed value per unit"New value: +"Replacement maximum"
    • removedInput schema / properties / value / exclusiveMinimum
      Removed value: -0
    • addedInput schema / properties / value / minimum
      Added value: +0
  3. Addedv1.0.1
  4. Removed
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the description's added value is scope: it discloses which attributes are immutable post-creation, which is genuinely beyond the annotations. What it omits is whether any provided fields are merge-patched or replaced wholesale, and what happens to fields left out.

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?

Two sentences, no filler: the first front-loads what can be changed and how it is identified, the second carries the hard constraint. Every clause earns its place.

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

Completeness4/5

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

Since an output schema exists, return values need no explanation, and the annotations cover the safety profile; what remains needed is the mutable field set and the immutability boundary, both present. It falls short of a 5 only because patch-versus-replace semantics for omitted or provided fields are left ambiguous for a non-idempotent mutation tool with five parameters.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents each field as a 'Replacement ...' value, including nested condition keys, wildcards, excludes, and minItems on conditions. The description echoes the field list and the 'non-empty conditions' rule but adds no syntax or format detail beyond what the schema already provides, so the baseline 3 applies.

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?

States a specific verb (Update) and resource (a rate-limit policy) plus the exact set of mutable fields (name, unit, value, non-empty conditions) keyed by id. The resource name cleanly separates it from the many other update_* siblings such as update_usage_limit, update_guardrail, and update_access_policy, so an agent can pick it without opening schemas.

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?

Clearly frames this as a by-id mutation of an existing policy and adds a real usage constraint: type, target, and grouping cannot be changed after creation, which tells the agent that a recreate path is needed for those cases. It does not, however, name the concrete alternatives (create_rate_limit / get_rate_limit / delete_rate_limit) or spell out when an agent should call get_rate_limit first.

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