Skip to main content
Glama

AirShelf Catalog

Server Details

Cross-vendor B2B catalog for AI agents: search, compare, find equivalents, request a quote.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 8 of 8 tools scored. Lowest: 4/5.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose, with explicit cross-references to prevent confusion (e.g., find_products vs research_shopping vs search_catalog). The descriptions actively disambiguate similar functions, and the remaining tools (get_product, compare_products, explain_product) are unambiguously different.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case: compare_products, explain_product, find_products, get_product, list_merchants, request_quote, research_shopping, search_catalog. Even research_shopping can be read as verb+object, maintaining the pattern.

Tool Count5/5

With 8 tools, the server is well-scoped for a product catalog and buying workflow. Each tool covers a distinct stage from search, discovery, detailed lookup, comparison, explanation, merchant listing, to quote requests—no redundancy or bloat.

Completeness5/5

The tool surface covers the full buyer journey for a catalog: discover (find_products, research_shopping), search (search_catalog), inspect (get_product, compare_products, explain_product), identify merchants (list_merchants), and act (request_quote). No obvious gaps within the stated purpose of a verified catalog with quote-based purchasing.

Available Tools

8 tools
compare_productsCompare productsA
Read-only
Inspect

Compare 2-10 catalog products side-by-side on their datasheet specs. Slugs come from search_catalog and are case-insensitive and dash-tolerant ("e-STUDIO 331AC", "toshiba-e-studio-331ac" and "e-studio331ac" all resolve to the same product).

Returns one item per product with canonical_name and spec_absence_note (spec fields absent from that product's golden record, AirShelf's verified product record). Branch on each item's commercial_data.actionable before using price or stock; stale observations are withheld from action fields. A slug that does not resolve comes back as not_found with a did_you_mean suggestion. The provenance option adds the source page and source type already stored with each fact.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugsYesCatalog slugs to compare
provenanceNoInclude the stored source page and source type for each fact

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
itemsYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses slug normalization, per-item result structure (canonical_name, spec_absence_note), the need to branch on commercial_data.actionable for stale data, not_found behavior with did_you_mean, and provenance semantics. This is rich, non-obvious behavioral context with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then layers details logically. Every sentence contributes value—slug tolerance, result structure, stale-data handling, not_found behavior, provenance—and the length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description still covers important runtime semantics: error cases (not_found, did_you_mean), data freshness (commercial_data.actionable), and per-item spec absence notes. This makes the tool fully understandable and actionable for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters, but the description adds meaning beyond the schema: slug case-insensitivity and dash tolerance, and clarifies that provenance 'adds the source page and source type already stored with each fact.' This goes beyond the schema's simple boolean description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Compare 2-10 catalog products side-by-side on their datasheet specs.' It clearly distinguishes this from sibling tools like get_product by emphasizing multi-product comparison, and adds useful detail about slug flexibility.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context for when to use the tool (comparing 2-10 products) and notes that slugs come from search_catalog, implying a prerequisite. However, it does not explicitly name alternatives or state when *not* to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_productExplain how a record was builtA
Read-only
Inspect

Explain the evidence behind a catalog row. Returns stored processing stages when available and always returns a golden-record field summary with source coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesComposite slug to explain

Output Schema

ParametersJSON Schema
NameRequiredDescription
skuNo
noteNo
slugNo
countNo
traceNo
recordNo
categoryNo
trace_statusNo
canonical_nameNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses behavioral traits: it states that stored processing stages are returned 'when available' (acknowledging potential absence) and that a golden-record field summary is 'always' returned. This provides useful expectations about variability and guarantees, adding value beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no irrelevant content. The first sentence immediately states the core action, and the second sentence lays out return behavior. It is efficient and front-loaded, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single parameter, read-only annotations, and an output schema, the description covers the essential aspects: what it does, what it returns, and variability in processing stages. It does not explicitly discuss error cases or output structure, but the output schema covers returns. Overall, it is sufficiently complete for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes the single parameter 'slug' as 'Composite slug to explain,' which is 100% coverage. The tool description adds the context that this slug refers to a 'catalog row,' but does not elaborate on slug composition or format. Since schema coverage is high, the description meets the baseline without needing to compensate extensively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Explain the evidence behind a catalog row.' This distinguishes it from sibling tools like get_product or find_products by focusing on evidence/provenance rather than retrieval or comparison. The additional detail about returning processing stages and a golden-record summary reinforces the specific purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when you need to understand how a catalog row was constructed, but it does not explicitly state when to use it over alternatives or provide exclusions. No sibling tools are mentioned in the description, so the agent must infer usage from the purpose statement alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_productsDiscover and verify products for a needA
Read-only
Inspect

