Skip to main content
Glama

Update agent config

agents_update
Destructive

Replaces an active agent's config without restarting its conversation and returns the new agent_config. Model, instruction, and tool changes apply at the agent's next model call; machine changes apply immediately, stopping processes on removed machines and deleting the agent's machines from removed pools. Send the complete config, not a patch.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "agentID": "<agentID>",
      "orgID": "<orgID>",
      "projectID": "<projectID>",
      "source": "<source>",
      "source_format": "<source_format>"
    },
    "name": "agents_update"
  }
}

Input Schema

NameRequiredDescriptionDefault
orgIDYesOrganization ID (org_...).
sourceYesAgent config source as YAML or JSON text, or, with source_format json, as a JSON object.
agentIDYesAgent ID (agt_...).
projectIDYesProject ID (proj_...).
source_formatYesFormat of source: yaml or json.
expected_current_config_idNoAgent config ID (acfg_...).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $defs / AgentConfigDefinitionGitCredentials / properties / read_only / description
      Previous value: -"Prevents pushing, even if the integration allows it."New value: +"Prevents pushing and opening or approving pull requests, even if the integration allows it."
  2. Changed2 schema fields changed
    • removedInput schema / $defs / AgentConfigDefinition / properties / event_webhook
      Removed value: -{
      -  "$ref": "#/$defs/AgentConfigDefinitionEventWebhook"
      -}
    • removedInput schema / $defs / AgentConfigDefinitionEventWebhook
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "events": {
      -      "items": {
      -        "enum": [
      -          "agent_input",
      -          "model_output",
      -          "tool_result",
      -          "context_checkpoint",
      -          "tool_call_update"
      -        ]
      -      },
      -      "minItems": 1,
      -      "type": "array",
      -      "uniqueItems": true
      -    },
      -    "signing_secret_id": {
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "url": {
      -      "minLength": 1,
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "url",
      -    "events"
      -  ],
      -  "type": "object",
      -  "x-go-type": "json.RawMessage"
      -}
  3. Changed2 schema fields changed
    • addedInput schema / $defs / AgentConfigDefinitionGitCredentials / properties / read_only
      Added value: +{
      +  "description": "Prevents pushing, even if the integration allows it.",
      +  "type": "boolean"
      +}
    • addedInput schema / $defs / AgentConfigDefinitionGitCredentials / properties / repository_ids
      Added value: +{
      +  "description": "GitHub repository IDs the credentials can access. Defaults to every repository the installation can access.",
      +  "items": {
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  "maxItems": 500,
      +  "minItems": 1,
      +  "type": "array",
      +  "uniqueItems": true
      +}
  4. Changed5 schema fields changed
    • addedInput schema / properties / agentID / description
      Added value: +"Agent ID (agt_...)."
    • addedInput schema / properties / expected_current_config_id / description
      Added value: +"Agent config ID (acfg_...)."
    • addedInput schema / properties / orgID / description
      Added value: +"Organization ID (org_...)."
    • addedInput schema / properties / projectID / description
      Added value: +"Project ID (proj_...)."
    • addedInput schema / properties / source_format / description
      Added value: +"Format of source: yaml or json."
  5. Changed6 schema fields changed
    • addedInput schema / $defs / AgentConfigDefinitionModel / properties / context_window_tokens / description
      Added value: +"Context budget for input and output tokens. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit."
    • addedInput schema / $defs / AgentConfigDefinitionModel / properties / context_window_tokens / maximum
      Added value: +2147483647
    • changedInput schema / $defs / AgentConfigDefinitionModel / properties / context_window_tokens / minimum
      Previous value: -1New value: +2
    • addedInput schema / $defs / AgentConfigDefinitionSubagentModel / properties / context_window_tokens / description
      Added value: +"Context budget for input and output tokens. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit."
    • addedInput schema / $defs / AgentConfigDefinitionSubagentModel / properties / context_window_tokens / maximum
      Added value: +2147483647
    • changedInput schema / $defs / AgentConfigDefinitionSubagentModel / properties / context_window_tokens / minimum
      Previous value: -1New value: +2
  6. Changed6 schema fields changed
    • addedInput schema / $defs
      Added value: +{
      +  "AgentConfigDefinition": {
      +    "additionalProperties": false,
      +    "description": "An agent config as a JSON object. This schema is the source of truth for agent configs: the server compiles YAML and JSON configs against it.",
      +    "properties": {
      +      "event_webhook": {
      +        "$ref": "#/$defs/AgentConfigDefinitionEventWebhook"
      +      },
      +      "git_credentials": {
      +        "$ref": "#/$defs/AgentConfigDefinitionGitCredentials"
      +      },
      +      "instruction": {
      +        "minLength": 1,
      +        "pattern": "\\S",
      +        "type": "string"
      +      },
      +      "interaction_handlers": {
      +        "$ref": "#/$defs/AgentConfigDefinitionInteractionHandlers"
      +      },
      +      "machine_sources": {
      +        "$ref": "#/$defs/AgentConfigDefinitionMachineSources"
      +      },
      +      "max_depth": {
      +        "maximum": 8,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "max_subagents": {
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "mcp": {
      +        "$ref": "#/$defs/AgentConfigDefinitionMCPServers"
      +      },
      +      "memory_stores": {
      +        "$ref": "#/$defs/AgentConfigDefinitionMemoryStores"
      +      },
      +      "model": {
      +        "$ref": "#/$defs/AgentConfigDefinitionModel"
      +      },
      +      "skills": {
      +        "$ref": "#/$defs/AgentConfigDefinitionSkills"
      +      },
      +      "subagents": {
      +        "$ref": "#/$defs/AgentConfigDefinitionSubagents"
      +      },
      +      "tools": {
      +        "$ref": "#/$defs/AgentConfigDefinitionTools"
      +      },
      +      "version": {
      +        "enum": [
      +          "v1"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "instruction",
      +      "model"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionEventWebhook": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "events": {
      +        "items": {
      +          "enum": [
      +            "agent_input",
      +            "model_output",
      +            "tool_result",
      +            "context_checkpoint",
      +            "tool_call_update"
      +          ]
      +        },
      +        "minItems": 1,
      +        "type": "array",
      +        "uniqueItems": true
      +      },
      +      "signing_secret_id": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "url": {
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "url",
      +      "events"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionGitCredentials": {
      +    "additionalProperties": false,
      +    "description": "Integration whose git credentials the agent's machines use.",
      +    "properties": {
      +      "integration": {
      +        "pattern": "^[a-zA-Z][a-zA-Z0-9-]{0,31}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "integration"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionInteractionHandler": {
      +    "additionalProperties": false,
      +    "description": "Enables an integration's interaction handler. Takes no settings.",
      +    "type": "object",
      +    "x-go-type": "agentconfig.AgentConfigIntegrationCapabilitySource",
      +    "x-go-type-import": {
      +      "path": "github.com/omnara-ai/omnara/internal/agentconfig"
      +    }
      +  },
      +  "AgentConfigDefinitionInteractionHandlers": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/AgentConfigDefinitionInteractionHandler"
      +        },
      +        "propertyNames": {
      +          "pattern": "^[a-zA-Z][a-zA-Z0-9-]{0,31}$",
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "description": "Interaction handlers keyed by integration name.",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMCPAuth": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "region": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "secret_id": {
      +        "minLength": 1,
      +        "pattern": "^sec_[a-z2-7]{26}$",
      +        "type": "string"
      +      },
      +      "service": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "enum": [
      +          "bearer",
      +          "oauth",
      +          "sigv4"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "secret_id"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMCPServer": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "auth": {
      +        "$ref": "#/$defs/AgentConfigDefinitionMCPAuth"
      +      },
      +      "default_enabled": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "deferred": {
      +        "type": "boolean"
      +      },
      +      "permission": {
      +        "$ref": "#/$defs/AgentConfigDefinitionToolPermission"
      +      },
      +      "tools": {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/AgentConfigDefinitionMCPTool"
      +        },
      +        "propertyNames": {
      +          "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,63}$",
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "url": {
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "url"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMCPServers": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/AgentConfigDefinitionMCPServer"
      +        },
      +        "propertyNames": {
      +          "pattern": "^[a-zA-Z][a-zA-Z0-9-]{0,31}$",
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMCPTool": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "deferred": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "enabled": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "permission": {
      +        "$ref": "#/$defs/AgentConfigDefinitionToolPermission"
      +      }
      +    },
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMachineSource": {
      +    "additionalProperties": false,
      +    "oneOf": [
      +      {
      +        "required": [
      +          "machine_name"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "required": [
      +          "machine_pool_name"
      +        ],
      +        "type": "object"
      +      }
      +    ],
      +    "properties": {
      +      "cwd": {
      +        "maxLength": 4096,
      +        "type": "string"
      +      },
      +      "delete_after_idle_minutes": {
      +        "anyOf": [
      +          {
      +            "const": 0
      +          },
      +          {
      +            "maximum": 2147483647,
      +            "minimum": 5,
      +            "type": "integer"
      +          }
      +        ]
      +      },
      +      "description": {
      +        "maxLength": 4096,
      +        "type": "string"
      +      },
      +      "env_overlay": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "propertyNames": {
      +              "$ref": "#/$defs/EnvironmentVariableName"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "initial_num_machines": {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "machine_cpu": {
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "machine_memory_mb": {
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "machine_name": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "machine_pool_name": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "machine_provider_options_overlay": {
      +        "anyOf": [
      +          {
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_machines": {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "secret_env_overlay": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "anyOf": [
      +                {
      +                  "pattern": "^sec_[a-z2-7]{26}$",
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "propertyNames": {
      +              "$ref": "#/$defs/EnvironmentVariableName"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMachineSources": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "$ref": "#/$defs/AgentConfigDefinitionMachineSource"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMemoryStore": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "access": {
      +        "enum": [
      +          "read",
      +          "read_write"
      +        ],
      +        "type": "string"
      +      },
      +      "name": {
      +        "$ref": "#/$defs/MemoryStoreName"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "access"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMemoryStores": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "$ref": "#/$defs/AgentConfigDefinitionMemoryStore"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionModel": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "cache_retention": {
      +        "enum": [
      +          "none",
      +          "short",
      +          "long"
      +        ]
      +      },
      +      "context_window_tokens": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "default_max_output_tokens": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "name": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "provider_config": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "reasoning": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "effort": {
      +            "minLength": 1,
      +            "pattern": "\\S",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "effort"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "provider_config",
      +      "name"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionSkills": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "pattern": "^skl_[a-z2-7]{26}$",
      +          "type": "string"
      +        },
      +        "type": "array",
      +        "uniqueItems": true
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionSubagent": {
      +    "additionalProperties": false,
      +    "else": {
      +      "not": {
      +        "required": [
      +          "profile"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "if": {
      +      "properties": {
      +        "type": {
      +          "const": "profile"
      +        }
      +      },
      +      "required": [
      +        "type"
      +      ],
      +      "type": "object"
      +    },
      +    "properties": {
      +      "archive_after_idle_minutes": {
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "description": {
      +        "type": "string"
      +      },
      +      "instruction": {
      +        "$ref": "#/$defs/AgentConfigDefinitionSubagentInstruction"
      +      },
      +      "max_instances": {
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "model": {
      +        "$ref": "#/$defs/AgentConfigDefinitionSubagentModel"
      +      },
      +      "profile": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "type": {
      +        "enum": [
      +          "profile",
      +          "self"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "then": {
      +      "required": [
      +        "profile"
      +      ]
      +    },
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionSubagentInstruction": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "append": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionSubagentModel": {
      +    "additionalProperties": false,
      +    "dependentRequired": {
      +      "name": [
      +        "provider_config"
      +      ],
      +      "provider_config": [
      +        "name"
      +      ]
      +    },
      +    "properties": {
      +      "cache_retention": {
      +        "enum": [
      +          "none",
      +          "short",
      +          "long"
      +        ]
      +      },
      +      "context_window_tokens": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "default_max_output_tokens": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "name": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "provider_config": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "reasoning": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "effort": {
      +            "minLength": 1,
      +            "pattern": "\\S",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "effort"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionSubagents": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/AgentConfigDefinitionSubagent"
      +        },
      +        "propertyNames": {
      +          "pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$",
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionTool": {
      +    "additionalProperties": false,
      +    "else": {
      +      "not": {
      +        "anyOf": [
      +          {
      +            "required": [
      +              "description"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "required": [
      +              "input_schema"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      }
      +    },
      +    "if": {
      +      "properties": {
      +        "type": {
      +          "const": "custom"
      +        }
      +      },
      +      "required": [
      +        "type"
      +      ],
      +      "type": "object"
      +    },
      +    "properties": {
      +      "deferred": {
      +        "type": "boolean"
      +      },
      +      "description": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "enabled": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "input_schema": {
      +        "$ref": "#/$defs/AgentConfigDefinitionToolInputSchema"
      +      },
      +      "permission": {
      +        "$ref": "#/$defs/AgentConfigDefinitionToolPermission"
      +      },
      +      "type": {
      +        "enum": [
      +          "built_in",
      +          "custom"
      +        ]
      +      }
      +    },
      +    "then": {
      +      "required": [
      +        "description",
      +        "input_schema"
      +      ]
      +    },
      +    "type": "object",
      +    "x-go-type": "agentconfig.AgentConfigToolSource",
      +    "x-go-type-import": {
      +      "path": "github.com/omnara-ai/omnara/internal/agentconfig"
      +    }
      +  },
      +  "AgentConfigDefinitionToolInputSchema": {
      +    "additionalProperties": true,
      +    "description": "A JSON Schema for the tool's input. Keywords beyond those listed, such as additionalProperties or description, are allowed.",
      +    "properties": {
      +      "properties": {
      +        "additionalProperties": {
      +          "type": "object"
      +        },
      +        "type": "object"
      +      },
      +      "required": {
      +        "items": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "object"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionToolPermission": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "mode": {
      +        "minLength": 1,
      +        "pattern": "\\S",
      +        "type": "string"
      +      },
      +      "parameters": {
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "mode"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionTools": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/AgentConfigDefinitionTool"
      +        },
      +        "propertyNames": {
      +          "allOf": [
      +            {
      +              "anyOf": [
      +                {
      +                  "pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$",
      +                  "type": "string"
      +                },
      +                {
      +                  "maxLength": 64,
      +                  "pattern": "^int__[a-zA-Z][a-zA-Z0-9-]{0,31}__[a-zA-Z][a-zA-Z0-9_-]*$",
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            {
      +              "not": {
      +                "pattern": "^mcp__",
      +                "type": "string"
      +              }
      +            }
      +          ]
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "EnvironmentVariableName": {
      +    "minLength": 1,
      +    "pattern": "^[^=\\x00]+$",
      +    "type": "string"
      +  },
      +  "MemoryStoreName": {
      +    "description": "Machine-readable memory store identifier consisting of lowercase ASCII segments separated by single hyphens.",
      +    "maxLength": 64,
      +    "minLength": 1,
      +    "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +    "type": "string"
      +  },
      +  "ResourceNameReference": {
      +    "description": "Name of an existing resource, resolved when the config is compiled.",
      +    "maxLength": 64,
      +    "minLength": 1,
      +    "pattern": "^\\S(?:.*\\S)?$",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / source / anyOf
      Added value: +[
      +  {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "$ref": "#/$defs/AgentConfigDefinition"
      +  }
      +]
    • addedInput schema / properties / source / description
      Added value: +"Agent config source as YAML or JSON text, or, with source_format json, as a JSON object."
    • removedInput schema / properties / source / minLength
      Removed value: -1
    • removedInput schema / properties / source / type
      Removed value: -"string"
    • addedInput schema / properties / source / x-go-type
      Added value: +"json.RawMessage"
  7. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Goes well past the annotations by explaining apply timing (model/instruction/tool changes land at the next model call, machine changes apply immediately), the destructive side effects (processes stopped on removed machines, machines deleted from removed pools), and the return value (new agent_config). It does not cover failure modes such as config validation failures or concurrency conflicts on expected_current_config_id, which are left to the schema.

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?

Three tight sentences, front-loaded with the identity and scope of the operation, then the timing/destructive semantics, then the critical input constraint. No filler and nothing repeated from structured fields.

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 destructive, high-parameter-count mutation with no output schema, the description covers identity, apply timing, destructive consequences, return value, and input shape. What remains (ID formats, optimistic concurrency) is fully documented in the schema.

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 real meaning the schema cannot express: the source field is a wholesale replacement rather than a merge/patch. That single sentence materially changes how an agent constructs the call.

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 ("Replaces an active agent's config") plus the key differentiator from a relaunch: the conversation is not restarted. The name 'agents_update' is upgraded into a precise, in-place full-replacement operation.

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?

Gives one concrete usage instruction ("Send the complete config, not a patch") and implies the in-place-edit scenario via "without restarting its conversation". It never names or excludes an alternative (e.g., configs_create or agents_launch), so the agent must infer which tool to pick.

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.