What this MCP does
Enables agents to search, compare, research, and request quotes for products in a cross-vendor B2B catalog.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slugs'], 'properties': {'slugs': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 10, 'minItems': 2, 'description': 'Catalog slugs to compare'}, 'provenance': {'type': 'boolean', 'description': 'Include the stored source page and source type for each fact'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'count': {'type': 'number'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string'}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'modelName': {'type': 'string'}, 'manufacturer': {'type': 'string'}, 'canonical_name': {'type': 'string'}, 'spec_absence_note': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': 'Composite slug to explain'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sku': {'type': 'string'}, 'note': {'type': 'string'}, 'slug': {'type': 'string'}, 'count': {'type': 'number'}, 'trace': {}, 'record': {}, 'category': {'type': 'string'}, 'trace_status': {'enum': ['available', 'not_recorded'], 'type': 'string'}, 'canonical_name': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['need'], 'properties': {'max': {'type': 'integer', 'default': 3, 'maximum': 3, 'minimum': 1, 'description': 'Max candidates to verify (each costs a live lookup; capped at 3).'}, 'need': {'type': 'string', 'maxLength': 200, 'minLength': 3, 'description': 'The buyer need in natural language, e.g. "quiet mechanical keyboard for open office" or "best value home espresso machine".'}, 'market': {'type': 'string', 'description': 'Buyer 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
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['candidates'], 'properties': {'need': {'type': 'string'}, 'error': {'type': 'string'}, 'market': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'reason': {'type': 'string'}, 'status': {'enum': ['ok', 'no_match', 'disabled', 'rate_limited', 'unavailable', 'error', 'refused'], 'type': 'string'}, 'took_ms': {'type': 'number'}, 'guidance': {'type': 'string'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'required': ['query', 'tier', 'status'], 'properties': {'tier': {'type': 'number'}, 'query': {'type': 'string'}, 'cached': {'type': 'boolean'}, 'reason': {'type': 'string'}, 'status': {'enum': ['resolved', 'abstain', 'declined'], 'type': 'string'}, 'product': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'guidance': {'type': 'string'}, 'identity': {'type': 'object', 'required': ['brand', 'model'], 'properties': {'brand': {'type': 'string'}, 'model': {'type': 'string'}}, 'additionalProperties': False}, 'source_url': {'type': 'string'}, 'source_tier': {'type': 'string'}, 'verification': {'type': 'string'}, 'mpn_confirmed': {'type': 'boolean'}}, 'additionalProperties': {}}}, 'verification': {'type': 'string'}, 'live_discovery': {'type': 'object', 'required': ['status'], 'properties': {'reason': {'type': 'string'}, 'status': {'type': 'string', 'const': 'unavailable'}, 'guidance': {'type': 'string'}}, 'additionalProperties': False}, 'serp_considered': {'type': 'number'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': 'Composite slug, e.g. keychron-q1-pro'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'productId', 'buttonLabel', 'action'], 'properties': {'title': {'type': 'string'}, 'action': {'enum': ['quote', 'link'], 'type': 'string'}, 'buyUrl': {'type': 'string'}, 'product': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'benefits': {'type': 'array', 'items': {'type': 'string'}}, 'imageUrl': {'type': 'string'}, 'productId': {'type': 'string'}, 'buttonLabel': {'type': 'string'}, 'pricing_gated': {'type': 'boolean'}, 'related_products': {'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['merchants'], 'properties': {'total': {'type': 'number'}, 'merchants': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'product_count'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'domain': {'type': 'string'}, 'product_count': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': {}}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['merchant', 'products', 'contact'], 'properties': {'notes': {'type': 'string', 'description': 'Any extra context from the buyer'}, 'contact': {'type': 'object', 'required': ['name', 'email'], 'properties': {'name': {'type': 'string', 'description': 'Buyer name'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Buyer work email'}, 'company': {'type': 'string', 'description': 'Buyer company'}}, 'description': 'Buyer contact details'}, 'merchant': {'type': 'string', 'minLength': 1, 'description': 'Merchant slug or id (from list_merchants), or "airshelf-network" for network-catalog brands'}, 'products': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 50, 'minItems': 1, 'description': 'Catalog slugs the buyer is interested in'}, 'quantity': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Units the buyer wants', 'exclusiveMinimum': 0}, 'brandSlug': {'type': 'string', 'minLength': 1, 'description': 'Manufacturer slug (from search results) â\x80\x94 required with merchant:"airshelf-network" so the lead reaches the right brand'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'status': {'type': 'string'}, 'next_step': {'type': 'string'}, 'reference_number': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'need': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Buyer need in natural language. Required when starting a new research run.'}, 'market': {'type': 'string', 'description': 'Buyer 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.'}, 'answers': {'type': 'object', 'description': 'Answers 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.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'persona': {'enum': ['consumer', 'b2b'], 'type': 'string', 'description': 'Research persona; b2b produces a quotation/RFQ pack.'}, 'research_id': {'type': 'string', 'description': 'Existing research run identifier to read instead of starting a new run.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status'], 'properties': {'stage': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'reason': {'type': 'string'}, 'status': {'enum': ['needs_input', 'running', 'complete', 'failed', 'refused'], 'type': 'string'}, 'dossier': {}, 'outcome': {'anyOf': [{'enum': ['recommend', 'conditional', 'insufficient_evidence', 'no_candidate_passes', 'defer'], 'type': 'string'}, {'type': 'null'}]}, 'questions': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'question'], 'properties': {'key': {'enum': ['budget', 'market', 'category'], 'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'eta_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'research_id': {'type': 'string'}, 'stage_counters': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'elapsed_seconds': {'type': 'number'}, 'accepted_defaults': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'maxLength': 200, 'minLength': 0, 'description': 'Natural-language query, at most 200 characters. Supports budget hints (e.g. "under $150").'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 200, 'minimum': 1, 'description': 'Max results'}, 'specs': {'type': 'object', 'description': 'Hard spec facets, e.g. {"form_factor":"desktop","print_speed_ppm":33}. Filters by exact/range spec match.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'anyOf': [{'type': 'number'}, {'type': 'string'}, {'type': 'boolean'}]}}, 'market': {'type': 'string', 'description': 'Buyer 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.'}, 'category': {'type': 'string', 'description': 'Optional category filter (industrial-automation, wiring-devices, mechanical-keyboards, mfp, barcode-printer, laser-printer, inkjet-printer, cybersecurity, or threat-intelligence-platform)'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'count': {'type': 'number'}, 'query': {'type': 'string'}, 'tier3': {'type': 'object', 'required': ['tier', 'status'], 'properties': {'tier': {'type': 'number'}, 'cached': {'type': 'boolean'}, 'reason': {'type': 'string'}, 'status': {'enum': ['resolved', 'abstain', 'declined'], 'type': 'string'}, 'product': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'guidance': {'type': 'string'}, 'identity': {'type': 'object', 'required': ['brand', 'model'], 'properties': {'brand': {'type': 'string'}, 'model': {'type': 'string'}}, 'additionalProperties': False}, 'source_url': {'type': 'string'}, 'source_tier': {'type': 'string'}, 'verification': {'type': 'string'}, 'mpn_confirmed': {'type': 'boolean'}}, 'additionalProperties': {}}, 'parsed': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'reason': {'type': 'string'}, 'status': {'enum': ['refused'], 'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string'}, 'price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'category': {'type': 'string'}, 'currency': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'modelName': {'type': 'string'}, 'manufacturer': {'type': 'string'}, 'qualityScore': {'type': 'number'}, 'canonical_name': {'type': 'string'}, 'spec_absence_note': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'constraint_match_score': {'type': 'number'}}, 'additionalProperties': {}}}, 'took_ms': {'type': 'number'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
Agentic Fabrication Network (AFN)
Obtains quotes and places orders for 3D printing, CNC and sheet-metal fabrication, decals, and related manufacturing services.
AgentRoam
Browses and purchases travel eSIMs, gift cards, and mobile top-ups using supported cryptocurrencies, with order validation and st…
beauty
Finds and recommends sponsored beauty products, brands, and skincare routines based on shopper preferences and skin profiles.
1325.AI
Provides a searchable directory of Black-owned U.S. businesses with map and loyalty-reward features.
mcp
Helps Amazon sellers calculate per-unit profit from settlement data and prepare drafts for seller approval.
AgentUtility Retail
Pay-per-call x402 MCP cluster identified as retail-related; no tools are exposed in the registry.
Graffeo Coffee Roasting
Provides a live product catalog for Graffeo Coffee Roasting.
Agentic Shelf
Provides an e-commerce catalog with live product listings, inventory, and pricing.