Skip to main content
Glama

XFMS — Xpansion Framework Model Source

Rank models for a discovered job

rank
Read-onlyIdempotent

The full shortlist for a job worked out with discover: 5 proven models and 1 promising newcomer, each with its standing on every requirement, plus near misses and what would change the order. Pass the discover session.

Input Schema

NameRequiredDescriptionDefault
sessionYesThe sealed session from a discover conversation. Ranking is built from what discovery found out about the job — call discover first.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • removedInput schema / properties / capabilities
      Removed value: -{
      -  "description": "Required capabilities the model MUST support. Models missing any listed capability are filtered out before ranking. 'vision' = image input, 'audio_in' = audio input, 'tool_use' = function calling, 'structured_outputs' = JSON schema-constrained output. Omit when the task is plain text with no tool use.",
      -  "items": {
      -    "enum": [
      -      "vision",
      -      "audio_in",
      -      "tool_use",
      -      "structured_outputs"
      -    ],
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / primary
      Removed value: -{
      -  "description": "Ordered priorities, highest first, for example quality then cost. Later dimensions break exact ties; unspecified dimensions do not decide the winner.",
      -  "items": {
      -    "enum": [
      -      "cost",
      -      "quality",
      -      "latency",
      -      "privacy"
      -    ],
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / purpose
      Removed value: -{
      -  "description": "One sentence describing what the model will be used for. Be concrete, not vague: 'fixing bugs in a Python codebase' works; 'coding' does not. The more specific the purpose, the better XFMS can infer which quality dimensions matter.",
      -  "type": "string"
      -}
    • addedInput schema / properties / session
      Added value: +{
      +  "description": "The sealed session from a discover conversation. Ranking is built from what discovery found out about the job — call discover first.",
      +  "type": "string"
      +}
    • removedInput schema / properties / top_n
      Removed value: -{
      -  "default": 5,
      -  "description": "How many models to return in the ranked list. Defaults to 5. Use 1 if you only want the single best pick; use 10+ if you want to see deeper alternatives.",
      -  "maximum": 25,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "purpose"
      -]New value: +[
      +  "session"
      +]
    • addedOutput schema / additionalProperties
      Added value: +true
    • addedOutput schema / description
      Added value: +"proven picks (each with its standing on every requirement), one promising newcomer, near misses, what changes if priorities change, and the assumptions."
    • removedOutput schema / properties
      Removed value: -{
      -  "catalog_size": {
      -    "type": "integer"
      -  },
      -  "filtered_out": {
      -    "type": "integer"
      -  },
      -  "frontier_filtered_out": {
      -    "description": "How many models in models[] are neither recent nor top-tier on quality (informational — none are removed from the list, this just means they weren't eligible to be the recommendation).",
      -    "type": "integer"
      -  },
      -  "models": {
      -    "description": "Ranked shortlist of models, highest score first.",
      -    "items": {
      -      "properties": {
      -        "model_id": {
      -          "type": "string"
      -        },
      -        "name": {
      -          "type": "string"
      -        },
      -        "provider": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "rationale": {
      -          "type": "string"
      -        },
      -        "total_score": {
      -          "type": "number"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "quality_floor_reason": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "status": {
      -    "description": "'ranked' (normal), 'low_confidence' (capability requirements were relaxed to find any match), or 'quality_floor_refused' (candidates were found but the best one scored too low to recommend — see quality_floor_reason; models[] still lists what was considered).",
      -    "type": "string"
      -  },
      -  "xpansion_update": {
      -    "description": "Optional rotating launch nudge from Xpansion. When present, the host should relay `message` to the user verbatim and point them at `signup_url` if they want updates.",
      -    "properties": {
      -      "call_count": {
      -        "type": "integer"
      -      },
      -      "id": {
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "signup_url": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  }
      -}
  2. Changed1 schema field changed
    • changedInput schema / properties / primary / description
      Previous value: -"Mark dimensions as primary tier. When set, the engine switches from weighted-sum blending to lexicographic ordering: the primary dimension is the sole ranking axis, and other dimensions only break ties. Use when the user says 'cheapest model, period' or similar — their stated preference becomes sacrosanct."New value: +"Ordered priorities, highest first, for example quality then cost. Later dimensions break exact ties; unspecified dimensions do not decide the winner."
  3. Changed3 schema fields changed
    • addedOutput schema / properties / frontier_filtered_out
      Added value: +{
      +  "description": "How many models in models[] are neither recent nor top-tier on quality (informational — none are removed from the list, this just means they weren't eligible to be the recommendation).",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / quality_floor_reason
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / status / description
      Added value: +"'ranked' (normal), 'low_confidence' (capability requirements were relaxed to find any match), or 'quality_floor_refused' (candidates were found but the best one scored too low to recommend — see quality_floor_reason; models[] still lists what was considered)."
  4. Changed1 schema field changed
    • changedOutput schema / properties / models / items / properties / provider / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
  5. Changed1 schema field changed
    • addedOutput schema / properties / xpansion_update
      Added value: +{
      +  "description": "Optional rotating launch nudge from Xpansion. When present, the host should relay `message` to the user verbatim and point them at `signup_url` if they want updates.",
      +  "properties": {
      +    "call_count": {
      +      "type": "integer"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "signup_url": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  6. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world, so the safety profile is fully covered and the description need not restate it. It does add one genuine behavioral trait beyond the annotations — the deterministic composition (5 proven models + 1 newcomer) and that the order is sensitivity-aware ("what would change the order") — but the rest is return-value description that the output schema already carries.

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?

A single front-loaded sentence that leads with the deliverable and then enumerates its parts. Dense but every clause maps to real content; no preamble or filler.

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?

The prerequisite (run discover first) and the shape of the result are both conveyed, and an output schema exists so return values need not be spelled out further. The only real gap is the absence of any routing guidance against the sibling tools that also consume discovery output.

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?

There is a single parameter with 100% schema description coverage, and the schema already explains it is a sealed session from a discover conversation. The description's "Pass the discover session" merely echoes that, adding no format or validity detail beyond the schema, so the baseline 3 applies.

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?

Names the resource (models for a discovered job) and the artifact produced (the full shortlist), and ties itself to the discover flow so an agent can distinguish it from siblings like discover or benchmark. It describes the output more than the act of ranking, so the verb is implied rather than stated, but the intent is unambiguous.

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?

"Pass the discover session" plus the schema note that discovery must run first gives a clear prerequisite, but there is no explicit statement of when to choose rank over pick, compare, or benchmark. Usage is implied by the discover dependency rather than contrasted with alternatives.

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