Purpose
marktplaats-mcp is an MCP (Model Context Protocol) server that connects to the two second-hand classifieds platforms Marktplaats.nl in the Netherlands and 2dehands.be in Belgium. It enables AI agents to search for items in natural language, filter by category attributes, view seller reputation, compare prices, and continuously monitor newly posted ads. The project is an independent open-source project and is not affiliated with Marktplaats, 2dehands, or Adevinta.
Main capabilities
- Search and filtering: Search listings across the Dutch and Belgian sites, filter by category attributes, and support language restriction (Dutch or French).
- Ad details and seller vetting: View ad details, check seller reviews and trustworthiness, and perform price comparison and price statistics.
- New ad monitoring: Monitor search results or saved searches to discover newly listed ads.
- Account operations (requires a local server and login): Read and send on-site messages, place bids, and manage favorites and the user's own ads.
- Structured output: Each tool returns structured output with a real schema. Two prompt templates are provided: bargain_hunt and vet_listing, encapsulating common workflows.
How to use
No installation (read-only): Add the hosted address https://marktplaats-mcp.jaspnerd.dev/mcp as a custom connector to claude.ai (Settings → Connectors, available on both the free plan and mobile), ChatGPT, Mistral Le Chat, Perplexity, or the Gemini app.
Claude Code: One command is enough.
Other clients: First install uv (on macOS use brew install uv, on Windows use winget install --id=astral-sh.uv -e), then add the standard MCP configuration and run uvx marktplaats-mcp. The project documentation provides step-by-step instructions for 40 clients (Cursor, VS Code, Codex, Gemini CLI, Cline, Windsurf, JetBrains, Zed, opencode, Goose, etc.) and configuration paths for each operating system.
Using your own account: Marktplaats has no public API, and login uses SMS two-factor authentication, so the server does not ask for a password; instead, it copies the session from a logged-in browser. The session is stored in ~/.config/marktplaats-mcp/session.json and is readable only by the user. After logging in, restart the MCP client and the account tools appear.
Notes for each platform: macOS: The system blocks command-line tools from reading browser data by default, so you need to add permission for the terminal app you use (Terminal, iTerm, Warp, or VS Code) in "System Settings → Privacy & Security → Full Disk Access," then quit and reopen it and run the login command again. Windows: Chrome and Edge lock the cookie file while running; the tool copies it first, so it usually works directly. If it fails, close the browser and try again, or use --paste. Linux: Chromium-based browsers store the cookie key in a keyring (GNOME Keyring or KWallet), which must be unlocked; Firefox requires no additional setup. Snap or Flatpak browser profiles are in different locations, so --paste is required. General alternative: marktplaats-mcp login --paste requires no permissions; open marktplaats.nl in the browser and press F12 → Network, click any request, copy the Cookie request header and paste it. You can also set MARKTPLAATS_COOKIE / TWEEDEHANDS_COOKIE in the client configuration. Sessions can last for weeks; once expired, the tool will prompt you to log in again.
Security and Limitations
- Sending, contacting sellers, and bidding will first return a preview, and will only be executed when called again with confirm=true. Bids are binding on Marktplaats, and the tool refuses bids below the minimum price. Automated ad posting is prohibited by Marktplaats terms, so it is intentionally not implemented.
- Read-only tools carry matching MCP annotations, and clients will skip confirmation prompts; write tools will require confirmation.
- No credentials are required by default; search, details, seller checks, filtering, price statistics, and monitoring all do not require an account.
- The local server only reads cookies from the browser or from files readable only by yourself, and only sends them to marktplaats.nl / 2dehands.be, and never logs them. The hosted endpoint will refuse to start if account credentials are configured.
- Logging in with --read-only or setting MARKTPLAATS_READ_ONLY=1 can completely disable writes; every confirmed write is logged locally.
- Ad text and messages are written by other users, and the server prompts the model to treat them as data, never as instructions.
- The request interval is controlled by MARKTPLAATS_MIN_INTERVAL_MS (default 200), retries with backoff and Retry-After on failure, and search pages are cached for one minute. The hosted endpoint rate-limits each client and globally.
- No affiliate links, no tracking, and ad URLs are returned as published by the platform.
- Because the platform API is not public and may change, the project runs a live canary check once a day.
- Paid promotions (DAGTOPPER, TOPADVERTENTIE) are filtered out by default; pass include_sponsored=true to display them. total_count is the raw count before platform filtering, so sometimes the number of results is less than the limit while total_count is higher.
- Supports Python 3.10 and above; CI tests 3.11 to 3.13 on Linux, macOS, and Windows.
Use Cases
Suitable for users who need to search across the Dutch and Belgian second-hand markets,compare prices, monitor specific items, or review seller trustworthiness, as well as developers who want to automate these processes through AI agents. After using your own login, you can also manage on-site messages, bids, and favorites in AI conversations.
Other Information
The project uses the MIT license, is open source and free, and requires no API key. It provides a Claude Desktop extension package (MCPB), saved search creation, cross-site search (one call covering the Netherlands and Belgium), and other features. It supports development testing via uv sync --all-groups and uv run pytest, and uv run python scripts/e2e_smoke.py runs the live canary. PRs are welcome; see CONTRIBUTING.md. The project reuses proven ideas from marktplaats-py, marktplaats-monitor, marktplaats-2dehands-mcp, and PonClick/marktplaats-mcp; see THIRD_PARTY_NOTICES.md for details.