VeryChic Hotel Deals

io.github.jordantete由 GitHub 账号 jordantete 发布v0.4.1更新于 Oct 26, 2026

Unofficial read-only MCP server for VeryChic hotel offers

已验证Streamable HTTP可网页运行位置与生活网页搜索与抓取

概览

AI 生成的概览

非官方只读 MCP 服务器,让助手搜索 VeryChic 限时酒店与套餐优惠,并查看按日期列出的价格。

可以做什么
按目的地、国家、价格、折扣、星级、是否含机票、主题或距离搜索并筛选当前 VeryChic 优惠,可排序并限制结果数量。读取单个优惠的完整内容、图库、权益和住客评分。查询酒店优惠按月和按日的可订情况与价格,可指定月份。
适用场景
适合想浏览或比较 VeryChic 酒店优惠(按地点、预算、折扣、星级或距离)并了解具体日期价格的场景,全程不涉及预订。
运行要求
可作为本地进程通过 uvx 以 stdio 运行(需安装 uv),也可作为远程 streamable-http 端点使用;提供公共实例,但为尽力而为服务,可能随时暂停或限流。无需账号、API 密钥或凭据。需要能访问 VeryChic 的公开 API。
安装前请注意
只读且匿名:不预订、不登录、不使用凭据。它复现 VeryChic 公开网页 API 的调用,可订情况和价格可能变化,不构成预订保证。项目与 VeryChic 无关联,仅建议个人低频率使用,不得批量抓取或再分发数据;用户需自行遵守 VeryChic 的条款。

安装

在 SourceWeft 中

  1. 打开 控制台中的 VeryChic Hotel Deals,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.jordantete%2Fverychic-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "verychic-hotel-deals": {
      "type": "http",
      "url": "https://verychic-mcp.fly.dev/mcp"
    }
  }
}

README

[VeryChic MCP]

VeryChic MCP

Find, filter, and price VeryChic hotel deals from any MCP client

Browse current flash-sale offers, filter them by destination, country, price, discount, stars, flights, theme, or proximity (and sort the results), then read an offer's availability and prices by date. Read-only, anonymous, no account needed.


[PyPI version] [License: MIT] [Release] [Python] [MCP] [Smithery] [Glama score] [Available on CodeGuilds]


[Open the live landing page]


[Install in Cursor] [Install in VS Code]


Read-only and anonymous. This server only searches and reads offers — it never books, never logs in, and uses no credentials. A conservative rate limit (≥ 1 s between requests) is built into the client. See the disclaimer for terms of use.

Demo

Adding the hosted VeryChic MCP server to Claude Desktop as a custom connector, then asking for Spain deals under €600:

[Adding VeryChic MCP to Claude Desktop as a custom connector]

▶ Watch it as MP4

Quick start

Add the server to your MCP client config. With uv installed, there is nothing to clone or install:

json
{  "mcpServers": {    "verychic": {      "command": "uvx",      "args": ["verychic-mcp"]    }  }}

This runs the server over stdio, which is what Claude Desktop and Claude Code use. You can also run it directly:

bash
uvx verychic-mcp          # stdio (default)uvx verychic-mcp --help   # all options

The same command/args pair works in every stdio client; only the wrapping config differs. These configs are for local clients (stdio). For cloud clients like claude.ai or Cowork, which connect over HTTPS instead, see Use from Claude.ai or Cowork.

Claude Code (one-liner)
bash
claude mcp add verychic -- uvx verychic-mcp
Cursor — ~/.cursor/mcp.json
json
{  "mcpServers": {    "verychic": {      "command": "uvx",      "args": ["verychic-mcp"]    }  }}
VS Code — .vscode/mcp.json (note the servers key)
json
{  "servers": {    "verychic": {      "command": "uvx",      "args": ["verychic-mcp"]    }  }}
Windsurf — ~/.codeium/windsurf/mcp_config.json
json
{  "mcpServers": {    "verychic": {      "command": "uvx",      "args": ["verychic-mcp"]    }  }}

Tools

ToolWhat it returns
verychic_search_offersOffers filtered by destination, country, max_price, min_discount, min_stars, flights_included, theme, or proximity (near_lat/near_lng/radius_km), with optional sort_by.
verychic_offer_detailsOne offer's content (advantages, gallery) plus its availability and prices by date.

Every call is read-only and anonymous, with a conservative rate limit built into the client.

verychic_search_offers

Returns the offers matching every filter you pass (filters are combined with AND).

ParameterTypeRequiredDescription
destinationstringnoSubstring matched against the offer's destination or name, ignoring case and accents (crete finds Crète).
countrystringnoExact country match, ignoring case and accents ("Espagne", "Grece" finds Grèce).
max_pricenumbernoKeep only offers priced at or below this value (EUR).
min_discountnumbernoKeep only offers with at least this discount percentage (e.g. 40).
min_starsintegernoKeep only offers with at least this hotel star rating (1–5).
flights_includedbooleannotrue keeps flight-bearing offers, false keeps hotel-only offers.
themestring (enum)noKeep only offers matching a curated theme decoded from the catalogue's thematics tags. One of: adults_only, city_break, cruise, island, last_minute, luxury, mountain, nature, pool, romantic, rooftop, spa, sun, villa.
near_lat / near_lngnumbernoLatitude/longitude of a search center (decimal degrees), given together, to compute each offer's distance_km.
radius_kmnumbernoKeep only offers within this many km of near_lat/near_lng (requires both).
sort_bystring (enum)noOrder results: discount, price, rating, stars, or distance (nearest first, requires a center).
limitintegernoMax number of offers to return. Defaults to 20.

verychic_offer_details

Returns one offer's full content plus, for hotels, its day-by-day availability and prices.

ParameterTypeRequiredDescription
sourcestringyesORCHESTRA for a hotel, ORCHESTRA_TO for a tour-operator package.
external_idintegeryesThe offer's id, as returned by verychic_search_offers.
monthsarray of stringsnoMonths to look up availability for, each written MM/YYYY (e.g. ["01/2027", "02/2027"]). Defaults to roughly the next 5 months.

Examples

Ask your assistant things like:

  • "Browse the current VeryChic deals."
  • "Search VeryChic offers in Spain under 600 euros."
  • "Find 5-star spa hotels with at least 40% off, cheapest first."
  • "Show VeryChic offers within 300 km of Paris (48.8566, 2.3522), nearest first."
  • "Get the details and dated prices for the ORCHESTRA hotel offer 44983."
  • "What does that hotel cost in February and March 2027?" The assistant passes months: ["02/2027", "03/2027"] to look beyond the default window.
  • "Which month is cheapest for this hotel?" availabilities_by_month answers it directly — one row per month with stock, so a wide months window stays cheap to read.
  • "Get the details for the ORCHESTRA_TO package offer 301375." Tour-operator packages bundle flights with the hotel, so they do not expose day-by-day prices the way a single hotel does. The tool still returns the offer content and advantages, and sets availabilities_supported: false so an empty availabilities reads as "not supported for this offer type", not "no dates available".

Offers carry a source (ORCHESTRA for a hotel, ORCHESTRA_TO for a package) and an external_id. Both come back from verychic_search_offers, so the assistant can pass them to verychic_offer_details on its own.

A verychic_search_offers result is a list of offer objects (one shown here, trimmed):

jsonc
{  "source": "ORCHESTRA",  "external_id": 36509,  "name": "Sofitel New York ****",  "destination": "New York, États-Unis",  "country": "États-Unis",  "price": 182,  "currency": "EUR",  "discount": 57.0,  "sales_mode": "FLASH",  "offer_end_date": "2026-06-24T23:55+0200",  "image": "https://.../sofitel-new-york.jpg",  "advantages": ["Petit-déjeuner inclus", "VeryFlexible : réservez en toute sérénité !"],  "offer_url": "https://www.verychic.fr/p/36509/etats-unis-new-york-hotel-sofitel-new-york"}

verychic_offer_details adds gallery, included_added_values, a cheapest_price, the guest review grades, a per-month price rollup, and the day-by-day availabilities for a hotel:

jsonc
{  "offer": {    "source": "ORCHESTRA", "external_id": 44983, "name": "Hotel Kaktus Playa *****",    "rating": 8.5, "opinion_count": 67,    "rating_location": 8.1, "rating_room": 9.2, "rating_service": 8.9,    "rating_food": 9.1, "rating_public_area": 9.1,    "...": "..."  },  "cheapest_price": 169,  "availabilities_supported": true,  "availabilities_by_month": [    { "month": "06/2026", "min_price": 169, "currency": "EUR", "dates_available": 5 }  ],  "availabilities": [    { "date": "20/06/2026", "price": 169, "currency": "EUR", "nights": 1, "days": 2 },    { "date": "21/06/2026", "price": 169, "currency": "EUR", "nights": 1, "days": 2 }  ]}

Use from Claude.ai or Cowork

Unlike the local clients in Quick start, cloud clients such as claude.ai and Cowork only connect to remote MCP servers over HTTPS, not to a local process. To use VeryChic MCP there, host it yourself in streamable-http mode (verychic-mcp --transport streamable-http, behind HTTPS) and add it as a custom connector, pasting your deployment URL with the /mcp path.

A public instance is deployed for convenience at https://verychic-mcp.fly.dev/mcp. Add it as a custom connector in claude.ai/Cowork, or wire it into a local client that speaks remote MCP:

json
{  "mcpServers": {    "verychic": {      "url": "https://verychic-mcp.fly.dev/mcp"    }  }}

It is best-effort and may be paused or rate-limited at any time — for anything beyond a quick try, run your own instance with the uvx command above or host the streamable-http mode.

Listing in Anthropic's official connector directory (next to Booking or Tripadvisor) is out of scope. That directory is reserved for partner integrations that pass a review this kind of tool would not.


How it works

The VeryChic web app talks to a public JSON API under https://api.verychic.com/verychic-endpoints/v1 (plus search.verychic.com). This server replays those same calls with a browser-like TLS fingerprint (curl_cffi), parses the responses into typed objects, and exposes them as MCP tools. Everything works without logging in. The one volatile request parameter, channelVersion, is read from the live site at startup and falls back to a known value if that read fails.


Development

bash
git clone https://github.com/jordantete/verychic-mcp.git && cd verychic-mcppip install -e ".[dev]"pytest                  # offline tests, run against recorded fixturespytest -m network       # optional smoke test against the live API, low volumeruff check verychic_mcp tests

Releases are tag-driven. Pushing a vX.Y.Z tag runs the tests, builds the package, and publishes it to PyPI through GitHub Actions with trusted publishing, so no token is stored anywhere.


Disclaimer

VeryChic MCP is not affiliated with, endorsed by, or connected to VeryChic or VeryChic SAS. It is an independent community tool for personal use that reads VeryChic's public web API the same way a browser does. You are responsible for complying with VeryChic's terms of sale, notably Article 9 on intellectual property and the database producer's sui generis right. Use it at your own risk, for personal and low-volume browsing only. Do not use it for bulk extraction or redistribution of VeryChic's data.

License

MIT. See LICENSE.

来源:README.md,提交 846379b

工具

2

verychic_search_offers

Search & filter VeryChic offers

Search and filter the current VeryChic offers by destination, country, price, discount, stars, flights, theme, or proximity — with optional sorting. When to use: when you already know roughly what the user wants — a place, a country, a budget, a minimum discount or star rating, flights vs hotel-only, a theme (e.g. pool, spa, romantic, last_minute), or hotels near a point (near_lat/near_lng, with an optional radius_km). To inspect one specific offer in depth use `verychic_offer_details`. All filters are optional and combine with AND; call it with no filter to browse the full current catalogue in catalogue order. Behaviour: read-only and anonymous; rate-limited to about 1 request per second. Filtering is done client-side over the live catalogue: `destination` is a substring (matched on destination or name), `country` is an exact match — both ignore case and accents, so 'grece' matches the catalogue's 'Grèce' — `max_price`/`min_discount`/`min_stars` are numeric bounds, `flights_included` toggles flight-bearing vs hotel-only, and `theme` matches a curated label decoded from the catalogue's thematics tags. Use `sort_by` to order results (`discount`, `price`, `rating`, `stars`, or `distance`). Prices are in EUR and text is in French; there is no pagination. Returns the first `limit` matches after filtering and sorting. "Current" means live offers at call time; the catalogue changes over time. Returns a list of offer objects (same `source` + `external_id` pair for use with `verychic_offer_details`). Each offer also carries `discount` (percent off, may be null), `stars` (1-5, may be null), `price_label` (human-readable price unit, e.g. "à partir de par pers. pour 3 nuits" vs "par chambre" — read this before comparing prices), `price_with_flights` (EUR, null when not applicable), `flights_included`

输入参数limitthemecountrysort_bynear_latnear_lngmax_pricemin_starsradius_kmdestinationmin_discountflights_included

verychic_offer_details

Get VeryChic offer details & availability

Get full details plus per-date availability and prices for one specific VeryChic offer. When to use: after `verychic_search_offers` returned an offer you want to inspect — pass that offer's `source` and `external_id` here. You must obtain those two identifiers from a search result first; this tool does not search. Behaviour: read-only and anonymous; rate-limited to about 1 request per second; prices in EUR, text in French. Availability is looked up for roughly the next 5 months unless `months` names the window to query. For tour-operator packages (`source` = 'ORCHESTRA_TO') VeryChic exposes no date-availability endpoint: `availabilities` is then empty and `availabilities_supported` is false — meaning "not supported", NOT "sold out". Returns an object with: `offer` (same fields as a search result, plus `offer_url`), `advantages`, `included_added_values`, `non_included_added_values`, `gallery` (image URLs), `availabilities` (one entry per check-in date with `date`, `price`, `currency`, `nights`, `days`, `departure_city_code`), `availabilities_by_month` (one row per month with stock — `month` as 'MM/YYYY', `min_price`, `currency` and `dates_available` — in chronological order), `availabilities_supported` (bool), and `cheapest_price` (lowest available price, or null when none). To answer "which month is cheapest", read `availabilities_by_month` rather than scanning `availabilities`: it carries the same answer in a fraction of the size, and it stays small when `months` asks for a wide window.

输入参数monthssource必填external_id必填

版本历史

3
  1. v0.4.1最新Oct 26, 2026
  2. v0.4.0Sep 22, 2026
  3. v0.1.3Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分