Search Swiss classifieds on Joomil.ch — top marketplace in French-speaking Switzerland since 2007.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
MCP server for Joomil.ch — Switzerland's leading French-speaking classifieds marketplace, active since 2007.
Browse and search 45,000+ active listings across 34 categories: real estate, vehicles, jobs, animals, electronics, fashion and more — all from Switzerland's French-speaking regions (Romandie).
| Tool | Description |
|---|---|
suggest_filters | Infer search_classifieds filters from a natural-language query |
search_classifieds | Search listings with filters: keyword, category, canton (strict enum), location, price range, sort, pagination |
get_classified | Get full details of a listing by ID: description, images, vendor, expiry date |
get_categories | List active categories with hierarchy via parent_id |
get_cantons | List the canton values supported by the canton filter (API-specific spellings) |
This is a remote MCP server — no local installation required.
Endpoint: https://joomil-mcp.snowy-surf-deec.workers.dev/mcp
Add to ~/.claude/claude_desktop_config.json:
Add to your MCP settings:
Tip for agents: call
get_cantonsbefore filtering by canton — the API uses non-obvious spellings (e.g.BernnotBerne,GenevenotGenève/Geneva). For free-text user requests, callsuggest_filtersfirst, then pass the returnedfiltersobject tosearch_classifieds.
suggest_filters| Parameter | Type | Description |
|---|---|---|
query | string | Natural-language search request, e.g. appartement 3 pièces à Sion |
Returns a ready-to-use filters object for search_classifieds, plus a category confidence score and warnings when matching is uncertain. Category metadata is cached briefly by the MCP layer to avoid refetching the category tree for every suggestion.
Useful examples:
| User request | Typical suggested filters |
|---|---|
Tesla Model 3 moins de 25'000 CHF | q: "Tesla Model 3", cat_id: 101, price_max: 25000, sort: "price_asc" |
vélo budget 1.5k CHF | q: null, category in sport/leisure, price_max: 1500, sort: "price_asc" |
appartement 3 pièces à Sion | q: "3 pièces", cat_id: 10255, location: "Sion" |
voiture entre 10'000 et 20'000 CHF | cat_id: 101, price_min: 10000, price_max: 20000 |
Golf GTI dans le canton de Vaud | q: "Golf GTI", cat_id: 101, canton: "Vaud" |
canapé vintage à Lausanne | q: "vintage", cat_id: 10022, location: "Lausanne" |
iPhone 14 à Genève | q: "iPhone 14", cat_id: 10127, location: "Genève" |
search_classifieds| Parameter | Type | Description |
|---|---|---|
q | string | Full-text search (title + description) |
cat_id | number | Category ID — includes subcategories |
canton | enum | Strict enum — see get_cantons. Geneve, Vaud, Valais, Fribourg, Neuchatel, Jura, Bern, Argovie, Zurich, Lucerne, Bale-Ville, Etranger |
location | string | City name or postal code (partial match) |
price_min | number | Minimum price in CHF |
price_max | number | Maximum price in CHF |
sort | enum | recent (default, newest first), price_asc, price_desc, views (most viewed) |
limit | number | Results per page (1–50, default 20) |
offset | number | Pagination offset — use next_offset from previous response |
Tool responses include a short human-readable summary followed by compact serialized JSON in content for MCP backward compatibility. Full data is also returned in structuredContent with results, total, limit, offset, has_more, next_offset, and filtered_out (items removed from the current page by MCP-side category restrictions).
Result shape (each item):
get_classified| Parameter | Type | Description |
|---|---|---|
id | number | Listing ID (from search results or listing URL) |
Returns full listing details, including complete description, images, category path, expiry date, boost level, and seller details.
get_categories| Parameter | Type | Description |
|---|---|---|
parent_id | number | Optional — omit for all, 0 for root categories, or any category ID for its children |
get_cantonsNo parameters. Returns the canton values accepted by search_classifieds' canton filter, with their French labels:
Always pass the name field (not label_fr nor code) to the canton filter.
This MCP server is read-only and uses public data only.
url to open Joomil.ch directly.get_cantons are accepted. Other spellings (Berne, Genève, Geneva, GE, VD...) are silently ignored by the upstream API and would return all listings instead of a filtered set — the strict enum here prevents that.price.amount: null (price on request) or 0 (free).isError: true.MIT
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/joomil-swiss-classifieds-mcp)<a href="https://allmcps.com/mcp/joomil-swiss-classifieds-mcp"><img src="https://allmcps.com/api/badge/joomil-swiss-classifieds-mcp?style=directory" alt="Joomil — Swiss Classifieds MCP on AllMCPs" /></a>