joomil-mcp
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).
Tools
Quick Start
This is a remote MCP server — no local installation required.
Endpoint: https://joomil-mcp.snowy-surf-deec.workers.dev/mcp
Claude Desktop
Add to ~/.claude/claude_desktop_config.json:
Cursor
Add to your MCP settings:
Example Prompts
- "Trouve-moi une voiture automatique à moins de 10'000 CHF dans le canton de Vaud."
- "Cherche un appartement 3 pièces à Sion."
- "Quelles catégories d'électronique propose Joomil ?"
- "Montre-moi les annonces de canapés vintage en Valais."
- "Cherche des offres d'emploi dans l'hôtellerie à Neuchâtel."
Tip for agents: call get_cantons before filtering by canton — the API uses
non-obvious spellings (e.g. Bern not Berne, Geneve not Genève/Geneva).
For free-text user requests, call suggest_filters first, then pass the returned
filters object to search_classifieds.
API Reference
suggest_filters
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:
search_classifieds
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
Returns full listing details, including complete description, images, category path, expiry date, boost level, and seller details.
get_categories
get_cantons
No 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.
Data
- Source: Joomil.ch public REST API
- Coverage: 45,000+ active listings, 34 top-level categories, 190,000+ registered users
- Location: Switzerland (French-speaking regions — Romandie)
- Language: French
- Update frequency: Real-time
- Authentication: None required
Limitations
This MCP server is read-only and uses public data only.
- No write operations: cannot create, edit, or delete listings; cannot contact sellers.
- No authentication: no user accounts, no messages, no favorites, no saved searches.
- No seller contact: phone numbers and email addresses are not exposed — use the listing
url to open Joomil.ch directly.
- No posting: publishing an ad must be done on joomil.ch.
- Restricted categories: Erotique (28), Rencontres & Amitié (14000), Voyance & Astrologie (651), and their descendants are filtered out by the MCP layer per content policy. The underlying PHP API remains available for direct use.
- Canton filter is strict: only the values returned by
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.
- Currency: all prices are in CHF. Listings may have
price.amount: null (price on request) or 0 (free).
- Upstream errors: Joomil API failures are returned as MCP tool errors with
isError: true.
Deploy Your Own
License
MIT