Skip to main content

Unofficial read-only MCP server for VeryChic hotel offers

Project description

VeryChic MCP

VeryChic MCP

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

Browse current flash-sale offers, filter them by destination or price, and read an offer's availability and prices by date. Read-only, anonymous, no account needed.


PyPI version License: MIT Release Python MCP Smithery


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

Connecting VeryChic MCP to Claude Desktop, then asking for Spain deals under €600:

Connecting VeryChic MCP to Claude Desktop

Watch it as MP4

Quick start

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

{
  "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:

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)
claude mcp add verychic -- uvx verychic-mcp
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "verychic": {
      "command": "uvx",
      "args": ["verychic-mcp"]
    }
  }
}
VS Code.vscode/mcp.json (note the servers key)
{
  "servers": {
    "verychic": {
      "command": "uvx",
      "args": ["verychic-mcp"]
    }
  }
}
Windsurf~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "verychic": {
      "command": "uvx",
      "args": ["verychic-mcp"]
    }
  }
}

Tools

Tool What it returns
verychic_list_deals The current VeryChic offers, with a configurable limit.
verychic_search_offers Offers filtered by destination (substring match), country (exact match), and max_price.
verychic_offer_details One 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_list_deals

Returns the current offers (a list of offer objects).

Parameter Type Required Description
limit integer no Max number of offers to return. Defaults to 20.

verychic_search_offers

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

Parameter Type Required Description
destination string no Case-insensitive substring matched against the offer's destination or name.
country string no Exact, case-insensitive country match (e.g. "Espagne").
max_price number no Keep only offers priced at or below this value.
limit integer no Max 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.

Parameter Type Required Description
source string yes ORCHESTRA for a hotel, ORCHESTRA_TO for a tour-operator package.
external_id integer yes The offer's id, as returned by verychic_list_deals / verychic_search_offers.

Examples

Ask your assistant things like:

  • "List the current VeryChic deals."
  • "Search VeryChic offers in Spain under 600 euros."
  • "Get the details and dated prices for the ORCHESTRA hotel offer 44983."
  • "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_list_deals and verychic_search_offers, so the assistant can pass them to verychic_offer_details on its own.

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

{
  "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, and the day-by-day availabilities for a hotel:

{
  "offer": { "source": "ORCHESTRA", "external_id": 44983, "name": "Hotel Kaktus Playa *****", "...": "..." },
  "cheapest_price": 169,
  "availabilities_supported": true,
  "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:

{
  "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

git clone https://github.com/jordantete/verychic-mcp.git && cd verychic-mcp
pip install -e ".[dev]"
pytest                  # offline tests, run against recorded fixtures
pytest -m network       # optional smoke test against the live API, low volume
ruff 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

verychic_mcp-0.1.4.tar.gz (6.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

verychic_mcp-0.1.4-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file verychic_mcp-0.1.4.tar.gz.

File metadata

  • Download URL: verychic_mcp-0.1.4.tar.gz
  • Upload date:
  • Size: 6.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for verychic_mcp-0.1.4.tar.gz
Algorithm Hash digest
SHA256 a7b8e3c4c42de28dfcbaed9fdc42635e866400f6f6236e4c9612818b97ecc181
MD5 2c3a6e0acb5629293fb1b746875300da
BLAKE2b-256 36fdd1865a43bd989933571ee6286cffdbc8e45c214e77a6fc9345b0200f2fef

See more details on using hashes here.

Provenance

The following attestation bundles were made for verychic_mcp-0.1.4.tar.gz:

Publisher: release.yml on jordantete/verychic-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file verychic_mcp-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: verychic_mcp-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 21.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for verychic_mcp-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a98bd14d43768800b91242fdfc336ae0e0eda71a908f46ff06b3a607a598372a
MD5 a843b68376a29e55c7ca9eca17793e60
BLAKE2b-256 53bed7662de651ec93c859f2e70cc8616ddc11c560f6e4287f99ba9089d59c43

See more details on using hashes here.

Provenance

The following attestation bundles were made for verychic_mcp-0.1.4-py3-none-any.whl:

Publisher: release.yml on jordantete/verychic-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page