protogrid

Search / io.github.Swervie/swervie

Swervie

R0· no sign-in

Cross-retailer product catalog: one scored answer per product with live prices and buy links.

v1.6.0 · active · repository · website · descriptor JSON · versions

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

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "swervie": {
      "type": "http",
      "url": "https://us-central1-swervie-prod.cloudfunctions.net/mcp"
    }
  }
}
claude mcp add --transport http swervie https://us-central1-swervie-prod.cloudfunctions.net/mcp
[mcp_servers.swervie]
url = "https://us-central1-swervie-prod.cloudfunctions.net/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "swervie": {
      "type": "remote",
      "url": "https://us-central1-swervie-prod.cloudfunctions.net/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "swervie": {
      "type": "http",
      "url": "https://us-central1-swervie-prod.cloudfunctions.net/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=swervie&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdXMtY2VudHJhbDEtc3dlcnZpZS1wcm9kLmNsb3VkZnVuY3Rpb25zLm5ldC9tY3AifQ%3D%3D"
}
{
  "servers": {
    "swervie": {
      "type": "http",
      "url": "https://us-central1-swervie-prod.cloudfunctions.net/mcp"
    }
  }
}
{
  "mcpServers": {
    "swervie": {
      "httpUrl": "https://us-central1-swervie-prod.cloudfunctions.net/mcp"
    }
  }
}
extensions:
  "swervie":
    enabled: true
    name: "swervie"
    type: streamable_http
    uri: "https://us-central1-swervie-prod.cloudfunctions.net/mcp"
    timeout: 300

Quality 79 / 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 hygiene81 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations5 of 5 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: find_category (destructiveHint, idempotentHint); browse_category (destructiveHint, idempotentHint); lookup_product (destructiveHint, idempotentHint); …
  • pass
    tools.token_costabout 2,284 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stability83 · weight 15
  • warn
    stability.changes7 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
  • pass
    stability.new_linksno tool change named a new site
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

5 tools, about 2,284 tokens to load them all · tool set 108fe00a5e8f · tools last changed 2026-10-28 · checked 2026-11-14 07:03 UTC

Tool changes

  • submit_feedbackremoved

    Report a problem or observation about Swervie results for human review: wrong or missing specs, a stale price, a bad category match, duplicate listings that were not merged, a product the catalog lacks, or a ranking that looks off. Plain text, at most 2000 characters. Longer submissions are rejected with an error, not truncated. Each call holds one issue, optionally tied to product_ids or a category.

  • record_selectionremoved

    Record which product the user considered or chose. Selections improve future ranking, especially for a returning user_signature. Each call appends one event per product id and changes nothing else.

  • get_productschangedinput schema
  • lookup_productchangedinput schema
  • search_productschangedinput schema
  • browse_categorychangedinput schema
  • find_categorychangedinput schema

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 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-16d-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://us-central1-swervie-prod.cloudfunctions.net/mcp streamable-httpnoneyes100%360 ms2025-11-252026-11-14

Tools (5)

browse_categoryread-onlyReturn a category's consolidated, ranked shelf: one row per product, with duplicate seller listings already collapsed. Each row carries price, price_band, buy_url and buy_seller (the retailer behind the link), image_url, star ratings, and the category's required and top-weighted spec values. card_specs gives the specs every product card shows, in display order. Filters are hard: a row missing the attribute is excluded. Preferences are soft: rows that measure well on them rank higher and none are excluded (for example Rated Noise, prefer low, or a pet-hair rating, prefer high). Sort by value (default), quality, or price_asc. A filter on the Price dimension applies min/max to the live offer price in cents. Responses that carry buy_url links also carry a disclosure field: the commission disclosure for those links.
find_categoryread-onlyFind the Swervie product category that matches a shopping intent and return its filter contract: every filterable specification with its type, units, allowed values, and importance, plus budget, mid, and premium price bands.
get_productsread-onlyFull detail for up to 25 products: all specifications in the category's standard order (card_specs first), review-derived ratings with verbatim evidence quotes, every seller offer with price and buy_url, and attribute_provenance recording where each spec value came from (manufacturer page, retailer listing, spec table). ids accepts product ids and shelf row ids alike: a group row's id resolves to the product the row is named after (its top_pick_id), and resolved_groups reports each substitution. Responses that carry buy_url links also carry a disclosure field: the commission disclosure for those links.
lookup_productread-onlyLook up one specific product by name or identifier: a product name such as 'Sony WH-1000XM5' or 'Ninja AF101 air fryer', an ASIN, a UPC/EAN/GTIN, or brand plus model number. match reports the result: 'exact' (identifier hit), 'likely' (one clear name match; interpretation.runner_up names the next best), 'ambiguous' (several fit; rows lists the candidates, best first), or 'none' (not carried; the miss is recorded as demand). On exact or likely, products[0] is the full detail (all specs, review-derived ratings with evidence quotes, every seller offer with buy_url), and shelf_context gives its rank on its category shelf by value and quality, its variants (colorways, sizes), and up to three higher-scoring alternatives in the same price band. A product with no live price or image is still returned, flagged under readiness; its price is not current. Responses that carry buy_url links also carry a disclosure field: the commission disclosure for those links.
search_productsread-onlyAnswer one free-text shopping query, such as 'TVs under $500 with 120hz refresh rate', 'quiet dishwasher for a small kitchen', 'robot vacuum for pet hair under $600', or 'Sony WH-1000XM5 lowest price'. A query naming one specific product resolves to that product (interpretation.mode 'product'): products[0] holds every seller offer, and shelf_context gives its shelf rank and higher-scoring alternatives. 'A vs B' returns both products with specs in one shared order (mode 'comparison'). Otherwise the category is resolved, hard constraints such as price and specs become filters, and soft wishes such as 'quiet' or 'for pet hair' become ranking preferences that exclude nothing; interpretation.preferences lists them with reasons, and each row's preference_boost shows the effect. The interpretation object records how the query was read: method (deterministic parser or query-understanding model), fit_note (a one-line judgment of the category fit), and match_quality. 'strong' means the shelf plainly fits. 'partial' means either rows are served with some shopper words unexplained (listed in unparsed_tokens and unsupported_terms), or no rows are served because the closest shelf was only a medium-confidence fit (named in interpretation.llm_category). 'weak' and 'none' return no rows and queue the request as demand (queued_for_creation for a missing category, queued_product_request for a missing product). card_specs gives the specs every product card shows, in display order. Responses that carry buy_url links also carry a disclosure field: the commission disclosure for those links.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.Swervie/swervie",
  "title": "Swervie",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://us-central1-swervie-prod.cloudfunctions.net/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.6.0",
  "repository": {
    "url": "https://github.com/Swervie/swervie-mcp",
    "source": "github"
  },
  "websiteUrl": "https://swervie.xyz/developers",
  "description": "Cross-retailer product catalog: one scored answer per product with live prices and buy links."
}