Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
xurprise
Resumen
Descripción del creador (original en inglés)
Agent-native commerce for SEA/China/global. 43 brands. 6 tools. 9-language search.
Los tres pilares de PopNx MCP
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
- Opinión de usuariosiAún no hay reseñasLas reseñas se abrirán junto con las cuentas en una etapa posterior
- Nuestras revisiones básicasi1 de 1 superadasRevisado con información pública; el código aún no se ha escaneado
- UsoiAún sin medir★ –
Qué puedes hacer con él
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
- Conexión: Se ejecuta en la nube
- Transporte: Streamable HTTP
- Categoría: Tiendas en línea y pagos
Instalación
Elige la app de IA que usas y copia la configuración.
Antes de instalar
- Revisiones básicas: 1 de 1 superadas
- Se ejecuta en el servidor del creador: lo que le pidas pasa por su servidor.
- El registro no indica ninguna clave que completar.
Necesitas
- Se ejecuta en la nubeNo hay nada que instalar; se conecta por internet
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Funciona en Claude para web, escritorio y móvil:
- Abre Settings → Connectors
- Presiona Add custom connector
- Pega la dirección de abajo y presiona Add
- Si te pide iniciar sesión, inicia sesión en el servicio del creador
https://xurprise.ai/api/mcpEjecuta esto en tu terminal
claude mcp add --transport http xurprise https://xurprise.ai/api/mcpO copia la configuración tú
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"xurprise": {
"url": "https://xurprise.ai/api/mcp"
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
O copia la configuración tú
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"xurprise": {
"type": "http",
"url": "https://xurprise.ai/api/mcp"
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
ChatGPT solo se conecta a servidores en internet:
- Abre ChatGPT en la web → Settings → Connectors (Apps)
- Presiona Create o Add (en algunos planes primero hay que activar Developer mode en Advanced)
- Pega la dirección de abajo, ponle un nombre y guarda
- Si te pide iniciar sesión, inicia sesión en el servicio del creador
https://xurprise.ai/api/mcpLos nombres de los menús pueden variar un poco según el plan y con el tiempo.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Qué puede hacer
Todavía no hemos leído la lista de herramientas de este servidor; revisamos los endpoints por turnos.
Revisiones básicasi
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
- ✓ Superada
El creador coincide con el repo
El nombre en el registro se verificó con el dominio xurprise.ai (el registro comprueba quién es dueño del dominio)
- … Aún sin revisar
Sigue en mantenimiento
Todavía no hemos leído este repo en GitHub
- … Aún sin revisar
Tiene licencia
Todavía no hemos leído este repo en GitHub
- … Aún sin revisar
El endpoint responde
Aún sin revisar; revisamos los endpoints por turnos
- … Aún sin revisar
Inicio de sesión con OAuth
Aún sin revisar; revisamos los endpoints por turnos
- … Aún sin revisar
Sin instrucciones ocultas en las descripciones de herramientas
Aún sin revisar; leemos la lista de herramientas cuando revisamos el endpoint
Comparado con otros en Tiendas en línea y pagosi
- Más estrellas que el 0% de los otros 1753 servidores de esta categoría
- Publicado en el registro más recientemente que el 5% de los otros 1753 servidores de esta categoría
- Revisiones básicas iguales o mejores que el 100% de los otros 1753 servidores de esta categoría
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Preguntas frecuentes
¿Es seguro xurprise?
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
¿Qué claves o códigos necesita?
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
¿Se ejecuta en mi computadora o en la nube?
Se ejecuta en la nube del creador. Te conectas por internet sin instalar nada, pero lo que envías pasa por los servidores del creador.
¿Sigue en mantenimiento?
El repo de GitHub cambió por última vez –, y la última versión (0.3.0) llegó al registro hace 7 meses.
¿Qué apps pueden usarlo?
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.
¿Qué puedo usar en su lugar?
En la misma categoría: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
Alternativas
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Stripe MCP
MCP server integrating with Stripe - tools for customers, products, payments, and more.
MCP Cn Commerce
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
README del creador
Abrir el README
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
xurprise MCP
Agent-native commerce · xurprise.
One HTTPS endpoint. Six tools. Zero setup. Multilingual.
This GIF is recorded from a real page, not a mockup.
Visit [xurprise.ai/demo](https://xurprise.ai/demo/) to watch it render live in your browser. It runs the official
@openuidev/react-langagainst a customBrandCardcomponent, driven by hand-authored openui-lang snippets that wrap the exact JSONxurprise.ai/api/mcpreturns — so what you see *is* what any OpenUI-based chat client gets when it calls our MCP.
The xurprise MCP server lets any MCP-compatible agent (Claude, Cursor, Cline, Continue, Goose, etc.) discover merchant brands and get attribution-tracked click-through URLs across a curated catalogue spanning Taobao, Shopee, Shein, Xiaomi, Sephora, JD Sports, Airpaz, WPS, FusionHome AI, and more — with region matching built in so agents don't recommend Singapore-only merchants to users in Germany.
Hosted endpoint: https://xurprise.ai/api/mcp
Protocol: Model Context Protocol (MCP) 2024-11-05 over Streamable HTTP. Stateless, no auth required, no SDK needed.
Why
Commerce in the agent era has a cold-start problem: when an agent wants to recommend a real merchant, it typically:
- Searches the open web, picks a result based on SEO ranking, and hopes the merchant ships to its user's country.
- Or hardcodes a handful of well-known brands and misses region fit.
xurprise MCP solves this for the niche we cover by giving agents a machine-readable, region-aware brand catalogue — one call and you get back a structured list of merchants the user can actually buy from, with canonical storefront URLs and click-through URLs that log attribution for us and pass through any aff_sub tag the agent supplies.
Quick start
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows).
Option A — native remote HTTP (Claude Desktop ≥ early 2025):
{
"mcpServers": { "xurprise": { "type": "http", "url": "https://xurprise.ai/api/mcp" } } }
Option B — via `mcp-remote` bridge (any Claude Desktop version):
{
"mcpServers": { "xurprise": { "command": "npx", "args": ["-y", "mcp-remote", "https://xurprise.ai/api/mcp"] } } }
Restart Claude Desktop, open a new conversation, and type something like:
I'm in Singapore. Any good beauty brands I can shop online?
Claude will call search_brands(query="beauty", region="Singapore") and surface Sephora SG with a click-through URL.
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": { "xurprise": { "url": "https://xurprise.ai/api/mcp" } } }
Cline / Continue / Goose
Same remote HTTP URL — see each client's docs for the exact config path. If your client only supports stdio, use mcp-remote as the bridge (see Option B above).
Raw HTTP (curl, Python, anywhere)
curl -X POST https://xurprise.ai/api/mcp \
-H 'Content-Type: application/json' \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_brands", "arguments": { "query": "badminton", "region": "Singapore" } } }'
Tools
Note on response shape. MCP tools/call returns an object with
two fields:
content[](text blocks containing JSON) and
structuredContent(the typed result). Per the MCP spec,
structuredContentmust be a record (object), not an array —
so tools that logically return a list wrap it in a record with
a
results/regions/categorieskey. All MCP-compatible
clients (Claude Desktop, Cursor, Cline, Continue, Goose, etc.)
auto-handle this; you only see it if you're decoding the raw
JSON-RPC response yourself.
Multilingual search
The search_brands tool is indexed across 9 language variants so agents serving SEA users don't have to translate queries to English:
- English, Simplified + Traditional Chinese
- Malay, Indonesian, Vietnamese, Thai
- Japanese, Korean
Verified: 20 test queries in 8 languages, all resolve the same consumer intent to the same brand. A few examples:
| query | language | top-1 match |
|---|---|---|
beauty Singapore | EN | sephora-sg |
新加坡 美妆 | ZH | sephora-sg |
kecantikan Singapura | MS | sephora-sg |
mỹ phẩm Singapore | VI | sephora-sg |
เครื่องสำอาง สิงคโปร์ | TH | sephora-sg |
シンガポール 化粧品 | JA | sephora-sg |
싱가포르 화장품 | KO | sephora-sg |
小米 手机 | ZH | xiaomi-sg |
샤오미 | KO | xiaomi-sg |
机票 / 航空券 / 항공권 | ZH/JA/KO | airpaz-global |
希音 | ZH | shein-global |
The per-brand keyword index covers brand aliases (transliterated names like 小米 / 샤오미 / シャオミ for Xiaomi), category synonyms (Fashion / 时尚 / fesyen / thời trang / แฟชั่น / ファッション / 패션), and region aliases (Singapore / 新加坡 / 싱가포르 / สิงคโปร์ / Singapura). CJK and Thai queries are tokenized with 2-char n-grams since those scripts have no whitespace word boundaries.
search_brands
Free-text search over the catalogue. Results are rank-scored on the query against brand name, headline, category, and the multilingual keyword index above.
search_brands({
query: string, // required — e.g. "skincare", "Taobao", "athletic shoes" region?: string, // optional — full country name or "International" category?: string, // optional — "Fashion", "Electronics", etc. limit?: number, // optional — default 10, max 50 }) => { results: Brand[], count: number, query: string }
get_brand
Fetch the full record for a slug.
get_brand({ slug: string }) => Brand
list_regions
All shipping regions represented in the catalogue (use before recommending to confirm user's country is covered).
list_regions() => { regions: string[], count: number }
list_categories
All categories represented in the catalogue.
list_categories() => { categories: string[], count: number }
get_click_url
Build the canonical click-through URL. Use this (not the merchant URL directly) so the click gets logged for attribution, and any aff_sub you pass will be propagated downstream.
get_click_url({
slug: string, aff_sub?: string, // optional — up to 200 chars, recommended: // your agent's session id or similar }) => { click_url: string, slug: string, name: string }
wrap_product_url
Product-level attribution. Use when the user wants a specific item (a particular Sony headphone, a specific Shein dress, etc.) rather than the brand's homepage. You supply any URL on a supported merchant's site — xurprise wraps it into a click-through URL that lands the user on that exact product while preserving attribution tracking.
The agent is expected to discover the merchant URL itself (via its own web search, training knowledge, or MCP tool composition). xurprise is the attribution layer, not the catalogue — this lets you leverage whatever product-discovery capabilities your client already has.
wrap_product_url({
merchant_url: string, // required — full https URL on a supported merchant // e.g. "https://shopee.sg/Sony-WH-1000XM5-i.12345.67890" product_name?: string, // optional — surfaces in attribution logs aff_sub?: string, // optional — e.g. your chat session id }) => { click_url: string, // https://xurprise.ai/go/p?u=... (302s to the product) merchant_url: string, // canonicalized input merchant_hostname: string, slug: string, // which brand the domain maps to brand: string, name: string, }
Supported merchant domains (product-level attribution works on any URL within these, even deep paths):
| Brand | Accepted hostname (incl. subdomains) |
|---|---|
| Shopee SG | shopee.sg |
| Xiaomi SG | mi.com |
| Sephora SG | sephora.sg |
| JD Sports SG | jdsports.com.sg |
| Shein | shein.com (any regional subdomain) |
| Airpaz | airpaz.com |
| WPS Office | wps.com |
| FusionHome AI | fusionhome.ai |
| The Trade Wizard | thetradewizard.com |
Taobao is deliberately excluded from product-level wrapping — the upstream routing for Taobao is whitelist-locked or brand-only, so product-level attribution isn't reliable there. For Taobao, use get_click_url with the brand-level slug instead.
Brand schema
Every brand record has:
| Field | Type | Example |
|---|---|---|
slug | string | shopee-sg |
name | string | Shopee — Singapore |
brand | string | Shopee |
categories | string[] | ["Marketplace"] |
regions | string[] | ["Singapore"] |
currency | string | SGD |
merchant_url | string | https://shopee.sg/ |
page_url | string | https://xurprise.ai/brands/shopee-sg/ |
click_url | string | https://xurprise.ai/go/shopee-sg |
headline | string | (1–3 sentence description) |
agent_note | string? | Optional region-routing or caveat guidance |
Current catalogue
As of the latest refresh, 43 brands across region-matched surfaces:
- Marketplace — Shopee SG, Taobao (Ai Taobao International), Taobao (brand-level), Alibaba, Banggood, AliExpress
- Fashion — JD Sports SG, Shein Global, Poplook, Rip Curl SG, Juice Store, Bernardelli
- Health & Beauty — Sephora SG, Kinohimitsu SG, Papique
- Electronics — Xiaomi SG, XP-PEN SG, Stryv SG
- Travel — Airpaz, KKday, Zen Hotels, byFood, TrainPal, Kiwi.com, EasyBook, NINJA WiFi
- Digital Services / Software — WPS, The Trade Wizard, Sider AI, Wegic, iMobie, MyRepublic SG
- Online Courses — Udemy, International Open Academy
- Gaming / Entertainment — UniPin, GameSeal, BINGE
- Gifting & Crafts — Photobook SG, FlowerAdvisor SG
- Home & Living — FusionHome AI, Homestyler
- Automotive — Trapo SG
- Deals / Aggregation — StackSocial
Regional coverage: 12 Singapore-local, 2 Malaysia / SG multi-region, 7 SEA-regional, 22 global. A handful of brands are exposed as brand-level entries only (attribution redirects point at the brand homepage, not individual products) — get_brand surfaces the distinction via the agent_note field when relevant.
For the live list, call list_categories + search_brands or visit https://xurprise.ai/brands/.
FAQ
Is the catalogue curated or crawled? Curated. Every brand goes through a partner-approval flow and is given a hand-authored headline. We do not scrape.
How fresh is the data? Regenerated from our internal catalogue on each deploy. See page_url on each brand and the sitemap lastmod.
Do you track my users? The /go/{slug} redirect logs {timestamp, slug, user-agent, ASN, country, referer} — enough to distinguish crawler traffic from human traffic and to attribute clicks across sessions. We do NOT log raw IPs. Beyond /go/, we do not set cookies or run analytics on the merchant storefront (that's Shopee/Shein/etc.'s own page).
What happens after a click? A 302 redirect chain takes the user to the canonical merchant storefront with attribution preserved end-to-end. Any aff_sub you pass through get_click_url is carried through the chain.
Can I add my brand? Merc
Solo se muestra el principio; lee el resto en el repo