XFMS — Model Source
Server Details
Pick the right LLM for any task. Ranked shortlist with rationale across 8 evaluators.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- VisionAIrySE/XFMS
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.6/5 across 5 of 5 tools scored.
Each tool has a clearly distinct purpose: discover explores quality dimensions, pick returns a single best, rank provides a shortlist, benchmark A/B tests engine-chosen models, and compare A/B tests user-specified models. The descriptions include explicit guidance on when to use each, eliminating ambiguity.
All tool names are single-word verbs in lowercase (benchmark, compare, discover, pick, rank), following a perfectly consistent pattern. While not verb_noun, the convention is uniform and predictable.
With 5 tools, the server is well-scoped for its purpose of model selection and evaluation. Each tool serves a distinct step in the workflow without being excessive or insufficient.
The tool surface covers the full lifecycle of model recommendation: understanding dimensions (discover), getting a single pick (pick), comparing alternatives (rank), and running live tests (benchmark and compare). No obvious gaps for the stated purpose.
Available Tools
5 toolsbenchmarkBenchmark the engine's top picks with real test queriesARead-onlyIdempotentInspect
Run a live A/B test against the engine's TOP 3 PICKS for a stated purpose — the engine chooses the candidates from the full catalog. Generates 5 representative test queries (auto-expands to 10 or 15 if results are too close to call), runs them through the picked models in parallel, and returns real cost, latency, and plain-English commentary on who won what. Use AFTER pick or rank when the user wants the engine's own picks stress-tested with live data. DO NOT use this when the user has already named specific candidate models — the engine will ignore the names and test its own picks. Use compare instead in that case. Costs more than rank (15+ live LLM calls).
| Name | Required | Description | Default |
|---|---|---|---|
| purpose | Yes | One sentence describing what the model will be used for. The benchmark generates representative test queries from this — so be concrete, not vague. |
Output Schema
| Name | Required | Description |
|---|---|---|
| models | No | Ranked shortlist of models, highest score first. |
| status | No | |
| ab_result | No | |
| catalog_size | No | |
| filtered_out | No | |
| xpansion_update | No | 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, openWorldHint, idempotentHint=true, destructiveHint=false. Description adds behavioral details: generates 5 representative test queries, auto-expands to 10 or 15 if results are too close, runs in parallel, returns cost/latency/commentary, and costs 15+ live LLM calls. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with key details but runs a full paragraph. Could be slightly tighter without losing information, but overall clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (dynamic test generation, auto-expansion, parallel execution), the description covers all critical behavioral aspects, usage constraints, and cost implications. An output schema exists (not shown) which further reduces burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'purpose' already well-described. Description adds extra guidance: 'be concrete, not vague', which helps the agent craft better input but doesn't drastically change semantic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Benchmark the engine's top picks with real test queries' and description clearly state it runs a live A/B test against the engine's top 3 picks. It distinguishes from siblings like 'compare', 'pick', and 'rank' by specifying when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use AFTER 'pick' or 'rank' when user wants engine's own picks stress-tested, and explicitly says DO NOT use when user has named specific candidate models (use 'compare' instead). Also notes cost relative to 'rank'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compareCompare specific models head-to-head with real test queriesARead-onlyIdempotentInspect
Run a live A/B test between 2–5 user-specified models for a stated purpose. NO ranking step — the supplied model_ids ARE the candidate set. Generates 5 representative test queries from the purpose, runs them through every named model in parallel, and returns real cost, latency, and plain-English commentary on who won what. Unknown IDs are dropped with a note; if fewer than 2 IDs resolve, the call refuses. Use this whenever the user names specific models to compare (e.g. 'A/B test X and Y'). For engine-chosen candidates, use benchmark instead. Costs more than rank (10+ live LLM calls). Free-tier note: when any candidate ends in ':free', the probe is capped at 3 queries (no adaptive expansion) because free-tier rate limits often push longer probes past the deploy's 5-minute ceiling — evidence will be shallower. The commentary surfaces this when it happens.
| Name | Required | Description | Default |
|---|---|---|---|
| primary | No | Optional. Only affects the plain-English commentary at the end — does not change which models are tested. Marks the dimension the user cares most about so the commentary calls out that winner first. | |
| purpose | Yes | One sentence describing what the models will be used for. Used ONLY to generate representative test queries for the head-to-head — not to rank the catalog. Be concrete, not vague. | |
| model_ids | Yes | Exact model IDs to test head-to-head, in caller-chosen order. 2–5 IDs. Examples: 'nvidia/nemotron-3-super-120b-a12b:free', 'openai/gpt-oss-120b:free'. Unknown IDs are dropped with a note; if fewer than 2 resolve, the call is refused. Use this whenever the user has already named candidates — do NOT call `benchmark` in that case. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| purpose | No | |
| ab_result | No | |
| refusal_reason | No | |
| xpansion_update | No | 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. |
| model_ids_tested | No | |
| invalid_model_ids | No | |
| model_ids_requested | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. Description adds significant behavioral context: it generates 5 representative test queries, runs them in parallel, returns cost/latency/commentary, drops unknown IDs with a note, refuses if fewer than 2 IDs resolve, and includes a free-tier note about capping at 3 queries with shallower evidence. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is detailed but not overly long. It front-loads the core action and then provides necessary usage rules and behavioral notes. Each sentence serves a purpose, though some minor redundancy (e.g., repeating 'head-to-head') could be trimmed. Overall well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, output schema present, annotations rich), the description covers all essential aspects: purpose, when to use, parameter roles, behavioral details (refusal, dropping, free-tier cap), and return values (cost, latency, commentary). It is fully complete for an AI agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds meaningful context beyond schema: explains that 'primary' only affects commentary order, 'purpose' is solely for generating test queries (not for ranking catalog), and 'model_ids' must be exact IDs with min/max constraints and examples. This justifies a score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Run a live A/B test between 2–5 user-specified models for a stated purpose.' It clearly identifies the verb 'compare', the resource 'models', and the scope 'head-to-head'. It also distinguishes from sibling tool 'benchmark' by noting that for engine-chosen candidates, one should use benchmark instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides explicit when-to-use guidance: 'Use this whenever the user names specific models to compare.' It also gives a clear when-not-to-use: 'For engine-chosen candidates, use `benchmark` instead.' Additionally, it contrasts cost with 'rank' tool: 'Costs more than `rank`.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discoverDiscover quality dimensionsARead-onlyIdempotentInspect
Show which quality dimensions matter for a stated purpose, WITHOUT ranking any models. Returns the inferred weights and the discovery-walk trace. Useful for understanding how XFMS interprets the purpose before committing to a pick.
| Name | Required | Description | Default |
|---|---|---|---|
| purpose | Yes | One sentence describing the task. The tool returns which quality dimensions XFMS would weigh for this purpose, without actually ranking any models. Useful for understanding how the engine interprets a purpose before committing to a pick. |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | No | Trace of the discovery walk. |
| weights | No | Per-dimension weights inferred for this purpose. |
| derived_purpose | No | |
| xpansion_update | No | 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds context about returning weights and discovery-walk trace, and confirms no ranking, which provides additional behavioral insight beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading the key behavior (show dimensions without ranking) and adding value with the second sentence explaining use case. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (mentioned in context), the simple input schema, and comprehensive annotations, the description fully covers what the agent needs to know: purpose, return type, and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'purpose' that has a description. The tool description partially repeats that information but does not add new parameter-level details beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows which quality dimensions matter for a stated purpose, and explicitly says it does NOT rank any models. This distinguishes it from sibling tools like 'rank' and 'pick'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'useful for understanding how XFMS interprets the purpose before committing to a pick', giving clear guidance on when to use it. It also implies not to use it when actual ranking is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pickPick the best LLMARead-onlyIdempotentInspect
Return the single best LLM for a stated purpose. Concise output, no list. Use when the user has settled on the criteria and just wants one answer.
| Name | Required | Description | Default |
|---|---|---|---|
| purpose | Yes | One sentence describing what the model will be used for. Be concrete, not vague: 'summarizing 50-page commercial leases' works; 'summarization' does not. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| model_id | No | |
| provider | No | |
| rationale | No | |
| total_score | No | |
| xpansion_update | No | 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral context beyond annotations: 'Concise output, no list' implies the tool returns a single recommendation. Annotations already indicate read-only and idempotent. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two impactful sentences: first stating function, second stating usage. No unnecessary words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, strong annotations, output schema, and sibling differentiation, the description is fully complete. No missing information for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description for 'purpose' is already thorough and covers 100% of parameters. The tool description does not add new parameter semantics beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Return the single best LLM for a stated purpose', using a specific verb and resource. It distinguishes itself from sibling tools by emphasizing 'single' and 'no list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when the user has settled on the criteria and just wants one answer', providing clear context for when to use this tool over alternatives like compare or rank.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rankRank LLMsARead-onlyIdempotentInspect
Rank LLMs for a stated purpose. Returns a shortlist with weights, scores, and plain-English rationale per pick. Use when the user wants to see and compare alternatives, not just one answer.
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | 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. | |
| primary | No | 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. | |
| purpose | Yes | 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. | |
| capabilities | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| models | No | Ranked shortlist of models, highest score first. |
| status | No | |
| catalog_size | No | |
| filtered_out | No | |
| xpansion_update | No | 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. Description adds value by describing output format (weights, scores, rationale) without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and output description, no redundancy or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is sufficient given the complexity: explains purpose, output, and usage context. Output schema exists, so return details are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all parameters. The tool description does not add additional information beyond what the schema already provides for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Rank LLMs for a stated purpose' and resource 'LLMs', distinguishes from siblings by indicating it returns a shortlist with weights, scores, and rationale, not just one answer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use when the user wants to see and compare alternatives, not just one answer', providing clear context and differentiating from sibling tools like 'pick'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!