Shopping Discovery

io.github.Periskop-aiPublished by GitHub account Periskop-aiv0.1.0Updated Oct 25, 2026

Product discovery for AI agents: ranked products and bundles from the open merchant web.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingBusiness & Commerce

Overview

AI-generated overview

A hosted MCP server that turns a natural-language shopping intent into ranked products, alternatives and bundles with merchant links.

What you can do
Run a shopping discovery from a natural-language prompt, choosing a mode such as browse, recommend, best or bundle, with optional store, country, currency, language and result limits, and get ranked products with prices and merchant links back. Retrieve a previous discovery result by its result id. Inspect which public stores are supported, filtered by country, category or capability. Send feedback on a result and suggest stores for future coverage.
When to use it
Use it when an assistant needs to find, compare or bundle products from independent online stores and hand the user links to buy on the merchant site. Suited to shopping assistants, procurement or sourcing copilots, price and deal monitors, and gifting or restock workflows.
Requirements
A remote HTTPS endpoint; nothing to install. A Periskop API key sent as an Authorization bearer token, or OAuth 2.1 for hosts that prefer it. Network access to the endpoint.
Before you install
Discovery requests are billed against a prepaid wallet, though failed, malformed, rate-limited and no-match requests are not billed. The API key is a credential and should be kept secret. Results are temporary and may expire. It returns product results and merchant links only; checkout, payment and inventory reservation happen on the merchant site, and prices and availability may change.

Installation

In SourceWeft

  1. Open Shopping Discovery in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.Periskop-ai%2Fshopping-discovery/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "shopping-discovery": {
      "type": "http",
      "url": "https://mcp.periskop.ai/v1/mcp"
    }
  }
}

README

Periskop — Product Discovery for AI Agents

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.

Who it's for

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.

What it does (and does not) do

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.

Connection

Endpointhttps://mcp.periskop.ai/v1/mcp
TransportStreamable HTTP — JSON-RPC 2.0 over HTTP POST (one JSON response per POST; no SSE)
Wire protocol2024-11-05
AuthAuthorization: Bearer <YOUR_PERISKOP_API_KEY> (keys look like dp_…)
Get a keyhttps://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.

Tools

All tools take a single JSON object argument. Schemas below are the public tool surface.

run_shopping_discovery

Find, choose, browse, recommend, get the best product, or build a bundle from a natural-language request. The only required field is prompt.

FieldTypeRequiredNotes
promptstring✅Natural-language shopping intent
modestring | nullauto | browse | recommend | best | bundle (default auto)
storestring | nullauto, a store id, or a store name/hint
countrystring | nulle.g. PT, ES
currencystring | nulle.g. EUR
languagestring | nulle.g. en, pt
max_resultsinteger | nullCap on returned products
response_formatstring | nullfull (default) | simple

get_discovery_result

Retrieve a previous result by result_id. Results are temporary and may expire.

FieldTypeRequired
result_idstring✅
response_formatstring | null

discover_supported_stores

Inspect the public stores Periskop can use. Returns public store capabilities only.

FieldTypeRequired
countrystring | null
categorystring | null
capabilitystring | null (search | bundle | product_links)

report_result_feedback

Report whether a result was good, bad, or mixed.

FieldTypeRequired
result_idstring✅
ratingstring (good | bad | mixed)✅
reasonstring | null
selected_product_idstring | null
freeform_feedbackstring | null

suggest_store_coverage

Suggest 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.

FieldTypeRequired
store_namestring✅
store_urlstring | null
country / region / categorystring | null
contextstring | null (e.g. unsupported_store, no_match)

Example

Request (JSON-RPC tools/call)

bash
curl -sS -X POST https://mcp.periskop.ai/v1/mcp \  -H "Authorization: Bearer YOUR_PERISKOP_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "jsonrpc": "2.0",    "id": 1,    "method": "tools/call",    "params": {      "name": "run_shopping_discovery",      "arguments": { "prompt": "wireless noise-cancelling headphones for travel under 200€", "mode": "best" }    }  }'

Response (trimmed — sample/fake data, not real)

json
{  "jsonrpc": "2.0",  "id": 1,  "result": {    "content": [      {        "type": "text",        "text": "{\"result_id\":\"res_example_8f2a1c\",\"mode_used\":\"best\",\"products\":[{\"title\":\"SampleAudio Aero NC\",\"price\":\"€179.00\",\"currency\":\"EUR\",\"merchant\":\"Example Store\",\"url\":\"https://store.example/p/aero-nc\",\"role\":\"best_pick\"},{\"title\":\"Acme Quietline 2\",\"price\":\"€149.00\",\"currency\":\"EUR\",\"merchant\":\"Example Store\",\"url\":\"https://store.example/p/quietline-2\",\"role\":\"alternative\"}],\"caveats\":[\"Prices and availability may change on the merchant site.\"],\"purchase_boundary\":{\"checkout_created\":false,\"payment_processed\":false,\"stock_reserved\":false,\"user_must_complete_purchase_on_merchant_site\":true}}"      }    ]  }}

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.

Pricing (summary)

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.

Client setup

Copy-paste configs are in config-snippets/: Cursor (.cursor/mcp.json), Claude Desktop, Claude Code, and a raw curl example.

Source: README.md at commit 8b5a217

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts