mcpField
J
Joomil — Swiss Classifieds MCP

Joomil — Swiss Classifieds MCP

远程服务
github.com/Valmo-Sarl商业与营销018 周前更新
代码仓库

关于 Joomil — Swiss Classifieds MCP

Joomil 是只读 MCP 服务,用于搜索 Joomil.ch 上瑞士法语区的公开分类广告。它支持自然语言筛选建议、广告详情查询,以及类别和州信息查询。

主要功能

  1. 01根据自然语言建议搜索筛选条件
  2. 02按关键词和地点搜索广告
  3. 03获取广告完整详情
  4. 04浏览类别和州选项

适用场景

  1. 01查找预算范围内的车辆
  2. 02按城市和房型搜索住房
  3. 03浏览电子产品等类别
  4. 04按地区查找公开招聘信息

MCP 相关

远程 MCP 服务提供广告搜索、详情查询、筛选建议以及类别和州查询工具。它使用 Joomil.ch 的公开 REST API,且为只读服务。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://joomil-mcp.snowy-surf-deec.workers.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

5
参数类型必填说明
querystring是自然语言搜索请求,例如 'appartement 3 pièces à Sion' 或 'Tesla Model 3 moins de 25000 CHF'。

详细介绍

joomil-mcp

面向 Joomil.ch 的 MCP 服务——瑞士领先的法语分类信息平台,自 2007 年起持续运营。

浏览并搜索 34 个类别中的 45,000 多条有效信息:房地产、车辆、工作、动物、电子产品、时尚等,全部来自瑞士法语区(Romandie)。

工具

工具描述
suggest_filters根据自然语言查询推断 search_classifieds 的筛选条件
search_classifieds使用筛选条件搜索信息:关键词、类别、州(严格枚举)、地点、价格范围、排序、分页
get_classified根据 ID 获取信息的完整详情:描述、图片、发布者、到期日期
get_categories列出有效类别及其通过 parent_id 表示的层级关系
get_cantons列出 canton 筛选器支持的州名称(特定于 API 的拼写)

快速开始

这是一个远程 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 CHF 的自动挡汽车。”
  • “搜索锡永的三居室公寓。”
  • “Joomil 提供哪些电子产品类别?”
  • “给我看看瓦莱州的复古沙发信息。”
  • “搜索纳沙泰尔的酒店业招聘信息。”

给 Agent 的提示:按州筛选前,请先调用 get_cantons——API 使用的拼写可能不太直观(例如,使用 Bern 而不是 Berne,使用 Geneve 而不是 Genève/Geneva)。 对于用户的自由文本请求,请先调用 suggest_filters,然后将返回的 filters 对象传递给 search_classifieds。

API 参考

suggest_filters
参数类型描述
querystring自然语言搜索请求,例如 appartement 3 pièces à Sion

返回可直接用于 search_classifieds 的 filters 对象,以及类别置信度分数;如果匹配结果不确定,还会返回警告。MCP 层会短暂缓存类别元数据,以避免每次生成建议时都重新获取类别树。

实用示例:

用户请求典型的建议筛选条件
Tesla Model 3 moins de 25'000 CHFq: "Tesla Model 3"、cat_id: 101、price_max: 25000、sort: "price_asc"
vélo budget 1.5k CHFq: null、类别为运动/休闲、price_max: 1500、sort: "price_asc"
appartement 3 pièces à Sionq: "3 pièces"、cat_id: 10255、location: "Sion"
voiture entre 10'000 et 20'000 CHFcat_id: 101、price_min: 10000、price_max: 20000
Golf GTI dans le canton de Vaudq: "Golf GTI"、cat_id: 101、canton: "Vaud"
canapé vintage à Lausanneq: "vintage"、cat_id: 10022、location: "Lausanne"
iPhone 14 à Genèveq: "iPhone 14"、cat_id: 10127、location: "Genève"
{
  "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
ParameterTypeDescription
qstring全文搜索(标题 + 描述)
cat_idnumber分类 ID——包括子分类
cantonenum严格枚举——参见 get_cantons。Geneve、Vaud、Valais、Fribourg、Neuchatel、Jura、Bern、Argovie、Zurich、Lucerne、Bale-Ville、Etranger
locationstring城市名称或邮政编码(部分匹配)
price_minnumber最低价格,单位为 CHF
price_maxnumber最高价格,单位为 CHF
sortenumrecent(默认,最新优先)、price_asc、price_desc、views(浏览量最高)
limitnumber每页结果数(1–50,默认 20)
offsetnumber分页偏移量——使用上次响应中的 next_offset

工具响应包含简短的易读摘要,随后是 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
ParameterTypeDescription
idnumber条目 ID(来自搜索结果或条目 URL)

返回完整的条目详情,包括完整描述、图片、分类路径、到期日期、推广级别和卖家详情。

get_categories
ParameterTypeDescription
parent_idnumber可选——省略表示获取全部,0 表示根分类,或使用任意分类 ID 获取其子分类
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
}

canton 筛选器始终传入 name 字段(而非 label_fr 或 code)。

数据

  • 来源:Joomil.ch 公共 REST API
  • 覆盖范围:45,000 多条有效条目、34 个顶级分类、190,000 多名注册用户
  • 地区:瑞士(法语区——罗曼迪)
  • 语言:法语
  • 更新频率:实时
  • 身份验证:无需验证

限制

此 MCP 服务为只读,且仅使用公开数据。

  • 无写入操作:无法创建、编辑或删除条目,也无法联系卖家。
  • 无需身份验证:没有用户账户、消息、收藏夹或保存的搜索。
  • 无法联系卖家:不会公开电话号码和电子邮件地址——请使用条目的 url 直接打开 Joomil.ch。
  • 无法发布:必须在 joomil.ch 上发布广告。
  • 受限分类:根据内容政策,MCP 层会过滤掉 Erotique(28)、Rencontres & Amitié(14000)、Voyance & Astrologie(651)及其后代分类。底层 PHP API 仍可直接使用。
  • 州筛选器为严格模式:只接受 get_cantons 返回的值。其他拼写形式(Berne、Genève、Geneva、GE、VD……)会被上游 API 静默忽略,导致返回所有条目而非筛选后的结果——此处的严格枚举可避免这种情况。
  • 货币:所有价格均以 CHF 计价。条目的 price.amount 可能为 null(价格面议)或 0(免费)。
  • 上游错误:Joomil API 故障会作为 MCP 工具错误返回,并带有 isError: true。

部署自己的实例

git clone https://github.com/Valmo-Sarl/joomil-mcp
cd joomil-mcp
npm install
npx wrangler login
npm run deploy

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。