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 分