joomil-mcp
joomil-mcp
Servidor MCP para Joomil.ch — el principal mercado de anuncios clasificados de habla francesa de Suiza, activo desde 2007.
Explora y busca más de 45.000 anuncios activos en 34 categorías: inmuebles, vehículos, empleo, animales, electrónica, moda y más, todo desde las regiones francófonas de Suiza (Romandía).
Herramientas
Herramienta | Descripción |
| Infiere los filtros de |
| Busca anuncios con filtros: palabra clave, categoría, cantón (enum estricto), ubicación, rango de precios, orden, paginación |
| Obtén los detalles completos de un anuncio por ID: descripción, imágenes, vendedor, fecha de caducidad |
| Lista las categorías activas con jerarquía mediante |
| Lista los valores de cantón admitidos por el filtro |
Related MCP server: marktplaats-mcp
Inicio rápido
Este es un servidor MCP remoto: no requiere instalación local.
Endpoint: https://joomil-mcp.snowy-surf-deec.workers.dev/mcp
Claude Desktop
Añade a ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"joomil": {
"command": "npx",
"args": ["mcp-remote", "https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"]
}
}
}Cursor
Añade a tu configuración de MCP:
{
"joomil": {
"url": "https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"
}
}Ejemplos de 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."
Consejo para agentes: llama a
get_cantonsantes de filtrar por cantón: la API usa ortografías poco evidentes (p. ej.BernnoBerne,GenevenoGenève/Geneva). Para solicitudes de texto libre, llama primero asuggest_filtersy luego pasa el objetofiltersdevuelto asearch_classifieds.
Referencia de la API
suggest_filters
Parámetro | Tipo | Descripción |
| string | Solicitud de búsqueda en lenguaje natural, p. ej. |
Devuelve un objeto filters listo para usar en search_classifieds, además de una puntuación de confianza de categoría y advertencias cuando la coincidencia es incierta. Los metadatos de categoría se almacenan en caché brevemente en la capa MCP para evitar volver a obtener el árbol de categorías en cada sugerencia.
Ejemplos útiles:
Solicitud del usuario | Filtros sugeridos típicos |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
"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
Parámetro | Tipo | Descripción |
| string | Búsqueda de texto completo (título + descripción) |
| number | ID de categoría: incluye subcategorías |
| enum | Enum estricto: consulta |
| string | Nombre de ciudad o código postal (coincidencia parcial) |
| number | Precio mínimo en CHF |
| number | Precio máximo en CHF |
| enum |
|
| number | Resultados por página (1–50, predeterminado 20) |
| number | Desplazamiento de paginación: usa |
Las respuestas de la herramienta incluyen un breve resumen legible seguido de JSON serializado compacto en content para compatibilidad con MCP. Los datos completos también se devuelven en structuredContent con results, total, limit, offset, has_more, next_offset y filtered_out (elementos eliminados de la página actual por restricciones de categoría del lado MCP).
Forma del resultado (cada elemento):
{
"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
Parámetro | Tipo | Descripción |
| number | ID del anuncio (de los resultados de búsqueda o de la URL del anuncio) |
Devuelve los detalles completos del anuncio, incluida la descripción completa, imágenes, ruta de categoría, fecha de caducidad, nivel de impulso y datos del vendedor.
get_categories
Parámetro | Tipo | Descripción |
| number | Opcional: omítelo para todas, |
get_cantons
Sin parámetros. Devuelve los valores de cantón aceptados por el filtro canton de search_classifieds, con sus etiquetas en francés:
{
"cantons": [
{ "name": "Geneve", "label_fr": "Genève", "code": "GE", "region": "Romandie" },
{ "name": "Bern", "label_fr": "Berne", "code": "BE", "region": "Suisse alémanique" }
],
"total": 12
}Pasa siempre el campo name (no label_fr ni code) al filtro canton.
Datos
Fuente: API REST pública de Joomil.ch
Cobertura: más de 45.000 anuncios activos, 34 categorías de nivel superior, más de 190.000 usuarios registrados
Ubicación: Suiza (regiones francófonas — Romandía)
Idioma: francés
Frecuencia de actualización: tiempo real
Autenticación: no se requiere
Limitaciones
Este servidor MCP es de solo lectura y utiliza solo datos públicos.
Sin operaciones de escritura: no se pueden crear, editar ni eliminar anuncios; no se puede contactar con los vendedores.
Sin autenticación: no hay cuentas de usuario, ni mensajes, ni favoritos, ni búsquedas guardadas.
Sin contacto con el vendedor: no se exponen números de teléfono ni direcciones de correo electrónico; usa la
urldel anuncio para abrir Joomil.ch directamente.Sin publicación: publicar un anuncio debe hacerse en joomil.ch.
Categorías restringidas: Erotique (28), Rencontres & Amitié (14000), Voyance & Astrologie (651) y sus descendientes se filtran en la capa MCP según la política de contenido. La API PHP subyacente sigue disponible para uso directo.
El filtro de cantón es estricto: solo se aceptan los valores devueltos por
get_cantons. Otras ortografías (Berne,Genève,Geneva,GE,VD...) son ignoradas silenciosamente por la API ascendente y devolverían todos los anuncios en lugar de un conjunto filtrado; el enum estricto aquí lo evita.Moneda: todos los precios están en CHF. Los anuncios pueden tener
price.amount: null(precio bajo petición) o0(gratis).Errores ascendentes: los fallos de la API de Joomil se devuelven como errores de herramienta MCP con
isError: true.
Despliega el tuyo
git clone https://github.com/Valmo-Sarl/joomil-mcp
cd joomil-mcp
npm install
npx wrangler login
npm run deployLicencia
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Search and browse global classifieds across 80 markets. No auth required for read-only access.
Job search for Switzerland. Searches current listings on funkyjobs.ch by keyword, place with radius, workload, category and publishing date, and fetches a single listing with employer, location, workload and salary where stated. Read-only, no account needed. Docs: https://www.funkyjobs.ch/mcp-connector
Read-only search of Québec's bilingual classifieds: ads, categories, filters, places.
Search classified ads from European marketplaces: rentals, homes, vehicles, second-hand goods, jobs.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables 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.77 npm2MIT
- AlicenseAqualityAmaintenanceEnables AI agents to search and monitor Dutch and Belgian classifieds (Marktplaats and 2dehands) for listings, seller profiles, and categories.852 PyPI4MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search willhaben.at marketplace listings and retrieve full ad details, using filters for category, condition, size, color, pattern, brand, and more.3MIT
- AlicenseAqualityCmaintenanceEnables searching Moldova's largest classifieds board from an AI client without an account or API key, covering listings such as apartments, cars and phones with category, filter, price and currency controls. Also retrieves full ad details, photos as visible images, seller profiles and phone numbers, dependent options like city sectors or car models, and 999.md's own price statistics.48MIT