store
Server Details
Search and preview Datanest developer products, then prepare buyer-authorized Stripe Checkout.
- Status
- Healthy
- Uptime
- 3.7% over 65 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool targets a distinct step in the store/catalogue lifecycle: search, detail, preview, compare, checkout creation, order status, and post-purchase access. The only potentially related pair (check_order_status and get_purchase_access) is explicitly differentiated by status polling versus retrieving a signed download link.
All tool names follow a consistent snake_case verb_noun pattern: check_order_status, compare_products, create_checkout_link, get_product_details, get_product_preview, get_purchase_access, search_products. No mixed conventions or cryptic names.
Seven tools is well-scoped for a digital-product storefront agent surface. Each tool maps to a clear buyer workflow step, with no redundant or filler operations.
The surface covers the main buyer lifecycle: discovery, evaluation, checkout, status polling, and authenticated download access. Minor gaps exist around explicit order history/list-purchases or checkout cancellation, but core workflows are workable.
Available Tools
7 toolscheck_order_statusCheck checkout/order statusARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| checkout_session_id | Yes | The Stripe checkout session id (cs_...) returned by create_checkout_link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds non-obvious context: the returned status enumeration, the privacy guarantee (NO buyer PII), and the recommended next step — genuinely useful beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the core action and return contract, then the follow-up routing. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return burden and does so: it names the coarse status values and the next step, plus the PII guarantee. An agent has everything needed to call it and act on the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single parameter is fully documented in the schema. The description reinforces that the same session_id flows between create_checkout_link and get_purchase_access but adds no format or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (poll/check) and resource (checkout session status) and ties itself to the sibling that produces the input (create_checkout_link). An agent can distinguish it from create_checkout_link and get_purchase_access immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it (after create_checkout_link) and routes the agent to the alternative (get_purchase_access) with the exact condition ('paid') and argument (same session_id). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_productsCompare productsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| use_case | No | Optional buyer use case (recorded, not used to invent claims). | |
| product_ids | Yes | 2 to 4 product ids or slugs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds a genuine behavioral contract beyond that: it commits to grounding output strictly in stored metadata and to never fabricating differences or suitability claims. 'Read-only and public' merely restates the annotations, adding no new information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and cardinality, with no padding. The closing 'Read-only and public' clause is mildly redundant given the annotations, which keeps it from being perfectly economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, fully documented, annotation-backed tool this covers purpose and grounding rules well. With no output schema, it could have said something about the shape of the comparison result, but nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, including the fact that use_case is recorded but not used to invent claims. The description adds no syntax, format, or ID-resolution detail beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Compare') and resource ('products') plus a hard cardinality bound (2–4), which cleanly separates it from single-product siblings like get_product_details. It also scopes the inputs to stored metadata. It does not, however, name or contrast itself with any sibling tool, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 2–4 product constraint and the 'use stored metadata' framing imply when the tool applies (multi-product evaluation), but there is no explicit when-to-use/when-not statement and no alternative named for the single-product or discovery cases. Usage is left to inference from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkout_linkCreate Stripe checkout linkAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| quantity | No | Must be 1 (digital product). | |
| cancel_url | No | Optional; must be on the allowlisted host. | |
| product_id | Yes | Product id, SKU, or unambiguous slug. | |
| buyer_email | No | Optional prefill for the checkout. | |
| success_url | No | Optional; must be on the allowlisted host. | |
| idempotency_key | No | Optional idempotency key to avoid duplicate sessions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (which only say it is non-read-only, idempotent, non-destructive, open-world) by disclosing that no card is charged autonomously, that price/price-id/name/currency are resolved server-side and client values are ignored or rejected, that the session is short-lived, and exactly what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the side-effecting warning and keeps every sentence substantive, though the em-dash-laden clauses make it denser than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so precisely (hosted checkout URL, product summary, exact price, expiry), plus server-side price resolution and product eligibility — nothing an agent needs to call it safely is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning by explaining that client-supplied price/amount/currency/name/price-id will be ignored or rejected and that quantity is hard-fixed to 1 — useful given additionalProperties is false.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('creates a short-lived Stripe Checkout session/link') and scopes it to ONE product with quantity fixed at 1, which clearly separates it from read-only siblings like get_product_details and search_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Marks the tool as SIDE-EFFECTING and states rejection conditions (unaudited/deprecated/not agent-sellable products), which implies when it can be used, but never names an alternative or tells the agent when to prefer a sibling such as get_product_preview or get_purchase_access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_detailsGet product detailsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product id ("store:slug"), SKU, or unambiguous slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=false), so 'Read-only and public' is largely redundant, but 'public' usefully signals no auth is required. The field-by-field enumeration of the return payload is real behavioral disclosure, especially valuable since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the purpose stated first, followed by the payload listing. The enumeration is long, but with no output schema each listed field does meaningful work rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the burden of describing what is returned, and it does so comprehensively. It stops short of covering failure behavior for an unknown or invalid product_id, which is the remaining gap for a single-parameter lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents that product_id accepts a 'store:slug' id, SKU, or unambiguous slug. The description's mention of 'stable product_id/SKU' adds only marginal reinforcement beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return the full factual detail for one product') and enumerates the exact payload, so an agent knows precisely what comes back. It does not name a sibling to contrast with, so the boundary against get_product_preview or search_products must be inferred from the 'one product' scoping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative guidance at all. The description never says to use search_products to find an ID first, nor how this differs from get_product_preview, which returns a preview URL that is also listed here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_previewGet safe product previewARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product id, SKU, or unambiguous slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is partly covered, and the description reinforces 'Read-only and public'. Its real added value is the explicit disclosure of what is withheld (ZIP, private storage URLs, secrets, whole paid source files, signed download URLs), which tells the agent what to expect in the payload and prevents misuse. No auth or rate-limit detail is given, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first front-loads what is returned, the second front-loads what is never returned, followed by a short safety tag. Every clause carries distinct information and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must describe the return shape, and it does so concretely (docs excerpts, file tree, screenshot/demo links, sample snippets) while bounding what is excluded. For a single-parameter read tool this is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single documented parameter (product_id), so the schema fully carries parameter meaning. The description adds nothing about the identifier format, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get/return) and resource (product previews) and enumerates exactly what is returned: documentation excerpts, file-name tree, screenshot/demo links, sample snippets. The negative list (never the purchased ZIP, private URLs, secrets, paid source files, signed URLs) clearly separates it from get_purchase_access and get_product_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope ('safe public previews only', 'read-only and public') implies this is the pre-purchase, non-privileged browsing tool, and the exclusion list hints at when to reach for a different tool. However, it never names an alternative sibling or states an explicit condition such as 'use this before purchase; use get_purchase_access for owned items', leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_purchase_accessGet purchase download accessAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Optional purchaser email, recorded for audit. | ||
| session_id | No | Stripe checkout session id (cs_...). | |
| download_token | No | Download token (UUID) issued at fulfilment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: ~15 min link lifetime, single-purpose scope, ownership proven by an unguessable credential, and crucially that 'each call consumes one of the limited downloads' — which explains why readOnlyHint=false despite a GET-like verb. openWorldHint=true is not elaborated (no rate-limit or failure-mode detail), keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the 'AUTHENTICATED' precondition, then delivers scope, credential mechanism, side effect, and exclusion in four dense but waste-free sentences. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so ('signed download link', ~15 min lifetime). Auth, scope, and the download-consumption side effect are all covered, leaving nothing an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes slightly further by framing session_id and download_token as alternative ownership credentials (an OR relationship) and noting email is audit-only. Most per-parameter detail still lives in the schema, so it adds only modest value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('returns a short-lived signed download link for THEIR order only') and clearly distinguishes itself from listing/browsing siblings via 'Cannot list or access other purchasers' orders.' An agent can tell exactly what this tool produces without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the precise triggering condition ('for a buyer who already completed a purchase') and an explicit exclusion ('cannot list or access other purchasers' orders'). It does not, however, name a sibling alternative (e.g., check_order_status) for the pre-purchase case, so routing is left partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch Datanest productsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| tags | No | Require ALL of these tags. | |
| query | No | Free-text search over title, description, tags, and store. | |
| domain | No | Filter by domain/family id: data, ai, cloud, dev, security, career. | |
| category | No | Filter by human category name. | |
| page_size | No | ||
| max_price_usd | No | ||
| verified_only | No | Only return first-party "verified" products. | |
| include_unsellable | No | Also include unaudited/deprecated products (discoverability only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=false), so the description is not burdened with that. It still adds real behavioral context beyond annotations: default filtering to agent-purchasable products, the fact that include_unsellable surfaces unaudited/deprecated items that are flagged and not buyable, and the thin-result fallback fields (suggestions/did_you_mean/available_domains).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that front-loads what the tool does before moving to query handling, return format, and the unsellable caveat. Every sentence carries information; it is on the long side but not padded, and the caveat is deliberately placed last.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and no required fields, the description does the expected work: it explains the retrieval mode, the response shape, the low-match fallback, and the default-scope behavior. Pagination and price/verified filters are left entirely to the schema, which is acceptable but leaves a small gap for a 9-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so the schema carries most of the load (tags, domain, category, verified_only, include_unsellable are all described there). The description adds value only for the query parameter (natural-language handling, stopword/phrase tolerance, synonym expansion) and reinforces the include_unsellable default; it says nothing about page, page_size, max_price_usd, or verified_only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search the Datanest catalogue of digital technical products') and specifies the query mode (natural-language intent) and the return shape (ranked product cards with canonical URLs). It is clearly distinguishable from get_product_details or compare_products by verb, but it never names a sibling or explicitly contrasts itself with the retrieve-by-id tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than prescribed: the query examples hint at when this tool is appropriate, and the include_unsellable note implies a default scope. There is no explicit statement of when to prefer this over get_product_details/compare_products, no mention of what to do when a query is too specific (aside from the implicit did_you_mean fallback), and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
check_order_status - First observed
compare_products - First observed
create_checkout_link - First observed
get_product_details - First observed
get_product_preview - First observed
get_purchase_access - First observed
search_products
Related MCP Connectors
Merch for AI builders. Search 8 products (tees, hoodies and a sticker sheet), read sizes, colors and prices, get US shipping quotes, and create a checkout link a person pays on Stripe. No auth required.
Search, price and buy field-tested agent-ops kits (evals, security, runbooks) via Stripe checkout.
Product search for AI agents: Amazon + Shopify, cart-to-checkout buy path. Pay-per-call, no API key.
AI shopping gateway for product search, inventory, carts, and merchant-hosted checkout.
Related MCP Servers
- AlicenseAqualityBmaintenanceStructured product data from the open web — where platform APIs don't reach. Schema.org + AI extraction. Pay per call via Stripe MPP.241 npm3Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to browse product catalogs, search products with filters, and initiate checkouts, generating order summaries and checkout URLs.-
- AlicenseAqualityDmaintenanceSearch datasets and preview samples without an API key. Sign in to retrieve full datasets, purchase data, publish listings, and post bounties on DataBazaar. Supports local stdio and remote MCP connections.2738 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to search products across Amazon and live Shopify storefronts, vet merchants, build carts, and obtain checkout URLs via a pay-per-call API with no API key or signup.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.