Skip to main content
Glama

set_routing

Destructive

Legacy Programmable tool: compile a plain-language routing prompt or save a valid supplied routing program on an owned code. Version conflicts require reading again.

Input Schema

NameRequiredDescriptionDefault
idYes
promptNo
programNo
expected_program_versionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / properties / expected_program_version
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / id / format
      Added value: +"uuid"
    • addedInput schema / properties / id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • addedInput schema / properties / program
      Added value: +{
      +  "additionalProperties": {},
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / prompt / maxLength
      Added value: +4000
    • addedInput schema / properties / prompt / minLength
      Added value: +1
    • changedInput schema / required
      Previous value: -[
      -  "id",
      -  "prompt"
      -]New value: +[
      +  "id"
      +]
  2. First observed

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, non-idempotent, and openWorld, so safety is partly covered. The description adds a genuine concurrency signal ('version conflicts require reading again') and implies the program is validated before saving, but never says what existing routing is replaced or whether the operation is reversible.

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?

Two dense sentences, no filler, but the 'Legacy Programmable tool:' prefix is opaque jargon that consumes the front-loaded position without adding actionable information.

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

Completeness2/5

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

For a destructive, non-idempotent mutation with no output schema and zero schema coverage across four parameters including a nested object, the description omits what state is overwritten, what a successful call returns, and how the two modes interact. Too much is left for the agent to guess.

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?

With 0% schema description coverage the description must carry all meaning, and it partially does: 'prompt' is framed as plain-language and 'program' as a valid supplied program, and 'version conflicts' maps to expected_program_version. It leaves the mutual exclusivity of prompt/program and the role of the 'id'/'owned code' unexplained.

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?

States a concrete verb ('compile'/'save') and resource ('routing prompt'/'routing program') on an 'owned code', and exposes the two operating modes. It does not name or contrast with the nearest sibling (update_destination), so the agent must infer the boundary from the name alone.

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

Usage Guidelines2/5

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

The only usage cue is 'Version conflicts require reading again', which addresses concurrency retry rather than when to choose this tool. No guidance distinguishes it from update_destination or explains prerequisites such as code ownership.

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