Skip to main content
Glama
RT-codes

marktplaats-2dehands-mcp

by RT-codes

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MARKTPLAATS_2DEHANDS_CACHE_DIRNoOverride cache directory for category data fetched from the live API. Defaults to ~/.cache/marktplaats-2dehands-mcp/categories-{site}.json.
MARKTPLAATS_2DEHANDS_STATE_DIRNoOverride directory for saved-search state. Defaults to ~/.local/share/marktplaats-2dehands-mcp/saved_searches.json.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_listingsA

Search for listings on marktplaats.nl or 2dehands.be.

Args: site: "marktplaats" (NL, default) or "2dehands" (BE). query: Search query text (required if no category specified). category: Main category name (e.g., "computers en software"). subcategory: Subcategory name (e.g., "laptops", "elektrische fietsen"). zip_code: Postal code for distance filtering. NL: "1016LV". BE: "2000". distance_km: Maximum distance in km (default 1000). Requires zip_code. price_from / price_to: Price range in euros. condition: "new", "as_good_as_new", "used", "refurbished", "not_working". seller_type: "business" / "zakelijk" or "private" / "particulier". sort_by: "date", "price", "optimized", "location". sort_order: "asc" or "desc". limit: 1-100 (default 10). offset: Pagination offset. offered_since_days: Only show items posted within the last N days. attribute_ids: Category-specific filter IDs (use get_category_filters).

Returns: Dict with total_count, returned_count, listings, optional next_offset.

huntA

Run several complementary Marktplaats searches as one bounded hunt.

Each search is a dict containing normal search_listings arguments plus an optional human-readable label used for provenance.

Example: [ {"label": "p100 nearby", "query": "Tesla P100", "price_to": 150}, {"label": "cheap workstation", "query": "Dell Precision", "price_to": 120}, ]

Results are deduplicated by Marktplaats listing ID. Every candidate keeps a found_by list showing which searches independently discovered it.

Hard limits: - maximum 20 searches per hunt - maximum 25 returned listings per individual search

get_listing_detailsB

Fetch a listing page and return title, price, description, images, stats.

Args: listing_id: e.g. "m2340580395" (the 'm' prefix is added if missing). site: "marktplaats" or "2dehands".

get_seller_infoB

Fetch a seller profile (verification status, payment method, reviews).

Note: the endpoint does not return seller name/id — those are available from the listing response. It only exposes verification flags, the accepted payment method, and aggregated review stats.

list_categoriesB

List the supported main categories and common subcategories.

Same IDs work on both marktplaats.nl and 2dehands.be.

get_category_filtersC

Discover the attribute filters available within a category.

save_huntA

Save a reusable named hunt locally.

list_huntsB

List locally saved hunts.

run_huntC

Run a previously saved hunt.

check_new_matchesB

Run a saved hunt and return only listings not seen before.

save_searchA

Persist a search so it can be re-run via check_saved_search.

Args: name: Identifier for the saved search (e.g. "trek-bike-antwerp"). params: Same kwargs as search_listings (must include 'site').

On creation, seen_ids is empty — the first check_saved_search call will return all current matches. To suppress that backfill, call check immediately after saving.

list_saved_searchesC

List all persisted searches.

delete_saved_searchC

Remove a persisted search.

check_saved_searchA

Re-run a saved search and return only listings not seen before.

Args: name: The saved search name. mark_seen: If True (default), record the returned IDs as seen so the next call returns only newer ones. Set False for a dry-run.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 14 tools

Disambiguation3/5

There is significant overlap between hunt, run_hunt, check_new_matches, and check_saved_search — all run searches and return listings, with only subtle differences in saved state. The persistent search tools (save_search, list_saved_searches, delete_saved_search, check_saved_search) are fairly distinct, but the hunt variants blur together.

Naming Consistency3/5

The tool set mixes several conventions: verb_noun (get_listing_details, list_categories), noun-only (hunt), and noun_verb (check_new_matches, check_saved_search). While each name is readable, there is no single predictable pattern.

Tool Count5/5

14 tools is a well-scoped count for a marketplace search and monitoring server. Each tool covers a distinct search or persistence operation, with no obvious bloat.

Completeness5/5

The surface covers search, detail retrieval, seller info, category discovery, filter discovery, and persistent saved searches with new-match tracking. Core read and monitoring workflows are complete, and no critical CRUD operation is missing.

Maintenance

ActivityMaintained
ResponsivenessNo issues