Periskop MCP Server
Enables AI agents to perform product discovery from natural language shopping intents, returning ranked products with merchant links without completing checkout.
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.
- Website: https://periskop.ai
- Developer portal / get an API key: https://periskop.ai/developer
- Docs: https://periskop.ai/developer/docs
- MCP endpoint:
https://mcp.periskop.ai/v1/mcp(Streamable HTTP, JSON-RPC 2.0)
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
| 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.
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.
| 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_result
Retrieve a previous result by result_id. Results are temporary and may expire.
| Field | Type | Required |
|---|---|---|
result_id |
string | ✅ |
response_format |
string | null |
discover_supported_stores
Inspect 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_feedback
Report 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_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.
| Field | Type | Required |
|---|---|---|
store_name |
string | ✅ |
store_url |
string | null | |
country / region / category |
string | null | |
context |
string | null (e.g. unsupported_store, no_match) |
Example
Request (JSON-RPC tools/call)
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)
{
"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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.