Product discovery for AI agents: ranked products and bundles from the open merchant web.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Product discovery for AI agents. One MCP call turns a natural-language shopping intent into structured, ranked product results β best picks, alternatives, bundles, caveats, prices, and merchant links β from across independent stores on the open merchant web.
Periskop is a hosted, remote MCP server (closed source). You connect over the public HTTPS endpoint with a Periskop API key β nothing to install or run. It's the discovery layer for agentic commerce: an agent asks in natural language and Periskop returns ranked products with links back to the merchant. It stops at discovery β no checkout, no payments, no orders.
https://mcp.periskop.ai/v1/mcp (Streamable HTTP, JSON-RPC 2.0)Any product that needs to turn intent into reliable product results without owning checkout β agent platforms and orchestrators, AI worker platforms, AI shopping assistants, browser agents, commerce copilots, recommendation systems, procurement and B2B sourcing workflows, price and deal monitors, restock/reorder bots, gifting apps, resale and arbitrage workflows, and accessibility shopping tools. Concretely: an agent that plans a camping trip and returns the gear, a procurement copilot comparing options across suppliers, or a voice assistant surfacing the right product from a single sentence.
Periskop returns product results and merchant links only. It does not complete
checkout, create merchant carts, process payment, reserve inventory, or purchase items.
The user always completes any purchase on the merchant's own website. Every response
carries a purchase_boundary block restating this.
| Endpoint | https://mcp.periskop.ai/v1/mcp |
| Transport | Streamable HTTP β JSON-RPC 2.0 over HTTP POST (one JSON response per POST; no SSE) |
| Wire protocol | 2024-11-05 |
| Auth | Authorization: Bearer <YOUR_PERISKOP_API_KEY> (keys look like dp_β¦) |
| Get a key | https://periskop.ai/developer |
Unauthenticated requests receive 401 with a WWW-Authenticate: Bearer header.
Note: Periskop also supports OAuth 2.1 (Authorization Code + PKCE) for hosts that prefer it (tokens look like
dpo_β¦). API key is the simplest path and is all you need for the configs below.
All tools take a single JSON object argument. Schemas below are the public tool surface.
run_shopping_discoveryFind, choose, browse, recommend, get the best product, or build a bundle from a
natural-language request. The only required field is prompt.
| Field | Type | Required | Notes |
|---|---|---|---|
prompt | string | β | Natural-language shopping intent |
mode | string | null | auto | browse | recommend | best | bundle (default auto) | |
store | string | null | auto, a store id, or a store name/hint | |
country | string | null | e.g. PT, ES | |
currency | string | null | e.g. EUR | |
language | string | null | e.g. en, pt | |
max_results | integer | null | Cap on returned products | |
response_format | string | null | full (default) | simple |
get_discovery_resultRetrieve a previous result by result_id. Results are temporary and may expire.
| Field | Type | Required |
|---|---|---|
result_id | string | β |
response_format | string | null |
discover_supported_storesInspect the public stores Periskop can use. Returns public store capabilities only.
| Field | Type | Required |
|---|---|---|
country | string | null | |
category | string | null | |
capability | string | null (search | bundle | product_links) |
report_result_feedbackReport whether a result was good, bad, or mixed.
| Field | Type | Required |
|---|---|---|
result_id | string | β |
rating | string (good | bad | mixed) | β |
reason | string | null | |
selected_product_id | string | null | |
freeform_feedback | string | null |
suggest_store_coverageSuggest a store/merchant/marketplace Periskop should support in the future. Non-billable. Does not search or scrape the store and does not guarantee future support.
| Field | Type | Required |
|---|---|---|
store_name | string | β |
store_url | string | null | |
country / region / category | string | null | |
context | string | null (e.g. unsupported_store, no_match) |
tools/call)The structured payload is returned as text in result.content[0].text. Every response and
the X-Request-ID response header carry a per-call request id.
Prepaid wallet, billed only on successful discovery requests. Auth errors, malformed requests, internal/runtime failures, rate limits, and hard no-match are never billed. See the live rate at https://periskop.ai/developer/billing.
Copy-paste configs are in config-snippets/: Cursor
(.cursor/mcp.json), Claude Desktop, Claude Code, and a raw curl example.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/shopping-discovery)<a href="https://allmcps.com/mcp/shopping-discovery"><img src="https://allmcps.com/api/badge/shopping-discovery?style=directory" alt="Shopping Discovery on AllMCPs" /></a>