Wallapop MCP Server
Unofficial MCP server for the Wallapop marketplace, enabling search, listing details, seller profiles, favorites, saved searches, chat, and offers through hybrid API and scraping fallbacks.
README
Wallapop MCP Server
Hybrid, unofficial MCP server for the Wallapop marketplace, built in TypeScript.
- HTTP primary: reverse-engineered calls to the private
api.wallapop.comv3 endpoints - SSR fallback:
__NEXT_DATA__scraping ofes.wallapop.compages (item details, seller profiles) - Playwright fallback: off-screen headed browser as last resort (Wallapop's CDN blocks headless Chrome)
- Authentication: optional email/password or browser-cookie import for favorites, saved searches, chat and offers (token refresh + session persistence)
Unofficial and unaffiliated. Uses Wallapop's undocumented API, which can change or block traffic at any time — use at your own risk, keep request volume low, and respect their Terms of Service.
Tools
| Tool | Auth | Description |
|---|---|---|
search_products |
– | Keyword search with category / price / location / radius / sort filters, cursor pagination (nextPage), reserved items filtered out |
scan_products |
– | Multi-query keyword scan with dedupe, price filtering and scam-flagging (shippable listings) |
get_listing |
– | Full listing detail: description, condition, price, images, views, favorites, seller, shipping |
get_seller |
– | Seller profile by id or web slug: rating (0–100), sold/published counts, registration date, location |
list_categories |
– | Marketplace category tree with ids |
server_status |
– | Health / auth / browser-fallback status |
favorite_listing / unfavorite_listing |
required | Favorites by numeric id, web slug or item URL (API + browser fallback) |
get_saved_searches / create_saved_search / delete_saved_search |
required | Saved search alerts |
list_conversations |
required | Chat inbox: other user, item, unread count, last message |
get_messages |
required | Full message history of a conversation |
send_message |
required | Send a chat message (real-time channel) |
make_offer |
required | Send a purchase offer (EUR) — seller gets it in chat and can accept/reject |
Quick start
git clone <this-repo>
cd WallpopMCP
npm install
npm run build
cp .env.example .env # fill in your keys (see Configuration)
npm run smoke # live sanity check against the API
Connect to an MCP client
# Claude Code (stdio)
claude mcp add wallapop -- node /absolute/path/to/WallpopMCP/dist/index.js
# Inspector (browse tools interactively)
npm run inspector
Configuration (.env, see .env.example)
| Variable | Purpose |
|---|---|
WALLAPOP_EMAIL / WALLAPOP_PASSWORD |
Enable auth tools (favorites, saved searches, chat, offers) |
WALLAPOP_COOKIES_FILE |
Optional JSON array of browser cookies ([{ name, value }]) exported from a logged-in session — the most reliable authenticated path |
WALLAPOP_DEFAULT_LAT / LNG / DISTANCE_KM |
Default search location (Barcelona center) |
WALLAPOP_SESSION_FILE |
Token/cookie persistence (default ./wallapop-session.json, gitignored) |
WALLAPOP_RATE_DELAY_MS |
Min delay between API calls (default 600) |
WALLAPOP_MAX_RESULTS |
Search results cap, 1–200 (default 200) |
WALLAPOP_BROWSER |
auto (default) | chrome | msedge | chromium | off |
Note:
WALLAPOP_EMAIL/WALLAPOP_PASSWORDmay fail for accounts with MFA or Keycloak flows — in that case export cookies from a logged-in browser intoWALLAPOP_COOKIES_FILE(a JSON array of cookie objects) and the server will use them directly.
How it works
Search (two-step API flow)
GET /api/v3/search/components→search_idGET /api/v3/search/section(40 items/page) →meta.next_pageJWT; the server packssearch_id+ cursor into an opaquenextPagetoken so clients just pass it back.
Chat & offers
- Messages are sent through the real-time channel (PubNub) and also land in the inbox API (
/bff/messaging/inbox) — both verified end-to-end. - Offers are created via
POST /api/v3/delivery/buyer/offerswith a client-generated offer id; sellers receive them in the conversation.
Authentication
- Tries
POST /api/v3/access/login→ stores access/refresh tokens + cookies to the session file, refreshes viaPOST /api/v3/access/refreshwhen the JWT is about to expire. - Falls back to an automated browser login; MFA challenges are detected and surfaced as an error (complete it manually, then export cookies to
WALLAPOP_COOKIES_FILE).
Fallback chain
- API request with browser-like headers, UA rotation, exponential back-off on 429, and
X-Signatureretry on 403 - SSR HTML scraping (
es.wallapop.com/item/...,/user/...) — richer data for sellers (ratings, counters) - Off-screen headed Chrome via Playwright (captures
api.wallapop.comXHR responses) — Wallapop's CDN blocks headless mode, so never useWALLAPOP_BROWSER=chromiumwithout manual browser downloads;autoprefers installed Chrome/Edge
Notes and known limits
search_productsprice filtering (minPrice/maxPrice) and radius filtering (distance_in_km) are API-side parameters.favorite_listing/unfavorite_listinguse best-effort endpoint candidates — verify with your account; endpoints change.- Item
conditionis only reliably available viaget_listing(search results usually omit it). - Some sellers disable offers —
make_offersurfaces a 409 error in that case.
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.