joomil-mcp
joomil-mcp
面向 Joomil.ch 的 MCP 服务器 —— 瑞士领先的法语分类广告市场,自 2007 年起运营。
浏览并搜索 34 个类别中的 45,000+ 条活跃信息:房地产、车辆、工作、宠物、电子产品、时尚等 —— 全部来自瑞士法语区(Romandie)。
工具
工具 | 描述 |
| 从自然语言查询中推断 |
| 使用过滤器搜索信息:关键词、类别、州(严格枚举)、地点、价格范围、排序、分页 |
| 按 ID 获取信息的完整详情:描述、图片、卖家、到期日期 |
| 通过 |
| 列出 |
Related MCP server: marktplaats-mcp
快速开始
这是一个远程 MCP 服务器 —— 无需本地安装。
端点: https://joomil-mcp.snowy-surf-deec.workers.dev/mcp
Claude Desktop
添加到 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"joomil": {
"command": "npx",
"args": ["mcp-remote", "https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"]
}
}
}Cursor
添加到你的 MCP 设置:
{
"joomil": {
"url": "https://joomil-mcp.snowy-surf-deec.workers.dev/mcp"
}
}示例提示
"帮我在沃州找一辆低于 10'000 瑞郎的自动挡汽车。"
"在锡永找一套三居室公寓。"
"Joomil 提供哪些电子产品类别?"
"给我看看瓦莱州的复古沙发广告。"
"在纳沙泰尔找酒店业的招聘信息。"
给智能体的提示:在按州过滤之前先调用
get_cantons—— API 使用 不明显的拼写(例如Bern而非Berne,Geneve而非Genève/Geneva)。 对于自由文本的用户请求,先调用suggest_filters,然后将返回的filters对象传递给search_classifieds。
API 参考
suggest_filters
参数 | 类型 | 描述 |
| string | 自然语言搜索请求,例如 |
返回一个可直接用于 search_classifieds 的 filters 对象,以及类别置信度分数和匹配不确定时的警告。MCP 层会短暂缓存类别元数据,以避免每次建议都重新获取类别树。
有用的示例:
用户请求 | 典型的建议过滤器 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{
"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
参数 | 类型 | 描述 |
| string | 全文搜索(标题 + 描述) |
| number | 类别 ID —— 包含子类别 |
| enum | 严格枚举 —— 参见 |
| string | 城市名称或邮政编码(部分匹配) |
| number | 最低价格(CHF) |
| number | 最高价格(CHF) |
| enum |
|
| number | 每页结果数(1–50,默认 20) |
| number | 分页偏移量 —— 使用上一次响应的 |
工具响应包含一段简短的人类可读摘要,后跟 content 中的紧凑序列化 JSON,以保持 MCP 向后兼容。完整数据也会在 structuredContent 中返回,包含 results、total、limit、offset、has_more、next_offset 和 filtered_out(因 MCP 端类别限制而从当前页移除的项目)。
结果结构(每个项目):
{
"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
参数 | 类型 | 描述 |
| number | 信息 ID(来自搜索结果或信息 URL) |
返回完整的信息详情,包括完整描述、图片、类别路径、到期日期、置顶级别和卖家详情。
get_categories
参数 | 类型 | 描述 |
| number | 可选 —— 省略则获取全部, |
get_cantons
无参数。返回 search_classifieds 的 canton 过滤器接受的州值及其法语标签:
{
"cantons": [
{ "name": "Geneve", "label_fr": "Genève", "code": "GE", "region": "Romandie" },
{ "name": "Bern", "label_fr": "Berne", "code": "BE", "region": "Suisse alémanique" }
],
"total": 12
}始终将 name 字段(而非 label_fr 或 code)传递给 canton 过滤器。
数据
来源:Joomil.ch 公共 REST API
覆盖范围:45,000+ 条活跃信息,34 个顶级类别,190,000+ 注册用户
地点:瑞士(法语区 —— Romandie)
语言:法语
更新频率:实时
认证:无需
限制
此 MCP 服务器是只读的,仅使用公共数据。
无写操作:无法创建、编辑或删除信息;无法联系卖家。
无认证:没有用户账户、消息、收藏或保存的搜索。
无卖家联系:不公开电话号码和电子邮件地址 —— 使用信息的
url直接打开 Joomil.ch。无发布功能:发布广告必须在 joomil.ch 上进行。
受限类别:Erotique (28)、Rencontres & Amitié (14000)、Voyance & Astrologie (651) 及其子类别会按内容政策被 MCP 层过滤掉。底层 PHP API 仍可直接使用。
州过滤器是严格的:只接受
get_cantons返回的值。其他拼写(Berne、Genève、Geneva、GE、VD...)会被上游 API 静默忽略,并返回所有信息而非过滤后的集合 —— 这里的严格枚举可防止这种情况。货币:所有价格均为 CHF。信息可能具有
price.amount: null(价格面议)或0(免费)。上游错误:Joomil API 故障会以
isError: true的 MCP 工具错误形式返回。
自行部署
git clone https://github.com/Valmo-Sarl/joomil-mcp
cd joomil-mcp
npm install
npx wrangler login
npm run deploy许可证
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
- 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.723 npm2MIT
- AlicenseAqualityBmaintenanceEnables AI agents to search and monitor Dutch and Belgian classifieds (Marktplaats and 2dehands) for listings, seller profiles, and categories.848 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.8MIT