Discover candidate products for a buyer need. Takes a need in natural language (e.g. "best value home espresso machine", market "TH"), checks the verified catalog first, then uses live web discovery only when the catalog has no candidates. Returns up to 3 candidates with explicit fit accounting.

find_products is the quick candidate-list tool; research_shopping is the full verified-research job. For a specific brand+model, search_catalog is cheaper and returns the same live-lookup block on a miss.

Response fields: • candidates[].verification — "catalog-candidate" for a catalog starting point whose fit still needs checking, or "live-unverified" for a live page read during this run. • candidates[].status — "resolved" means both identity and the parsed buyer constraints were supported by the cited page; "abstain" means identity or need fit could not be established. Inspect constraint_check for matched, conflicting, and unverified requirements. • candidates[].constraint_check.receipts maps each receipt-backed matched requirement to its supporting source URL and trust label. • Candidates come from current web-search results, so they are a sample of what the market offers rather than a ranking. • status at the top level — "no_match" means discovery ran but no candidate was confirmed as satisfying the need; "disabled", "rate_limited", or "unavailable" means no discovery ran.

• live_discovery.status="unavailable" means receipted catalog candidates were returned while live discovery was unavailable.

Optional market (ISO 3166-1 alpha-2) biases discovery and marketplace checks toward seller pages serving that country and scopes the lookup cache. "Available in " means the seller page serves that market, not that stock is guaranteed.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoMax candidates to verify (each costs a live lookup; capped at 3).
needYesThe buyer need in natural language, e.g. "quiet mechanical keyboard for open office" or "best value home espresso machine".
marketNoBuyer market as ISO 3166-1 alpha-2 country code (e.g. "TH"). Biases discovery and marketplace checks toward seller pages serving that country and scopes the cache; availability is not a stock guarantee.

Output Schema

ParametersJSON Schema
NameRequiredDescription
needNo
errorNo
marketNo
reasonNo
statusNo
took_msNo
guidanceNo
candidatesYes
verificationNo
live_discoveryNo
serp_consideredNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint and openWorldHint, and the description adds substantial behavioral context beyond those: catalog-first then live discovery, status meanings ('no_match', 'disabled', 'rate_limited', 'unavailable'), verification categories ('catalog-candidate' vs 'live-unverified'), and market biases on cache and seller-page availability. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but well-structured: a purpose paragraph, sibling comparison, bulleted response fields, and market clarification. It is front-loaded with the core purpose and usage, and every section adds meaningful operational detail rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With three parameters, several sibling tools, and an output schema, the description covers all essential behavioral aspects: candidates sources, status meanings, verification flags, receipt mapping, market semantics, and live discovery fallback. It is self-sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter already has a useful description, so baseline is 3. The tool description adds extra semantics by noting max 'each costs a live lookup; capped at 3' and market 'scopes the lookup cache' and that availability is not a stock guarantee, adding value beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Discover candidate products for a buyer need' and details the catalog-first/live-discovery process. It explicitly distinguishes from siblings: 'find_products is the quick candidate-list tool; research_shopping is the full verified-research job. For a specific brand+model, search_catalog is cheaper...' making purpose and boundaries clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear when-to-use guidance: 'quick candidate-list tool' and that live web discovery is used 'only when the catalog has no candidates.' It also names alternatives explicitly, such as research_shopping for full research and search_catalog for a specific brand+model, so an agent can choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_productGet product detailsA
Read-only
Inspect

