protogrid

Search / dev.xpansion/xfms

XF Model Source

R0· no sign-in

Find the right AI model for your job. Free discovery and ranking; tests on your own key.

v0.5.3 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality75good
Trust96of 100
Uptime, 30 days100%
Latency p50317 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "xfms": {
      "type": "http",
      "url": "https://xfms.xpansion.dev/mcp",
      "headers": {
        "X-OpenRouter-Key": "${X_OPENROUTER_KEY}"
      }
    }
  }
}
claude mcp add --transport http xfms https://xfms.xpansion.dev/mcp --header "X-OpenRouter-Key: ${X_OPENROUTER_KEY}"
[mcp_servers.xfms]
url = "https://xfms.xpansion.dev/mcp"
env_http_headers = { "X-OpenRouter-Key" = "X_OPENROUTER_KEY" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "xfms": {
      "type": "remote",
      "url": "https://xfms.xpansion.dev/mcp",
      "enabled": true,
      "headers": {
        "X-OpenRouter-Key": "{env:X_OPENROUTER_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "xfms": {
      "type": "http",
      "url": "https://xfms.xpansion.dev/mcp",
      "headers": {
        "X-OpenRouter-Key": "${X_OPENROUTER_KEY}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=xfms&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8veGZtcy54cGFuc2lvbi5kZXYvbWNwIiwiaGVhZGVycyI6eyJYLU9wZW5Sb3V0ZXItS2V5IjoiJHtYX09QRU5ST1VURVJfS0VZfSJ9fQ%3D%3D"
}
{
  "servers": {
    "xfms": {
      "type": "http",
      "url": "https://xfms.xpansion.dev/mcp",
      "headers": {
        "X-OpenRouter-Key": "${X_OPENROUTER_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "xfms": {
      "httpUrl": "https://xfms.xpansion.dev/mcp",
      "headers": {
        "X-OpenRouter-Key": "${X_OPENROUTER_KEY}"
      }
    }
  }
}
extensions:
  "xfms":
    enabled: true
    name: "xfms"
    type: streamable_http
    uri: "https://xfms.xpansion.dev/mcp"
    headers:
      "X-OpenRouter-Key": "${X_OPENROUTER_KEY}"
    timeout: 300

Placeholders to fill from your own secret store: ${X_OPENROUTER_KEY}. The registry never accepts secret values.

Quality 75 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations7 of 7 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 2,348 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes11 tool changes in 30 days
  • fail
    stability.rug_pull5 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 2,348 tokens to load them all · tool set 47b8c803cb1a · tools last changed 2026-10-16 · checked 2026-10-19 10:20 UTC

Tool changes

  • watch_jobchangeddescription, input schema
    before

    Saves a finished job for XF Model Watch, which re-tests it as new models arrive and emails the person only when a model passes every must-have and ranks higher on their priorities. Needs a signed-in subscriber. Ask the person first: Watch keeps the job and its example tasks (encrypted, deletable any time). Pass consent=true only if they agree. Pass the discover session, and either test_session from a finished comparison or the tasks, plus the model they use now.

    after · 100% of words in common

    Saves a finished job for XF Model Watch, which re-tests it as new models arrive and emails the person only when a model passes every must-have and ranks higher on their priorities. Needs a signed-in subscriber. Ask the person first: Model Watch keeps the job and its example tasks (encrypted, deletable any time). Pass consent=true only if they agree. Pass the discover session, and either test_session from a finished comparison or the tasks, plus the model they use now.

  • comparechangedinput schema
  • watch_jobadded

    Saves a finished job for XF Model Watch, which re-tests it as new models arrive and emails the person only when a model passes every must-have and ranks higher on their priorities. Needs a signed-in subscriber. Ask the person first: Watch keeps the job and its example tasks (encrypted, deletable any time). Pass consent=true only if they agree. Pass the discover session, and either test_session from a finished comparison or the tasks, plus the model they use now.

  • benchmarkchangedinput schema
  • field_resultsadded

    Results from real comparisons on Model Source for one kind of job (call with no job_type for the list): which models passed, how often, which won, typical cost per task and the most common failure. Counted without anyone's job details. A starting point; test on the person's own work before choosing.

  • discoverchangedinput schema
  • comparechangedtitle, description, input schema, output schemameaning changed
    before

    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.

    after · 10% of words in common

    Same live test as benchmark, but on the models the person names (model_ids). Needs a finished discover session so every requirement is judged. Estimate first, then go=true.

  • benchmarkchangedtitle, description, input schema, output schemameaning changed
    before

    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).

    after · 16% of words in common

    The live test: the 5 proven models and 1 promising newcomer from discovery do the person's real tasks side by side, every requirement is judged, and the results pick the winner. First call (session + tasks) returns the estimate and an offer — nothing is spent. Show the person the cost; only when they agree, call again with offer and go=true. Runs on the person's OpenRouter key (X-OpenRouter-Key header). Save the returned report as a local file.

  • discoverchangedtitle, description, input schema, output schemameaning changed
    before

    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.

    after · 8% of words in common

    Discovery: finds the true requirements of the person's job before any model is chosen. Start with purpose: the reply carries the discovery instructions and the evidence catalogue. YOU ask the person the questions (one thing each, plain words, offering the returned choices); then call again with the sealed session, their answers and your structured updates. Each reply gives progress, rejected updates with reasons, next targets, answer choices from live data and a shortlist. At most 5 rounds. Ends with a confirmation view; call with confirm=true once the person agrees. The person can stop any time (end_now=true). Nothing about the person is stored by XFMS.

  • pickchangedtitle, description, input schema, output schemameaning changed
    before

    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.

    after · 16% of words in common

    The single best proven model for a job worked out with discover, with why and the runners-up. Pass the discover session.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 96 / 100

provenance85
liveness100
freshness100
hygiene100

+repository +dns-namespace +website +reachable +uptime-100% +updated-2d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://xfms.xpansion.dev/mcp streamable-httpnoneyes100%317 ms2025-11-252026-10-19

Tools (7)

benchmarkread-onlyThe live test: the 5 proven models and 1 promising newcomer from discovery do the person's real tasks side by side, every requirement is judged, and the results pick the winner. First call (session + tasks) returns the estimate and an offer — nothing is spent. Show the person the cost; only when they agree, call again with offer and go=true. Runs on the person's OpenRouter key (X-OpenRouter-Key header). Save the returned report as a local file.
compareread-onlySame live test as benchmark, but on the models the person names (model_ids). Needs a finished discover session so every requirement is judged. Estimate first, then go=true.
discoverread-onlyDiscovery: finds the true requirements of the person's job before any model is chosen. Start with purpose: the reply carries the discovery instructions and the evidence catalogue. YOU ask the person the questions (one thing each, plain words, offering the returned choices); then call again with the sealed session, their answers and your structured updates. Each reply gives progress, rejected updates with reasons, next targets, answer choices from live data and a shortlist. At most 5 rounds. Ends with a confirmation view; call with confirm=true once the person agrees. The person can stop any time (end_now=true). Nothing about the person is stored by XFMS.
field_resultsread-onlyResults from real comparisons on Model Source for one kind of job (call with no job_type for the list): which models passed, how often, which won, typical cost per task and the most common failure. Counted without anyone's job details. A starting point; test on the person's own work before choosing.
pickread-onlyThe single best proven model for a job worked out with discover, with why and the runners-up. Pass the discover session.
rankread-onlyThe 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.
watch_jobSaves a finished job for XF Model Watch, which re-tests it as new models arrive and emails the person only when a model passes every must-have and ranks higher on their priorities. Needs a signed-in subscriber. Ask the person first: Model Watch keeps the job and its example tasks (encrypted, deletable any time). Pass consent=true only if they agree. Pass the discover session, and either test_session from a finished comparison or the tasks, plus the model they use now.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "dev.xpansion/xfms",
  "title": "XF Model Source",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://xfms.xpansion.dev/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "X-OpenRouter-Key",
          "isSecret": true,
          "description": "Your OpenRouter API key. Required only for the compare and benchmark tools (they run live test queries against the named models on OpenRouter — that cost rides with you, not us). The rank, pick, and discover tools work without it. Get a key at https://openrouter.ai/keys."
        }
      ]
    }
  ],
  "version": "0.5.3",
  "repository": {
    "url": "https://github.com/VisionAIrySE/XFMS",
    "source": "github"
  },
  "websiteUrl": "https://xpansion.dev/xfms",
  "description": "Find the right AI model for your job. Free discovery and ranking; tests on your own key."
}