{"name":"io.github.jasp-nerd/marktplaats-mcp","slug":"jasp-nerd-marktplaats-mcp","title":"Marktplaats & 2dehands","description":"Search Marktplaats & 2dehands (NL/BE classifieds), vet sellers, compare prices, use your account.","url":"https://mcp.market/server/jasp-nerd-marktplaats-mcp","rating":null,"grade":"A","score":93,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":28,"stars":2,"forks":0,"downloads_week":null,"last_push_at":"2026-09-19T20:26:31.000Z","license":"MIT"},"uptime":{"percent":100,"checks":1,"ok":1,"last_checked_at":"2026-09-19T20:25:21.085Z","last_ok_at":"2026-09-19T20:25:21.085Z","latency_ms":1117},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/jasp-nerd/marktplaats-mcp","website":"https://marktplaats-mcp.jaspnerd.dev","version":"0.2.0","remotes":[{"type":"streamable-http","url":"https://marktplaats-mcp.jaspnerd.dev/mcp"}],"packages":[{"registryType":"pypi","identifier":"marktplaats-mcp","version":"0.2.0","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Optional. Your marktplaats.nl session Cookie header for the account tools; prefer running 'marktplaats-mcp login' instead.","isSecret":true,"name":"MARKTPLAATS_COOKIE"},{"description":"Optional. Your 2dehands.be session Cookie header for the account tools.","isSecret":true,"name":"TWEEDEHANDS_COOKIE"},{"description":"Set to 1 to disable sending messages, bidding and changing favorites.","default":"0","name":"MARKTPLAATS_READ_ONLY"}]}],"tools":[{"name":"analyze_prices","description":"Price statistics (min, quartiles, median, max, mean) over the most relevant\nasking prices for a search, plus the cheapest matches. Free, bidding-only and\nreserved ads are excluded and outliers beyond 1.5x the interquartile range are\ntrimmed. Most reliable with a subcategory plus attributes (e.g. subcategory\n'Mobiele telefoons | Apple iPhone', attributes {'Model': 'iPhone 15',\n'Opslagcapaciteit': '128 GB'}) instead of free text, which drags in accessories.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Free-text search, e.g. 'racefiets' or 'iphone 15'. May be empty if a category is given.","type":"string"},"site":{"default":"marktplaats","description":"Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).","enum":["marktplaats","2dehands"],"type":"string"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Top-level category name (Dutch, e.g. 'Fietsen en Brommers') or numeric id. See list_categories."},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Subcategory name (e.g. 'Fietsen | Racefietsen' or 'Fietsen | Heren | Herenfietsen') or numeric id. See list_categories with a parent."},"attributes":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"type":"object"},{"type":"null"}],"default":null,"description":"Category-specific filters as {filter: value}, using the labels from list_category_filters, e.g. {'Merk': 'Gazelle', 'Framehoogte': '57 tot 61 cm'} or {'Bouwjaar': '2018-2022', 'Kilometerstand': '-100000', 'Brandstof': 'Benzine'}. A list means any of those values. Ranges are 'min-max', 'min-' or '-max'."},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Dutch/Belgian postal code to search around, e.g. '1011 AB' or '2000'. Required for distance filtering and for distance_km in results."},"distance_km":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Max distance from postcode in kilometers (needs postcode)."},"price_from":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Minimum price in euros."},"price_to":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Maximum price in euros."},"condition":{"anyOf":[{"enum":["new","as_good_as_new","used","refurbished","not_working"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by item condition."},"delivery":{"anyOf":[{"enum":["pickup","shipping"],"type":"string"},{"type":"null"}],"default":null,"description":"'shipping' for ads that can be shipped, 'pickup' for collection."},"language":{"anyOf":[{"enum":["nl","fr","all"],"type":"string"},{"type":"null"}],"default":null,"description":"2dehands only: 'nl' for Dutch-language ads, 'fr' for French, 'all' (default)."},"exclude":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Drop listings whose title or description contains any of these words, e.g. ['hoesje', 'defect', 'gezocht']."},"sample_size":{"default":60,"description":"Listings to sample, most relevant first (10-100).","maximum":100,"minimum":10,"type":"integer"}},"required":["query"],"additionalProperties":false}},{"name":"check_new_listings","description":"Poll for listings placed after a given moment (newest first, paid promotions\nfiltered out). Stateless: store the returned 'cursor' and pass it as 'since'\non the next call. When the result is truncated the cursor only advances to\nthe oldest ad returned, so nothing is ever skipped.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"default":"","description":"Free-text search, e.g. 'racefiets' or 'iphone 15'. May be empty if a category is given.","type":"string"},"site":{"default":"marktplaats","description":"Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).","enum":["marktplaats","2dehands"],"type":"string"},"since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 8601 timestamp (e.g. '2026-07-15T09:00:00Z'); only listings placed after this moment are returned. Defaults to 24 hours ago. Pass the 'cursor' from the previous call to poll incrementally."},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Top-level category name (Dutch, e.g. 'Fietsen en Brommers') or numeric id. See list_categories."},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Subcategory name (e.g. 'Fietsen | Racefietsen' or 'Fietsen | Heren | Herenfietsen') or numeric id. See list_categories with a parent."},"attributes":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"type":"object"},{"type":"null"}],"default":null,"description":"Category-specific filters as {filter: value}, using the labels from list_category_filters, e.g. {'Merk': 'Gazelle', 'Framehoogte': '57 tot 61 cm'} or {'Bouwjaar': '2018-2022', 'Kilometerstand': '-100000', 'Brandstof': 'Benzine'}. A list means any of those values. Ranges are 'min-max', 'min-' or '-max'."},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Dutch/Belgian postal code to search around, e.g. '1011 AB' or '2000'. Required for distance filtering and for distance_km in results."},"distance_km":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Max distance from postcode in kilometers (needs postcode)."},"price_from":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Minimum price in euros."},"price_to":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Maximum price in euros."},"condition":{"anyOf":[{"enum":["new","as_good_as_new","used","refurbished","not_working"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by item condition."},"delivery":{"anyOf":[{"enum":["pickup","shipping"],"type":"string"},{"type":"null"}],"default":null,"description":"'shipping' for ads that can be shipped, 'pickup' for collection."},"language":{"anyOf":[{"enum":["nl","fr","all"],"type":"string"},{"type":"null"}],"default":null,"description":"2dehands only: 'nl' for Dutch-language ads, 'fr' for French, 'all' (default)."},"exclude":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Drop listings whose title or description contains any of these words, e.g. ['hoesje', 'defect', 'gezocht']."},"limit":{"default":30,"description":"Max new listings to return (1-100).","maximum":100,"minimum":1,"type":"integer"}},"additionalProperties":false}},{"name":"get_listing_details","description":"Fetch the full advertisement: complete description, attributes, status\n(active/closed), exact listing time, view and favorite counts, bidding state,\nshipping, images, and seller signals such as response rate and account age.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"listing_id":{"description":"Listing id from search results (e.g. 'm2400641485') or a pasted marktplaats.nl / 2dehands.be listing URL.","type":"string"},"site":{"default":"marktplaats","description":"Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).","enum":["marktplaats","2dehands"],"type":"string"},"max_images":{"default":5,"description":"Max image URLs to return (0-20).","maximum":20,"minimum":0,"type":"integer"}},"required":["listing_id"],"additionalProperties":false}},{"name":"get_seller_profile","description":"Look up a seller's trust signals: verified bank account / identity /\nphone number, business verification, payment method, review score and count.\nNull means the marketplace does not report that signal. Use\nlist_seller_listings to see everything the seller currently offers.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"seller_id":{"description":"Numeric seller id from a listing's seller field.","type":"integer"},"site":{"default":"marktplaats","description":"Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).","enum":["marktplaats","2dehands"],"type":"string"}},"required":["seller_id"],"additionalProperties":false}},{"name":"list_categories","description":"Browse the category tree (shared by marktplaats.nl and 2dehands.be) to find\nnames/ids for search_listings' category and subcategory filters.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"parent":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Omit for all top-level categories; pass a top-level category name or id for its subcategories."}},"additionalProperties":false}},{"name":"list_category_filters","description":"Discover the filters available for a category or search (brand, frame\nheight, mileage, fuel, RAM, ...), with their valid values and how many ads\nmatch each. Pass the labels to search_listings' 'attributes' parameter.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Top-level category name (Dutch, e.g. 'Fietsen en Brommers') or numeric id. See list_categories."},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Subcategory name (e.g. 'Fietsen | Racefietsen' or 'Fietsen | Heren | Herenfietsen') or numeric id. See list_categories with a parent."},"site":{"default":"marktplaats","description":"Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).","enum":["marktplaats","2dehands"],"type":"string"},"query":{"default":"","description":"Optional search text; needed when no category is given.","type":"string"},"max_options":{"default":25,"description":"Max values per filter, most common first (1-200).","maximum":200,"minimum":1,"type":"integer"}},"additionalProperties":false}},{"name":"list_seller_listings","description":"Everything one seller currently has on offer. Useful to spot dealers\nposing as private sellers, duplicate or suspicious ads, and bundle deals.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"seller_id":{"description":"Numeric seller id.","type":"integer"},"site":{"default":"marktplaats","description":"Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).","enum":["marktplaats","2dehands"],"type":"string"},"query":{"default":"","description":"Optional text to filter the seller's ads.","type":"string"},"sort_by":{"default":"date","description":"'relevance' (default), 'date' (newest first with desc), 'price' or 'location'.","enum":["relevance","date","price","location"],"type":"string"},"sort_order":{"default":"desc","description":"'asc' or 'desc'.","enum":["asc","desc"],"type":"string"},"limit":{"default":20,"description":"Results per page (1-100).","maximum":100,"minimum":1,"type":"integer"},"offset":{"default":0,"description":"Pagination: pass 'next_offset' from the previous result.","minimum":0,"type":"integer"},"compact":{"default":true,"description":"True (default) returns a token-efficient shortlist; False adds description, seller, images and attributes per listing.","type":"boolean"}},"required":["seller_id"],"additionalProperties":false}},{"name":"search_listings","description":"Search second-hand listings on Marktplaats or 2dehands with filters for\ncategory, category-specific attributes, price range, condition, delivery,\nrecency and distance from a postal code. Paid promotions are filtered out\nunless include_sponsored is set.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"default":"","description":"Free-text search, e.g. 'racefiets' or 'iphone 15'. May be empty if a category is given.","type":"string"},"site":{"default":"marktplaats","description":"Which marketplace: marktplaats (Netherlands) or 2dehands (Belgium).","enum":["marktplaats","2dehands"],"type":"string"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Top-level category name (Dutch, e.g. 'Fietsen en Brommers') or numeric id. See list_categories."},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Subcategory name (e.g. 'Fietsen | Racefietsen' or 'Fietsen | Heren | Herenfietsen') or numeric id. See list_categories with a parent."},"attributes":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"type":"object"},{"type":"null"}],"default":null,"description":"Category-specific filters as {filter: value}, using the labels from list_category_filters, e.g. {'Merk': 'Gazelle', 'Framehoogte': '57 tot 61 cm'} or {'Bouwjaar': '2018-2022', 'Kilometerstand': '-100000', 'Brandstof': 'Benzine'}. A list means any of those values. Ranges are 'min-max', 'min-' or '-max'."},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Dutch/Belgian postal code to search around, e.g. '1011 AB' or '2000'. Required for distance filtering and for distance_km in results."},"distance_km":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Max distance from postcode in kilometers (needs postcode)."},"price_from":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Minimum price in euros."},"price_to":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Maximum price in euros."},"condition":{"anyOf":[{"enum":["new","as_good_as_new","used","refurbished","not_working"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by item condition."},"delivery":{"anyOf":[{"enum":["pickup","shipping"],"type":"string"},{"type":"null"}],"default":null,"description":"'shipping' for ads that can be shipped, 'pickup' for collection."},"language":{"anyOf":[{"enum":["nl","fr","all"],"type":"string"},{"type":"null"}],"default":null,"description":"2dehands only: 'nl' for Dutch-language ads, 'fr' for French, 'all' (default)."},"exclude":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Drop listings whose title or description contains any of these words, e.g. ['hoesje', 'defect', 'gezocht']."},"offered_since_days":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Only listings placed within the last N days."},"sort_by":{"default":"relevance","description":"'relevance' (default), 'date' (newest first with desc), 'price' or 'location'.","enum":["relevance","date","price","location"],"type":"string"},"sort_order":{"default":"desc","description":"'asc' or 'desc'.","enum":["asc","desc"],"type":"string"},"limit":{"default":10,"description":"Results per page (1-100).","maximum":100,"minimum":1,"type":"integer"},"offset":{"default":0,"description":"Pagination: pass 'next_offset' from the previous result.","minimum":0,"type":"integer"},"compact":{"default":true,"description":"True (default) returns a token-efficient shortlist; False adds description, seller, images and attributes per listing.","type":"boolean"},"include_unpriced":{"default":false,"description":"Keep ads without an asking price (free, 'Bieden' without amount) when sorting by price or filtering on price. Default False: those ads would otherwise sort as €0 and flood the cheapest pages.","type":"boolean"},"include_sponsored":{"default":false,"description":"Include paid promotions (DAGTOPPER/TOPADVERTENTIE) and the sponsored top block.","type":"boolean"}},"additionalProperties":false}}],"scan":{"score":93,"grade":"A","scanned_at":"2026-09-19T20:35:40.089Z","report":{"scannerVersion":"0.1.6","scannedAt":"2026-09-19T20:35:40.048Z","components":{"code":{"score":25,"max":25,"notes":["17 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1935ms"]},"poisoning":{"score":15,"max":15,"notes":["8 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://marktplaats-mcp.jaspnerd.dev/mcp","reachable":true,"authRequired":false,"latencyMs":1935,"serverInfo":{"name":"Marktplaats","version":"0.2.0"}}],"packages":[{"registryType":"pypi","identifier":"marktplaats-mcp","version":"0.2.0","found":true,"license":"MIT","dependencyCount":5,"publishedAt":"2026-09-19T20:20:34.637932Z","repositoryUrl":"https://github.com/jasp-nerd/marktplaats-mcp"}],"repo":{"found":true,"owner":"jasp-nerd","repo":"marktplaats-mcp","archived":false,"pushedAt":"2026-09-19T20:26:31Z","stars":2,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/194799840?v=4","ownerCreatedAt":"2025-01-13T13:22:20Z","license":"MIT"},"icon":{"url":"https://marktplaats-mcp.jaspnerd.dev/icon.png","source":"registry","width":512,"height":512},"presence":{"stars":2,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-19T20:26:31.000Z","score":28}}}},"grade_history":[],"reviews":[]}