Skip to content

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

by 25karats.com · remote · no sign-in to list tools · v1.0.11 · published by com.25karats

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

Changes · 1

8 tools: 1 change things and 7 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http storefront https://www.25karats.com/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

8 tools

Changes things 1Claude Code: ask
  • price_productExact 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).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Exact 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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
Only reads 7Claude Code: allow
  • browse_collectionBrowse one collection/category page deterministically — the same product set, ordering, and filters a shopper sees on the site.No findings

    Why it is in this group

    • The name "browse_collection" says "browse": a word for reading.
    Description, as the server wrote it
    Browse 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".

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • get_productFull detail for one product: metal variants with live starting prices, the complete customization matrix (ring sizes, widths, thickness, color, finish, stone type, engraving rules)…No findings

    Why it is in this group

    • The name "get_product" says "get": a word for reading.
    Description, as the server wrote it
    Full 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).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • get_product_imagesEvery gallery image for a product with high-resolution URLs.No findings

    Why it is in this group

    • The name "get_product_images" says "get": a word for reading.
    Description, as the server wrote it
    Every 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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • get_store_info25karats brand facts and policies for answering shoppers: who we are, shipping and production times, returns, warranty, resizing, engraving, financing, and contact details.No findings

    Why it is in this group

    • The name "get_store_info" says "get": a word for reading.
    Description, as the server wrote it
    25karats 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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • list_collectionsThe navigable catalog taxonomy: every public collection with its permalink (for browse_collection), title, and product count, as a tree.No findings

    Why it is in this group

    • The name "list_collections" says "list": a word for reading.
    Description, as the server wrote it
    The 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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • search_diamondsSearch 25karats' in-stock IGI/GIA-certified lab-grown loose diamonds (center stones for engagement rings) by shape, carat, color, clarity, cut, and price.No findings

    Why it is in this group

    • The name "search_diamonds" says "search": a word for reading.
    Description, as the server wrote it
    Search 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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • search_productsSearch the 25karats made-to-order catalog (wedding bands, engagement rings, his & hers sets, fine jewelry) by keywords or a style code.No findings

    Why it is in this group

    • The name "search_products" says "search": a word for reading.
    Description, as the server wrote it
    Search 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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.11. Values in angle brackets are yours to fill in.

claude mcp add --transport http storefront https://www.25karats.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__storefront__search_products",
      "mcp__storefront__browse_collection",
      "mcp__storefront__list_collections",
      "mcp__storefront__get_product",
      "mcp__storefront__get_product_images",
      "mcp__storefront__search_diamonds",
      "mcp__storefront__get_store_info"
    ],
    "ask": [
      "mcp__storefront__price_product"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as storefront. Review it before you use it.