Botsket
Server Details
Product search over independent US stores, with whether an AI agent can check out at each
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool targets a distinct entity and action: search_products finds products across stores, get_offer re-checks a single offer's live price/stock, and get_store returns store metadata. There is no overlap in purpose or output, so an agent can select correctly without hesitation.
All three names follow a clean snake_case verb_noun pattern (get_offer, get_store, search_products). The verbs accurately reflect read-only retrieval semantics and are consistent across the set.
Three tools is on the lean side but each maps to a real step in the product-discovery workflow (search, inspect offer, vet store). It is slightly under-scoped rather than bloated, which is the better failure mode.
The search -> get_offer -> get_store flow covers discovery and price verification, but there are notable gaps: no way to list or browse stores directly, no bulk offer refresh, and no tool corresponding to the 'AI agent can check out' capability the store data advertises. Agents can work around some of this by searching, but not all.
Available Tools
3 toolsget_offerRe-check an offerARead-onlyInspect
Re-check one offer's price and stock with the store right now, and return it.
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | The id from search_products, e.g. 'candlewic.com/10001660' |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Pass to get_offer: store domain / product id |
| sku | No | |
| url | Yes | The product page at the store |
| live | No | True when the price was re-checked for this call |
| name | Yes | |
| brand | No | |
| image | No | |
| price | Yes | Lowest price an agent can pay, USD |
| store | Yes | |
| currency | Yes | |
| in_stock | Yes | |
| price_max | No | Highest variant price, when it differs |
| categories | Yes | |
| price_checked_at | Yes | When the price came from the store (UTC) |
| matched_all_words | No | In search results: false when the offer matches only some query words |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered; the description's contribution is the 'right now' live-fetch framing, which tells the agent results are fetched fresh rather than cached. It says nothing about failure modes (store unreachable, offer delisted) or latency, which matter for an open-world call — a meaningful remaining gap but not a contradiction.
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 action and resource first and the freshness qualifier second. Nothing is redundant or padded.
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 a full output schema present, return values need no explanation, and the single required parameter is fully documented by the schema. What remains thin is behavioral coverage around a live external fetch — error conditions and whether a failed re-check returns stale data or an error.
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?
One parameter at 100% schema description coverage, so the schema already explains offer_id and even its origin in search_products. The description adds no syntax, format, or constraint information beyond that, which is the expected baseline case rather than a strength.
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?
Specific verb+resource: 'Re-check one offer's price and stock' names exactly what is fetched and that it is a single offer. It stops short of explicitly distinguishing itself from search_products or get_store in the prose, though the schema's offer_id reference ('The id from search_products') does that work.
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?
'Re-check ... right now' implies the use case (refreshing a stale offer) rather than stating it, and no alternative is named. An agent can infer when to reach for this over search_products, but the description never says so and offers no exclusions or preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_storeLook up a storeBRead-onlyInspect
What Botsket knows about a store, including whether an AI agent can check out there.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Store domain, e.g. 'candlewic.com' |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| name | Yes | |
| page | Yes | |
| domain | Yes | |
| products | Yes | |
| blocks_agents | Yes | Shopping agents the store turns away |
| agent_checkout | Yes | |
| catalog_crawled_at | Yes | |
| agent_checkout_note | Yes | |
| agent_checkout_meaning | Yes | |
| agent_checkout_tested_at | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds useful context about the agent-checkout attribute being included in the response, but says nothing about behavior for unknown domains, lookup failures, or freshness of the data.
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 no filler or repetition. Every clause carries information, notably the checkout-capability hint.
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?
An output schema exists, so return values needn't be described, and there is only one simple parameter. Still, 'what Botsket knows' is left undefined, leaving the agent unsure whether the response supports downstream decisions without an extra call.
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 the single 'domain' parameter already carries a concrete example ('candlewic.com'). The description adds no additional semantics about the domain input (format normalization, subdomains, URL vs bare host), 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?
The description identifies the resource (a store) and one concrete payload element ('whether an AI agent can check out there'), making the intent reasonably clear. However, 'What Botsket knows about a store' is vague about what data is actually returned, and it never distinguishes this tool from get_offer or 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?
There is no guidance on when to call this versus siblings like get_offer or search_products, and no prerequisites or exclusions. Usage is only inferable from the tool name and the mention of agent checkout capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch productsBRead-onlyInspect
Search products across independent US stores. At most three offers per store.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | relevance | |
| limit | No | ||
| query | Yes | What to look for, e.g. 'beeswax tealight wicks' | |
| max_price | No | Highest price in USD | |
| min_price | No | Lowest price in USD | |
| in_stock_only | No | ||
| agent_checkout | No | 'not_blocked' drops stores where our test agent could not reach the card form; 'clean' keeps only stores where it went through cleanly | any |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| query | Yes | |
| offers | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the description's job is additive context, and it delivers two non-obvious facts: the store corpus is US independent stores, and results are capped at three offers per store. It omits other behavioral detail such as the default in-stock filtering and the price-sort trade-offs, but what it adds is genuinely beyond the 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 sentences, twelve words, with the scope and the result cap front-loaded and no filler. It is efficient, though so terse that a couple more words clarifying what an 'offer' is would have cost nothing.
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 seven parameters, an output schema, and annotations, the description covers the basics but leaves a real ambiguity: whether the 'limit' parameter counts products or offers, and how the three-offers-per-store cap interacts with it. The in-stock default and price bounds are undocumented in the description, so an agent must read the schema closely.
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 57%, and the description contributes nothing to parameter meaning. Fortunately the ambiguous parameters (query, min/max price, agent_checkout) carry solid schema descriptions, while the undocumented ones (sort, limit, in_stock_only) are conventional and enum/default-constrained, so the 3 baseline is defensible.
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 products') plus a scope ('across independent US stores'), which is enough to distinguish it from the single-entity lookups get_offer and get_store without opening a schema. It stops short of explicitly naming those siblings as the alternative for direct lookups.
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 statement of when to use this versus get_offer/get_store, no prerequisites, and no exclusions. The only constraints given ('independent US stores', 'at most three offers per store') describe the corpus and result shape, not invocation guidance, so the agent must infer usage from the name alone.
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.
3 tool updates
- First observed
get_offer - First observed
get_store - First observed
search_products
Related MCP Connectors
Product discovery for AI agents: ranked products and bundles from the open merchant web.
AI-agent product catalog: search, lookup & purchase routing over verified merchant data.
Product search for AI agents: Amazon + Shopify, cart-to-checkout buy path. Pay-per-call, no API key.
The E-commerce Marketplace For Every AI Agent. A Governed Catalog Of 600M+ US Products, Plus Four Agent Ready Capabilities Search, Price Comparison, Product-Vs-Product, And Detailed Q&A.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to browse product catalogs, search products with filters, and initiate checkouts, generating order summaries and checkout URLs.-
- 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

Periskop MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform product discovery from natural language shopping intents, returning ranked products with merchant links without completing checkout.MIT- AlicenseAqualityDmaintenanceKlarna-style product discovery for AI shopping agents. Makes product catalogs machine-readable so AI agents can search, compare, and purchase products programmatically.633 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.