protogrid

Search / com.25karats/storefront

25karats — Made-to-Order Wedding & Engagement Rings

R0· no sign-in

Search and price made-to-order rings, jewelry, and lab-grown diamonds from the 25karats catalog.

v1.0.11 · active · website · descriptor JSON · versions

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

Connect

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

Quality 92 / 100strong

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
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 hygiene93 · 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.annotations8 of 8 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 2,923 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

8 tools, about 2,923 tokens to load them all · tool set 8c28c67f4a8b · checked 2026-10-20 11:40 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

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

no-repository
provenance55
liveness100
freshness85
hygiene80

+dns-namespace +website +reachable +uptime-100% ~updated-59d-ago -no-repository

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://www.25karats.com/mcp streamable-httpnoneyes100%193 ms2026-07-282026-10-20

Tools (8)

browse_collectionread-onlyBrowse one collection/category page deterministically — the same product set, ordering, and filters a shopper sees on the site. Pass the collection permalink from list_collections (e.g. 'wedding-rings/womens/eternity'). Filter by style tags, metals, or sort; paginate 24 per page. Prefer search_products for free-text intent and this tool for "show me everything in X".
get_productread-onlyFull detail for one product: metal variants with live starting prices, the complete customization matrix (ring sizes, widths, thickness, color, finish, stone type, engraving rules) with the ids to echo into price_product, stone specifications, physical dimensions, size-group siblings, matching pieces, and the default image. Identify the product by exactly one of slug, style_code, or url (any 25karats product URL works).
get_product_imagesread-onlyEvery gallery image for a product with high-resolution URLs. Each image lists only renditions that actually exist, largest first — modern photography is 2048x2048 WebP at the 'original' size — plus the metal tone, band width, and finish the photo shows, and descriptive alt text. Identify the product by exactly one of slug, style_code, or url.
get_store_inforead-only25karats brand facts and policies for answering shoppers: who we are, shipping and production times, returns, warranty, resizing, engraving, financing, and contact details. Call this before answering policy questions rather than guessing.
list_collectionsread-onlyThe navigable catalog taxonomy: every public collection with its permalink (for browse_collection), title, and product count, as a tree. Call once to orient; results change rarely.
price_productread-onlyExact live price in USD for a fully configured item — the same number the customer pays on 25karats.com (computed from current metal market pricing, not a cached feed price). Identify the item by variant_id (from get_product) or style_code, optionally with metal. For wedding bands pass ring_size/width/thickness/color/finish (option_value ids or display values from get_product); for his & hers sets pass his/her objects with those keys; for engagement rings pass stone_type and ring_size. Unset axes use the product's defaults. Returns the price, the resolved configuration, and a deep_link_url that opens the product page pre-configured for checkout. Invalid values return the list of valid ones — correct and retry. Any option group can also be set through the options object keyed by the option_id values returned by get_product (the only way to configure generic jewelry). His & hers options and engraving belong inside the respective his/her object. Inputs that do not apply to the item (stone_type on a band, top-level ring_size on a set) are rejected with the inputs that do; settings sold without a center stone say so in configuration and notes.
search_diamondsread-onlySearch 25karats' in-stock IGI/GIA-certified lab-grown loose diamonds (center stones for engagement rings) by shape, carat, color, clarity, cut, and price. Prices are the live customer price in USD. Each stone includes certificate details, measurements, and image/video links when available. A chosen stone is paired with a ring setting on-site.
search_productsread-onlySearch the 25karats made-to-order catalog (wedding bands, engagement rings, his & hers sets, fine jewelry) by keywords or a style code. Use this first when a shopper describes what they want ("braided mens wedding band", "vintage engagement ring"). Returns product cards with live starting prices in USD, image URLs, and product URLs. Follow up with get_product for options and price_product for an exact configured price. total_count is exact unless capped is true; capped counts are lower bounds imposed by the search index.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.25karats/storefront",
  "title": "25karats — Made-to-Order Wedding & Engagement Rings",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://www.25karats.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.11",
  "websiteUrl": "https://www.25karats.com",
  "description": "Search and price made-to-order rings, jewelry, and lab-grown diamonds from the 25karats catalog."
}