store
Search and preview Datanest developer products, then prepare buyer-authorized Stripe Checkout.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"store": {
"url": "https://datanest-stores.pages.dev/mcp"
}
}
}Remote endpoints
https://datanest-stores.pages.dev/mcpstreamable-httphttps://datanest-stores.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢search_products(query, domain, category, tags, max_price_usd, ...)
Search the Datanest catalogue of digital technical products. Accepts natural-language intent queries (e.g. "add authentication to my SaaS", "reduce my AWS bill", "prepare for a system design interview") — stopwords and phrasing are handled, and synonyms are expanded. Returns concise product cards ranked by relevance, with stable canonical URLs. If a query matches little, the result includes suggestions/did_you_mean/available_domains so you can refine. Read-only and public. By default only agent-purchasable products are returned; set include_unsellable=true to also surface unaudited/deprecated items (clearly flagged, not buyable).
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"description": "Free-text search over title, description, tags, and store."
},
"domain": {
"type": "string",
"maxLength": 40,
"description": "Filter by domain/family id: data, ai, cloud, dev, security, career."
},
"category": {
"type": "string",
"maxLength": 60,
"description": "Filter by human category name."
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 10,
"description": "Require ALL of these tags."
},
"max_price_usd": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000
},
"verified_only": {
"type": "boolean",
"description": "Only return first-party \"verified\" products."
},
"include_unsellable": {
"type": "boolean",
"description": "Also include unaudited/deprecated products (discoverability only)."
},
"page": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_product_details(product_id)
Return the full factual detail for one product: exact title, price/currency, short + detailed description, included files, prerequisites, supported technologies/versions, install time, license, latest version, last verified date, verification status, compatibility notes, preview URL, product page URL, and stable product_id/SKU. Read-only and public.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Product id (\"store:slug\"), SKU, or unambiguous slug."
}
},
"required": [
"product_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢compare_products(product_ids, use_case)
Compare 2–4 products factually, using only stored metadata (price, license, versions, prerequisites, files, verification status, etc.). Never fabricates differences or suitability claims. Read-only and public.
Input Schema
{
"type": "object",
"properties": {
"product_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"minItems": 2,
"maxItems": 4,
"description": "2 to 4 product ids or slugs."
},
"use_case": {
"type": "string",
"maxLength": 300,
"description": "Optional buyer use case (recorded, not used to invent claims)."
}
},
"required": [
"product_ids"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_product_preview(product_id)
Return SAFE public previews only: documentation excerpts, a file-name tree, screenshot/demo links, and sample snippets intended for public display. Never returns the purchased ZIP, private storage URLs, secrets, whole paid source files, or signed download URLs. Read-only and public.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Product id, SKU, or unambiguous slug."
}
},
"required": [
"product_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_checkout_link(product_id, quantity, buyer_email, success_url, cancel_url, ...)
SIDE-EFFECTING: creates a short-lived Stripe Checkout session/link for ONE product (quantity fixed to 1) and returns only the hosted checkout URL, product summary, exact price, and expiry. The price and Stripe price id are resolved server-side from trusted catalogue data — client-supplied price/amount/currency/name/price-id are ignored/rejected. The buyer must explicitly authorize payment in Stripe Checkout; NO card is charged autonomously. Products that are unaudited/deprecated/not agent-sellable are rejected.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Product id, SKU, or unambiguous slug."
},
"quantity": {
"type": "number",
"const": 1,
"description": "Must be 1 (digital product)."
},
"buyer_email": {
"type": "string",
"format": "email",
"maxLength": 254,
"description": "Optional prefill for the checkout."
},
"success_url": {
"type": "string",
"format": "uri",
"maxLength": 500,
"description": "Optional; must be on the allowlisted host."
},
"cancel_url": {
"type": "string",
"format": "uri",
"maxLength": 500,
"description": "Optional; must be on the allowlisted host."
},
"idempotency_key": {
"type": "string",
"minLength": 8,
"maxLength": 128,
"description": "Optional idempotency key to avoid duplicate sessions."
}
},
"required": [
"product_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_order_status(checkout_session_id)
Poll the status of a checkout session created by create_checkout_link. Returns a coarse status (paid | open | expired | unknown) and the recommended next step, with NO buyer PII. When status is "paid", call get_purchase_access with the same session_id to obtain the download link.
Input Schema
{
"type": "object",
"properties": {
"checkout_session_id": {
"type": "string",
"minLength": 3,
"maxLength": 120,
"description": "The Stripe checkout session id (cs_...) returned by create_checkout_link."
}
},
"required": [
"checkout_session_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_purchase_access(session_id, download_token, email)
AUTHENTICATED: for a buyer who already completed a purchase, returns a short-lived (~15 min), single-purpose signed download link for THEIR order only. Ownership is proven by an unguessable credential issued at fulfilment — the Stripe session_id or the download token. Reuses the existing entitlement + signed-link service; each call consumes one of the limited downloads. Cannot list or access other purchasers' orders.
Input Schema
{
"type": "object",
"properties": {
"session_id": {
"type": "string",
"maxLength": 120,
"description": "Stripe checkout session id (cs_...)."
},
"download_token": {
"type": "string",
"format": "uuid",
"description": "Download token (UUID) issued at fulfilment."
},
"email": {
"type": "string",
"format": "email",
"maxLength": 254,
"description": "Optional purchaser email, recorded for audit."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence