Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Search Marktplaats & 2dehands (NL/BE classifieds), vet sellers, compare prices, use your account.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
MARKTPLAATS_COOKIE, TWEEDEHANDS_COOKIE, MARKTPLAATS_READ_ONLYValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://marktplaats-mcp.jaspnerd.dev/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"marktplaats": {
"command": "uvx",
"args": [
"marktplaats-mcp"
],
"env": {
"MARKTPLAATS_COOKIE": "your-value",
"TWEEDEHANDS_COOKIE": "your-value",
"MARKTPLAATS_READ_ONLY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http marktplaats https://marktplaats-mcp.jaspnerd.dev/mcpclaude mcp add marktplaats --env MARKTPLAATS_COOKIE=your-value --env TWEEDEHANDS_COOKIE=your-value --env MARKTPLAATS_READ_ONLY=your-value -- uvx marktplaats-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"marktplaats": {
"url": "https://marktplaats-mcp.jaspnerd.dev/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"marktplaats": {
"command": "uvx",
"args": [
"marktplaats-mcp"
],
"env": {
"MARKTPLAATS_COOKIE": "your-value",
"TWEEDEHANDS_COOKIE": "your-value",
"MARKTPLAATS_READ_ONLY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"marktplaats": {
"type": "http",
"url": "https://marktplaats-mcp.jaspnerd.dev/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"marktplaats": {
"type": "stdio",
"command": "uvx",
"args": [
"marktplaats-mcp"
],
"env": {
"MARKTPLAATS_COOKIE": "your-value",
"TWEEDEHANDS_COOKIE": "your-value",
"MARKTPLAATS_READ_ONLY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://marktplaats-mcp.jaspnerd.dev/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
MARKTPLAATS_READ_ONLY envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account jasp-nerd, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: MARKTPLAATS_COOKIE, TWEEDEHANDS_COOKIE
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.2.0) reached the registry 2 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
English | Nederlands | Français
marktplaats-mcp is an MCP server for Marktplaats.nl (Netherlands) and 2dehands.be (Belgium), the Dutch and Belgian second-hand classifieds (*tweedehands*, *petites annonces d'occasion*). Search listings, filter on category attributes, vet sellers, compare prices and watch for new ads from Claude, ChatGPT, Cursor, Codex, Gemini or any other MCP client. With your own login it also reads and sends messages, places bids and manages your favorites and ads. No API key.
No install: paste a URL. The hosted, read-only server runs at https://marktplaats-mcp.jaspnerd.dev/mcp. Add it as a custom connector in claude.ai (Settings → Connectors, works on the Free plan and mobile), ChatGPT, Mistral Le Chat, Perplexity or the Gemini app.
Claude Code: one command.
claude mcp add --scope user marktplaats -- uvx marktplaats-mcp
Any other client. Install uv (brew install uv, or winget install --id=astral-sh.uv -e on Windows), then add the standard MCP config:
{ "mcpServers": { "marktplaats": { "command": "uvx", "args": ["marktplaats-mcp"] } } }
One click:
Step-by-step instructions for 40 clients (Cursor, VS Code, Codex, Gemini CLI, Cline, Windsurf, JetBrains, Zed, opencode, Goose, ...), with the config path per OS and a link to each client's official guide: [docs/clients.md](https://github.com/jasp-nerd/marktplaats-mcp/blob/main/docs/clients.md).
Then ask: *"Find a racefiets under €500 within 25 km of 1011 AB, frame 57-61 cm, and tell me if the sellers look legit."*
Marktplaats has no public API and its login uses SMS two-factor authentication, so this server never asks for your password. It copies the session from a browser you are already logged into:
uvx --from 'marktplaats-mcp[login]' marktplaats-mcp login
The session is stored in ~/.config/marktplaats-mcp/session.json, readable by your user only. Restart your MCP client and the account tools appear.
marktplaats-mcp login --site 2dehands # also import your 2dehands.be session
marktplaats-mcp login --read-only # never send, bid or change favorites marktplaats-mcp login --window # open a browser window and log in there instead marktplaats-mcp login --paste # paste a Cookie header from DevTools instead marktplaats-mcp status # is the stored session still valid? marktplaats-mcp logout # delete it
If login says it could not read your browser's cookies
--paste.--paste there.marktplaats-mcp login --paste never needs permissions. In your browser on marktplaats.nl press F12 → Network, click any request, copy the Cookie request header and paste it.Or set MARKTPLAATS_COOKIE / TWEEDEHANDS_COOKIE (the request Cookie header) in your client's config. Sessions last weeks; when one expires the tools tell you to log in again.
Sending, contacting a seller and bidding return a preview first and only act when called again with confirm=true. Bids are binding on Marktplaats; the tool refuses bids below the minimum. Automated ad placement is forbidden by Marktplaats' terms and deliberately not implemented. See Safety model.
| Tool | What it does | Account | Writes |
|---|---|---|---|
search_listings | Search with query, category, subcategory, category-specific attributes, price range, condition, delivery (pickup/shipping), distance from a postcode, recency, negative keywords, sorting and pagination | ||
get_listing_details | Full ad: description, attributes, status (active/closed), exact listing time, view and favorite counts, bidding state and minimum bid, shipping, images, seller response rate and account age. Accepts pasted URLs | ||
get_seller_profile | Trust signals: verified bank account, identity, phone, business verification, payment method, review score and count, lowest bid the seller accepts | ||
list_seller_listings | Everything one seller has on offer: spot dealers posing as private sellers and duplicate ads | ||
list_categories | The category tree (names and ids) used for filtering, also available as an MCP resource | ||
list_category_filters | Discover the filters for a category (brand, frame height, mileage, fuel, RAM, ...) with their valid values and counts | ||
check_new_listings | Newest-first monitoring with a stateless cursor: returns only ads placed after since, never skips one | ||
analyze_prices | Median, quartiles, min, max and mean asking prices for a search, plus the cheapest matches | ||
get_my_account | Session check, unread messages and notifications | ✅ | |
list_conversations, get_conversation | Your inbox and full message threads | ✅ | |
list_my_listings, list_favorites, list_my_bids, list_saved_searches | Your ads (views, favorites, highest bid, expiry), favorites, bids and saved searches | ✅ | |
send_message, contact_seller | Reply in a thread, or ask a seller a question or make a non-binding offer. Preview first, confirm=true to send | ✅ | ✅ |
place_bid | Bid on a listing. Preview first, refuses bids below the minimum, marked destructive | ✅ | ✅ |
set_favorite, extend_my_listing | Save/unsave a listing; renew one of your expiring ads | ✅ | ✅ |
Read-only tools carry the matching MCP annotations, so clients skip confirmation prompts for them and ask for the write tools. Every tool returns structured output with a real schema. Two prompts, bargain_hunt and vet_listing, encode the common workflows.
| You say | The agent calls |
|---|---|
| *"Is €450 a fair price for an iPhone 15 128 GB in good condition?"* | analyze_prices → median, quartiles and the three cheapest ads |
| *"Find a used Golf, 2018-2022, under 100,000 km, petrol, from a private seller"* | list_category_filters("Auto's") → search_listings(attributes={"Bouwjaar": "2018-2022", "Kilometerstand": "-100000", "Brandstof": "Benzine", "Adverteerder": "Particulier"}) |
| *"Is this seller trustworthy? What else are they selling?"* | get_listing_details → get_seller_profile → list_seller_listings |
| *"Tell me when new bakfiets ads appear near Antwerp"* | check_new_listings(site="2dehands", postcode="2000", distance_km=25) with the returned cursor on every poll |
| *"Ask the seller whether it's still available and offer €120"* | contact_seller(..., offer_euros=120) preview → you confirm → sent |
| *"Reply to Piet that I can pick it up Saturday"* | list_conversations → send_message preview → you confirm → sent |
confirm=true; bids below the minimum are refused; login --read-only or MARKTPLAATS_READ_ONLY=1 disables writes entirely; every confirmed write is logged locally.MARKTPLAATS_MIN_INTERVAL_MS, default 200), retried with backoff and Retry-After, and search pages are cached for a minute. The hosted endpoint is rate-limited per client and globally.Yes, this one. Free, open source (MIT), no API key. Paste the host
Only the beginning is shown; read the rest in the repo