Get the full golden record (AirShelf's verified product record) and latest price for one catalog product by slug ("-").

Returns the product's specs and provenance (which page each fact came from), plus canonical_name (its exact catalog name). Branch on commercial_data.actionable before using price or stock: observations older than 24 hours are withheld from latestPrice and retained only as labelled last_observed history. For quote-gated B2B pricing, a null price with a quote path is expected rather than an error. In clients that render MCP Apps the response also draws one product card per call. related_products — relationships extracted from vendor documents (e.g. compatible toner or drum accessories with their source quotes, functional equivalents, supersessions); each entry names the related catalog slug, the relation type, its direction (direction is "from_this" when the relation reads this-product → related-product, "to_this" when it reads related-product → this-product), and the source URL and quote the relation was extracted from.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesComposite slug, e.g. keychron-q1-pro

Output Schema

ParametersJSON Schema
NameRequiredDescription
titleYes
actionYes
buyUrlNo
productNo
benefitsNo
imageUrlNo
productIdYes
buttonLabelYes
pricing_gatedNo
related_productsNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the readOnlyHint annotation, disclosing details about provenance, withholding of stale observations, quote-gated pricing behavior, related_products semantics with direction, and MCP Apps card rendering. This is rich, non-obvious behavior that an agent needs to know for correct invocation and result interpretation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and dense, but every sentence delivers meaningful information about product data, pricing edge cases, or related_products structure. It is front-loaded with the primary purpose. While it could be structured with bullet points, the wall-of-text format is acceptable given the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's high complexity (provenance, commercial_data, related_products) and the presence of an output schema, the description thoroughly covers all necessary behavioral contexts. It explains edge cases, direction semantics, and client-specific rendering, making it highly complete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents the slug parameter with an example. The description adds the explicit slug format pattern ('<manufacturer>-<model>') and reiterates the example, which is a slight enhancement. Since schema coverage is 100%, the baseline is 3, and this additional format clarification justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches the full golden record and latest price for a single catalog product by slug, with a specific verb ('Get') and precise scope. It distinguishes from sibling tools like compare_products and search_catalog by focusing on a single product's complete record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear in-context usage guidance, such as branching on commercial_data.actionable and handling null prices for quote-gated B2B pricing. It does not explicitly name alternative tools or when-not-to-use scenarios, but the singular slug-based lookup is well implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_merchantsList merchantsA
Read-only
Inspect

List public AirShelf merchants that have an assigned slug and at least one active product. Internal/demo and empty catalogs are excluded. Returns each merchant's name, slug, and product count; the slug is the merchant argument for request_quote.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNo
merchantsYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include `readOnlyHint: true`, which already indicates a read operation. The description adds valuable behavioral context by specifying exclusion criteria ('Internal/demo and empty catalogs are excluded') and the exact output fields ('name, slug, and product count'). This goes beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the purpose and filters, the second describes the return value and how to use it. Every sentence is informative, no fluff, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite its simplicity, the description fully covers what the tool does, its criteria, and what it returns. An output schema exists, but the description still enumerates the returned fields. Given the zero-parameter nature and clear annotations, the description is complete for an agent to select and use this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to clarify. The schema is empty and schema description coverage is 100% (there is nothing to cover). The baseline for 0 params is 4, and the description does not need to compensate for any parameter gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'List public AirShelf merchants that have an assigned slug and at least one active product.' It uses a specific verb ('List') and resource ('merchants'), with clear filtering criteria. This distinguishes it from sibling tools that focus on products, quotes, or searching, so the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: to obtain a list of eligible merchants, excluding internal/demo and empty catalogs. It also connects usage to a sibling tool by noting the slug is used as the `merchant` argument for `request_quote`. However, it does not explicitly state when not to use it or name alternatives, though the context makes those clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_quoteRequest a quote from a merchantA
Destructive
Inspect

Send a quote request for catalog products to a merchant's sales team on behalf of a named buyer.

This is a two-step, double opt-in flow. The first call emails a confirmation link to contact.email and returns status "confirmation_required"; no lead exists and no merchant is contacted until the buyer confirms. A later call with the same arguments reports "awaiting_confirmation" while the email is unconfirmed, or "received" with a reference_number after confirmation.

Merchant slugs come from list_merchants. Network-catalog brands that are absent from that list use merchant:"airshelf-network" with brandSlug:""; AirShelf routes the confirmed request to that brand.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoAny extra context from the buyer
contactYesBuyer contact details
merchantYesMerchant slug or id (from list_merchants), or "airshelf-network" for network-catalog brands
productsYesCatalog slugs the buyer is interested in
quantityNoUnits the buyer wants
brandSlugNoManufacturer slug (from search results) — required with merchant:"airshelf-network" so the lead reaches the right brand

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
next_stepNo
reference_numberNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses the double opt-in mechanism, the fact that no lead exists or merchant is contacted until confirmation, and the state progression ('confirmation_required', 'awaiting_confirmation', 'received' with reference_number). This is exactly the kind of behavioral context that annotations alone do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a one-sentence purpose, followed by a compact flow explanation and a brief edge-case routing rule. Every sentence adds necessary information about behavior or parameter usage; no redundant or generic filler exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-trivial two-step quote request with state transitions and merchant-routing nuances, the description covers the confirmation flow, required statuses, and special merchant handling. The high schema coverage and annotations support this, and the description itself explains return-state semantics sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the schema already documents each parameter, but the description adds cross-tool semantics: merchant slugs come from list_merchants, brandSlug is required for airshelf-network routing, and products are catalog slugs. It also explains that the confirmation link goes to contact.email, enriching the contact parameter's meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb+object: 'Send a quote request for catalog products to a merchant's sales team on behalf of a named buyer.' This clearly distinguishes the tool from the catalog/research siblings by identifying the quote-request action and the merchant/buyer context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear operational context: it explains the two-step confirmation flow, when a later call is appropriate, and how to choose merchant slugs (including the airshelf-network fallback for network-catalog brands). It does not explicitly name alternative sibling tools for comparison, but the use case is sufficiently distinct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

research_shoppingResearch a considered purchaseA
Read-only
Inspect

research_shopping is the full verified-research job; find_products is the quick candidate-list tool. It runs as a background job and returns status "running" with a research ID while the minutes-long research continues; the same research ID returns the run on later polls until completion. Unsafe medical, legal, financial-advice, and professional-service asks return status "refused" before any work is queued. Completed runs return a researched recommendation with per-claim source receipts, or an explicit refusal when evidence is insufficient. Missing decision details return clarification questions before research starts. market biases discovery and marketplace checks toward seller pages serving that country; "available in " means the seller page serves that market, not that stock is guaranteed. Example answer keys include {"budget":"500 USD","market":"US","category":"espresso machine"}.

ParametersJSON Schema
NameRequiredDescriptionDefault
needNoBuyer need in natural language. Required when starting a new research run.
marketNoBuyer market as an ISO 3166-1 alpha-2 country code. Biases discovery and marketplace checks toward seller pages serving that country; availability is not a stock guarantee.
answersNoAnswers to clarification questions. Set accept_defaults:true to accept budget and market defaults; it does not waive product type, use case, or must-have requirements.
personaNoResearch persona; b2b produces a quotation/RFQ pack.
research_idNoExisting research run identifier to read instead of starting a new run.

Output Schema

ParametersJSON Schema
NameRequiredDescription
stageNo
reasonNo
statusYes
dossierNo
outcomeNo
questionsNo
eta_secondsNo
research_idNo
stage_countersNo
elapsed_secondsNo
accepted_defaultsNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Reveals asynchronous behavior (returns 'running' + research ID; poll later), refusal statuses for unsafe topics, completion output with per-claim receipts, and market semantics ('available in <market>' is not a stock guarantee). This far exceeds the readOnlyHint/openWorldHint annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Seven sentences, each adding a distinct piece of operational guidance; no filler, front-loaded with the definition and sibling contrast.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values are covered; description supplies what schema/annotations lack: async lifecycle, refusal conditions, clarification behavior, and market interpretation, making it fully adequate for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions, so baseline is 3; the description adds valuable context on how `market` biases results and gives an example of the `answers` structure, justifying a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States clearly it is the 'full verified-research job' for considered purchases, distinctly contrasted with 'find_products' as the quick candidate-list tool, so the agent understands its unique role among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names find_products as the lighter alternative, and documents when it returns 'refused' (unsafe domains) and 'clarification questions' (missing decision details), indicating when to use versus avoid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_catalogSearch product catalogA
Read-only
Inspect

Search the AirShelf cross-vendor product catalog by natural-language query. The catalog covers industrial-automation components (sensors, encoders, vacuum handling, motors and drives, circuit protection, machine vision — the largest category by row count), wiring devices (plugs, receptacles, connector bodies, rocker switches), multifunction printers (mfp), barcode printers, laser printers, mechanical keyboards, cybersecurity products, and threat-intelligence platforms. Industrial-automation and wiring-device rows are indexed by manufacturer part number, so a brand or part number in the query ("Pepperl+Fuchs retroreflective sensor", "IN5409") retrieves more reliably than a bare product type; those rows carry no normalized spec facets, so the specs filter does not apply to them. Returns ranked products with prices, specs, and per-row match accounting. Each row includes unverified_specs, the normalized spec names that lack claim-level receipts; never use those as decisive facts. Example queries: "tactile mechanical keyboard under $150", "Toshiba A3 colour multifunction device", "industrial barcode printer for a warehouse", "threat-intelligence platform with dark-web monitoring".

Result fields: • canonical_name — the exact catalog name of the product. • spec_absence_note — spec fields absent from this product's golden record (AirShelf's verified product record); null when nothing is missing. • constraint_match_score and matched_criteria — query constraints supported by claim-level receipts. unverified_criteria names matching catalog values that still need confirmation; missing_criteria names values that are absent or conflict. • parsed.price_availability — all_null = true means every returned price is null. For quote-gated B2B pricing, a null price with a quote path is expected rather than an error; query_had_budget reports whether the query carried one. • result.commercial_data — branch on actionable before using price or stock. Observations older than 24 hours are withheld from result.price/result.inStock and retained only as labelled last_observed history. • parsed.weak_match — the response contains an unresolved constraint, query match, or product-identity warning. parsed.unverified_identity_count counts returned names without an identity receipt. parsed.no_match — no product satisfies a hard constraint, and candidates violating it were excluded server-side.

On a miss or near-miss for a specific brand+model the response may also carry a tier3 block, meaning a real-time lookup for the exact SKU asked about; it can appear alongside fuzzy-neighbour rows. • tier3.status = "resolved" — a single-source reading of the page at tier3.source_url. MPN-confirmed means the live lookup matched the manufacturer part number. Its verification is "live-unverified": confirmed on a live page during this run, but not yet matched to an AirShelf catalog record. A verified row is matched to the catalog record. tier3.cached = true means it came from a recent prior lookup, with fetched_at recording when the page was read. • tier3.status = "abstain" — the lookup could not confirm the product exists as asked, so no specs, price, or availability were established. tier3.guidance describes the quote-request path. • tier3.status = "declined" — an applicable lookup did not run; tier3.reason says why (disabled, rate_limited, daily_cap, negative_cache, error). No specs or availability were established, and none should be inferred. No tier3 block at all means a live lookup was not applicable to this query (no parseable brand+model identity).

Optional market (ISO 3166-1 alpha-2, e.g. "TH") excludes catalog rows whose country-specific URL conflicts with the buyer market and scopes tier3 lookup/cache. A remaining global URL is not local-availability proof: parsed.weak_match stays true and unsatisfied_constraints includes market_availability until every returned row has a matching country receipt. "Available in " still does not guarantee stock.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesNatural-language query, at most 200 characters. Supports budget hints (e.g. "under $150").
limitNoMax results
specsNoHard spec facets, e.g. {"form_factor":"desktop","print_speed_ppm":33}. Filters by exact/range spec match.
marketNoBuyer market as an assigned ISO 3166-1 alpha-2 country code (e.g. "TH", "AU"). Conflicting country receipts are excluded; global URLs remain market-unverified.
categoryNoOptional category filter (industrial-automation, wiring-devices, mechanical-keyboards, mfp, barcode-printer, laser-printer, cybersecurity, or threat-intelligence-platform)

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
queryNo
tier3No
parsedNo
reasonNo
statusNo
resultsYes
took_msNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and open-world behavior, and the description adds substantial behavioral context: `unverified_specs` must not be treated as decisive, tier3 lookup statuses are explained, quote-gated pricing is distinguished from errors, and market availability caveats are detailed. No contradiction with the annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but exceptionally well structured with sections, bullet lists, and examples. It front-loads the core purpose and every major block addresses a distinct behavioral or result concern. The length is justified by the tool's complexity, though slightly verbose for a search tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description comprehensively covers query scope, category-specific indexing, result-field semantics, price null handling, tier3 states, market behavior, and failure modes. Given the presence of an output schema and the tool's complexity, this is complete and leaves little ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the input schema covers all five parameters, the description adds important semantics beyond the schema: the `specs` filter does not apply to certain categories, `market` excludes conflicting country receipts and scopes tier3 lookups, `q` supports budget hints, and the `category` values are enumerated. This is well above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Search the AirShelf cross-vendor product catalog by natural-language query.' It further distinguishes the tool by enumerating the catalog categories it covers, which makes its scope clear relative to sibling product tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool via example queries and category-specific guidance (e.g., 'Industrial-automation and wiring-device rows are indexed by manufacturer part number... the `specs` filter does not apply to them'). It stops short of explicitly naming alternative tools or when-not-to-use conditions, so it misses the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Cross-border product catalog for AI agents. Search and compare products from US and South East Asian markets via Model Context Protocol.
    6
    79
    7
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Give your AI agent access to 8,400+ software tools — search, compare, get pricing, find alternatives, and discover the best tool for any use case.
    6
    12
    2
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources