Skip to main content
Glama

aanet_update_subkey

Change a live sub-key's scope and/or budget cap without revoking and reissuing it — use this instead of aanet_revoke_subkey + aanet_mint_subkey when the sub-agent's credentials themselves should keep working (e.g. widening its file scope mid-task, or raising a budget cap it hit). Owner_key required. Fields left unset are unchanged, not cleared (the three window/rate limits are cleared by passing 0).

Input Schema

NameRequiredDescriptionDefault
api_keyYesBearer credential for this workspace: either the owner_key returned once by aanet_create_workspace/aanet_create_trial_workspace, or a sub-key returned by aanet_mint_subkey. Sent under the hood as `Authorization: Bearer <api_key>`. Owner-only tools reject a sub-key with a 403.
subkey_idYesThe subkey_id from aanet_mint_subkey or aanet_list_subkeys.
budget_capNoNew spending cap. Leave unset to keep the current value unchanged.
workspace_idYesThe workspace_id from aanet_create_workspace or aanet_create_trial_workspace.
path_scope_prefixNoNew path-scope prefix. Leave unset to keep the current value unchanged.
spend_limit_per_dayNoNew 24-hour spend limit in units; 0 removes it. Leave unset to keep the current value.
spend_limit_per_hourNoNew hourly spend limit in units; 0 removes it. Leave unset to keep the current value.
rate_limit_per_minuteNoNew requests-per-minute limit; 0 removes it. Leave unset to keep the current value.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / rate_limit_per_minute
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "New requests-per-minute limit; 0 removes it. Leave unset to keep the current value.",
      +  "title": "Rate Limit Per Minute"
      +}
    • addedInput schema / properties / spend_limit_per_day
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "New 24-hour spend limit in units; 0 removes it. Leave unset to keep the current value.",
      +  "title": "Spend Limit Per Day"
      +}
    • addedInput schema / properties / spend_limit_per_hour
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "New hourly spend limit in units; 0 removes it. Leave unset to keep the current value.",
      +  "title": "Spend Limit Per Hour"
      +}
  2. Changed6 schema fields changed
    • addedInput schema / properties / api_key / description
      Added value: +"Bearer credential for this workspace: either the owner_key returned once by aanet_create_workspace/aanet_create_trial_workspace, or a sub-key returned by aanet_mint_subkey. Sent under the hood as `Authorization: Bearer <api_key>`. Owner-only tools reject a sub-key with a 403."
    • changedInput schema / properties / budget_cap / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / budget_cap / description
      Added value: +"New spending cap. Leave unset to keep the current value unchanged."
    • addedInput schema / properties / path_scope_prefix / description
      Added value: +"New path-scope prefix. Leave unset to keep the current value unchanged."
    • addedInput schema / properties / subkey_id / description
      Added value: +"The subkey_id from aanet_mint_subkey or aanet_list_subkeys."
    • addedInput schema / properties / workspace_id / description
      Added value: +"The workspace_id from aanet_create_workspace or aanet_create_trial_workspace."
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden, and it does most of it: it discloses the mutation semantics ('Fields left unset are unchanged, not cleared'), the exception carve-out for the three limit fields, and the auth requirement ('Owner_key required'). It stops short of stating failure modes (revoked/nonexistent sub-key, sub-key caller 403) or whether changes take effect immediately for a running sub-agent.

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

Conciseness4/5

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

Two dense sentences, front-loaded with the purpose and the routing rule before the field semantics. Slightly packed — the unset/cleared parenthetical could be tighter — but every clause carries actionable information and nothing is padding.

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?

For an 8-param mutation tool with no annotations and no output schema, the description covers what the tool changes, why to prefer it, and the subtle PATCH-style null semantics. Missing only error/failure conditions and confirmation of what a successful call returns or how it appears to a live sub-agent.

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 coverage is 100% and the field descriptions already carry the per-field unset/zero semantics, so the description's note about unset-vs-clear largely restates structured data. It adds modest cohesion by grouping the three limit fields as a single behavior, but no new syntax or format detail.

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 and resource ('Change a live sub-key's scope and/or budget cap') plus a defining constraint ('without revoking and reissuing it'). An agent can distinguish this from aanet_revoke_subkey and aanet_mint_subkey on the description alone.

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

Usage Guidelines5/5

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

Explicitly routes: 'use this instead of aanet_revoke_subkey + aanet_mint_subkey when the sub-agent's credentials themselves should keep working', with two concrete trigger scenarios (widening scope mid-task, raising a hit budget cap). Names the alternatives and the condition that selects this tool over them.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources