marktplaats-mcp
Enables AI agents to search and monitor Dutch and Belgian classifieds (Marktplaats and 2dehands) for listings, seller profiles, and categories.
README
<p align="center"> <img src="https://raw.githubusercontent.com/jasp-nerd/marktplaats-mcp/main/assets/banner.svg" alt="marktplaats-mcp: search Marktplaats and 2dehands from any AI agent" width="760"> </p>
<p align="center"> <b>English</b> | <a href="https://github.com/jasp-nerd/marktplaats-mcp/blob/main/README.nl.md">Nederlands</a> | <a href="https://github.com/jasp-nerd/marktplaats-mcp/blob/main/README.fr.md">Français</a> </p>
marktplaats-mcp
marktplaats-mcp is an MCP server that lets Claude, Cursor, Codex, opencode and every other MCP client search Marktplaats and 2dehands, the Dutch and Belgian second-hand classifieds. Find bargains, vet sellers, browse categories and monitor new listings in plain language.
✨ Features
- 🔍 Powerful search: free text, categories, price range, condition, distance from a postal code, recency, sorting
- 🇳🇱🇧🇪 Two marketplaces, one server: marktplaats.nl (Netherlands) and 2dehands.be (Belgium) via a
siteparameter - 📄 Full listing details: complete description, all photos, view and favorite counts, listing age
- 🛡️ Seller vetting: verified bank account, identity and phone, review score
- 🔔 New-listing monitoring: poll for ads placed after a timestamp with a stateless cursor
- 🧠 Built for LLMs: compact token-efficient output, paid promotions filtered out, structured results, pagination hints
- 🔁 Resilient: retries with exponential backoff, jitter and
Retry-Afterhandling - 🔓 No account, no API key
🚀 Quickstart
The only prerequisite is uv (brew install uv or curl -LsSf https://astral.sh/uv/install.sh | sh).
Claude Code, one command:
claude mcp add marktplaats -- uvx marktplaats-mcp
Then ask: "Search Marktplaats for an OLED TV under €400 near 3011 AB."
<p align="center"> <img src="https://raw.githubusercontent.com/jasp-nerd/marktplaats-mcp/main/assets/demo.gif" alt="Claude Code searching Marktplaats for a used racefiets via marktplaats-mcp" width="860"> </p>
📦 Install in your favorite client
Every config runs the same stdio server via uvx marktplaats-mcp.
<details> <summary><b>Claude Desktop</b></summary>
Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then fully restart Claude Desktop:
{
"mcpServers": {
"marktplaats": {
"command": "uvx",
"args": ["marktplaats-mcp"]
}
}
}
If Claude Desktop can't find uvx, use the absolute path (which uvx, e.g. /Users/you/.local/bin/uvx).
</details>
<details> <summary><b>OpenAI Codex CLI</b></summary>
Add to ~/.codex/config.toml:
[mcp_servers.marktplaats]
command = "uvx"
args = ["marktplaats-mcp"]
Or: codex mcp add marktplaats -- uvx marktplaats-mcp
</details>
<details> <summary><b>opencode</b></summary>
Add to opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"marktplaats": {
"type": "local",
"command": ["uvx", "marktplaats-mcp"],
"enabled": true
}
}
}
</details>
<details> <summary><b>Cursor</b></summary>
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"marktplaats": {
"command": "uvx",
"args": ["marktplaats-mcp"]
}
}
}
</details>
<details> <summary><b>VS Code / GitHub Copilot</b></summary>
Add to .vscode/mcp.json (note the servers key and explicit type):
{
"servers": {
"marktplaats": {
"type": "stdio",
"command": "uvx",
"args": ["marktplaats-mcp"]
}
}
}
</details>
<details> <summary><b>Windsurf</b></summary>
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"marktplaats": {
"command": "uvx",
"args": ["marktplaats-mcp"]
}
}
}
</details>
<details> <summary><b>Gemini CLI</b></summary>
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"marktplaats": {
"command": "uvx",
"args": ["marktplaats-mcp"]
}
}
}
</details>
<details> <summary><b>JetBrains IDEs (AI Assistant / Junie)</b></summary>
Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add:
{
"mcpServers": {
"marktplaats": {
"command": "uvx",
"args": ["marktplaats-mcp"]
}
}
}
</details>
🧰 Tools
| Tool | What it does |
|---|---|
search_listings |
Search with query, category, price range, condition, distance, recency, sorting and pagination |
get_listing_details |
Full ad: complete description, all images, view and favorite counts, listing age |
get_seller_profile |
Trust signals: verified bank, identity and phone, review score and count |
list_categories |
Browse the category tree (names + ids) used for filtering |
check_new_listings |
Newest-first monitoring with a stateless cursor: returns only ads placed after since |
All five tools are read-only and carry the matching MCP annotations, so clients skip the confirmation prompts.
Example prompts
- "Find a second-hand iPhone 15 under €600 in as-good-as-new condition, sorted by price."
- "Search 2dehands for a bakfiets within 20 km of postcode 2000 Antwerpen."
- "Is seller 12345 trustworthy? Check their profile."
- "Check for new 'vintage lamp' listings since my last check and summarize the interesting ones."
❓ FAQ
Does this need a Marktplaats account or API key? No. It uses the same public JSON endpoints the website itself uses.
Is this an official Marktplaats product? No. This is an independent open source project with no ties to Marktplaats or Adevinta. The underlying API is undocumented and may change. The server backs off politely on rate limits; keep your own usage reasonable.
Why do I sometimes see fewer results than the limit?
Paid promotions (DAGTOPPER/TOPADVERTENTIE) are filtered out by default. Pass include_sponsored=true if you want them.
Which Python versions are supported? 3.10 and up. CI tests 3.11 through 3.13 on Linux, macOS and Windows.
🗺️ Roadmap
- Persistent saved searches with price-drop detection
- Notifications (Discord/Telegram/ntfy via Apprise)
- Authenticated tools (your messages, favorites and bids)
- Docker image + Docker MCP Catalog
🤝 Contributing
PRs welcome. See CONTRIBUTING.md for the dev setup: uv sync --all-groups, then uv run pytest.
This project reuses proven ideas from marktplaats-py, marktplaats-monitor, marktplaats-2dehands-mcp and PonClick/marktplaats-mcp. Details in THIRD_PARTY_NOTICES.md.
📄 License
MIT © 2026 jasp-nerd
<sub>mcp-name: io.github.jasp-nerd/marktplaats-mcp</sub>
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。