Skip to main content
Glama
MediaMarkt MCP

MediaMarkt MCP

by foeken

mediamarkt-mcp

MCP server that exposes MediaMarkt NL's "AI-modus" shopping assistant as one tool, ask_mediamarkt.

ask_mediamarkt in ChatGPT: product carousel widget followed by the assistant's answer

ChatGPT calling ask_mediamarkt with MEDIAMARKT_UI=widget: the MCP Apps carousel shows the products, the model uses the text answer.

How it works

The MediaMarkt site's chat widget POSTs to https://www.mediamarkt.nl/api/v1/ai-chat (Vercel AI SDK UI-message format, SSE response). No login or cookies are needed, only x-mms-country/-language/-salesline headers and a browser User-Agent. The assistant runs its own tools (search, compare, availability, stores) and streams back MCP-style tool results; this server collects the text answer plus the structured product list (with images).

Unofficial endpoint: it can change or be blocked at any time. See MediaMarkt's AI chatbot terms.

Related MCP server: Periskop MCP Server

Install

npm install
npm run check   # live smoke test against mediamarkt.nl

Run

Streamable HTTP is the default (stateless, works for ChatGPT, Codex, Claude):

node index.mjs                       # http://localhost:3000
PORT=8080 node index.mjs
MEDIAMARKT_UI=widget node index.mjs  # also serve the product carousel UI (MCP Apps)
node index.mjs --stdio               # stdio transport instead

Settings (environment):

Variable

Values

Default

Effect

PORT

number

3000

HTTP port

MEDIAMARKT_MCP_PUBLIC_URL

URL

derived from host and port

Public MCP endpoint; separate from the widget origin

MEDIAMARKT_MCP_WIDGET_DOMAIN

HTTPS origin

unset

Widget origin; required only when MEDIAMARKT_UI=widget

MEDIAMARKT_UI

text | widget

text

widget attaches an MCP Apps product carousel (ui://mediamarkt/product-carousel/v2.html) to the tool; hosts that render MCP Apps (ChatGPT) show product cards with image, name, price, seller and link, other hosts just get the text

Connect

codex mcp add mediamarkt --url http://localhost:3000

For ChatGPT, expose the HTTP server publicly (e.g. cloudflared tunnel --url http://localhost:3000) and add the URL under Settings → Apps in developer mode. Run with MEDIAMARKT_UI=widget to get the carousel.

Widget mode is opt-in for new users: set MEDIAMARKT_MCP_WIDGET_DOMAIN to the widget host's HTTPS origin. The local LaunchAgent derives both its public MCP URL and widget origin from the machine's current Tailscale hostname while keeping MEDIAMARKT_UI=widget enabled locally.

Tool

ask_mediamarkt({ question, language? }) — language is en (default) or nl; the answer follows the question's language, en also switches product names and URLs to the English storefront. Returns content[0].text (the assistant's answer plus product names, prices and sellers) and structuredContent.products[] (productId, ean, name, brand, price, currency, seller, deliveryTime, url, image).

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to perform product discovery from natural language shopping intents, returning ranked products with merchant links without completing checkout.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to ask bol.com's Shophulp shopping assistant product questions in any language, returning assistant text plus structured product recommendations with prices, sellers, ratings, and images. An optional widget mode renders grouped recommendation carousels as an MCP Apps view.
    36 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Serves a product store's catalog over MCP tool calls so agents can search products, add items to a cart, inspect the cart, and complete checkout without parsing full HTML pages. This keeps action payloads and token usage far smaller than DOM scraping, especially as catalogs grow, and also works through Chrome's native document.modelContext API.
    MIT