joomil-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@joomil-mcpCherche un appartement 3 pièces à Sion"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Tool | Description |
| Infer |
| Search listings with filters: keyword, category, canton (strict enum), location, price range, sort, pagination |
| Get full details of a listing by ID: description, images, vendor, expiry date |
| List active categories with hierarchy via |
| List the canton values supported by the |
Related MCP server: willhaben-mcp
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:
{
"mcpServers": {
"joomil": {
"command": "npx",
"args": ["mcp-remote", "https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"]
}
}
}Cursor
Add to your MCP settings:
{
"joomil": {
"url": "https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"
}
}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_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.
API Reference
suggest_filters
Parameter | Type | Description |
| string | Natural-language search request, e.g. |
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
"query": "appartement 3 pièces à Sion",
"filters": {
"q": "3 pièces",
"cat_id": 10255,
"canton": null,
"location": "Sion",
"price_min": null,
"price_max": null,
"sort": "recent",
"limit": 20
},
"category": {
"id": 10255,
"name": "Appartements",
"url": "https://www.joomil.ch/annonces/immobilier/locations/appartements/10255",
"parent_id": 339,
"confidence": 0.82,
"reason": "requête immobilière appartement"
},
"confidence": 0.74,
"warnings": [],
"next_step": "Call search_classifieds with the filters object. Adjust q or cat_id if the result set is too broad."
}search_classifieds
Parameter | Type | Description |
| string | Full-text search (title + description) |
| number | Category ID — includes subcategories |
| enum | Strict enum — see |
| string | City name or postal code (partial match) |
| number | Minimum price in CHF |
| number | Maximum price in CHF |
| enum |
|
| number | Results per page (1–50, default 20) |
| number | Pagination offset — use |
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):
{
"id": 366872, "title": "Maison avec étangs",
"price": { "amount": 237977.5, "currency": "CHF" },
"location": { "city": "Saint Eugène", "postal_code": "71320", "canton": "Geneve", "country": "FR" },
"category": { "id": 10261, "name": "Maisons & Villas", "url": "https://..." },
"url": "https://www.joomil.ch/annonce/.../366872",
"created_at": "2026-06-26T22:17:11+02:00",
"has_picture": true,
"seller": { "name": "jpclair", "certified": false }
}get_classified
Parameter | Type | Description |
| 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 |
| number | Optional — omit for all, |
get_cantons
No parameters. Returns the canton values accepted by search_classifieds' canton filter, with their French labels:
{
"cantons": [
{ "name": "Geneve", "label_fr": "Genève", "code": "GE", "region": "Romandie" },
{ "name": "Bern", "label_fr": "Berne", "code": "BE", "region": "Suisse alémanique" }
],
"total": 12
}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
urlto 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_cantonsare 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) or0(free).Upstream errors: Joomil API failures are returned as MCP tool errors with
isError: true.
Deploy Your Own
git clone https://github.com/Valmo-Sarl/joomil-mcp
cd joomil-mcp
npm install
npx wrangler login
npm run deployLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to search and retrieve listings from Sweden's largest second-hand marketplaces, Blocket and Tradera. Returns unified data including prices, images, seller information, and direct links to listings.8
- AlicenseAqualityCmaintenanceEnables searching Austria's largest classifieds marketplace (willhaben.at) for real estate, cars, jobs, and second-hand items via natural-language queries and structured filters, with full listing details.7192MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to search and view advertisements on Marktplaats.nl with extensive filtering options.13MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search and consult Leboncoin classified ads through the MCP protocol, with tools for ad search, detail retrieval, user profiles, and category/region listings.MIT
Related MCP Connectors
Search products in nearby stores. Agents can also list items for sale on a user's behalf.
Search Swiss federal legislation: laws, articles, amendments via the Fedlex SPARQL endpoint.
Search listings, message posters, and create draft posts on Capmus, the university marketplace
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Valmo-Sarl/joomil-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server