{
  "markdown": "<!-- mcp-name: io.github.jordantete/verychic-mcp -->\n\n<div align=\"center\">\n\n<img src=\"https://raw.githubusercontent.com/jordantete/verychic-mcp/main/assets/logo.png\" alt=\"VeryChic MCP\" width=\"96\" height=\"96\" />\n\n# VeryChic MCP\n\n### Find, filter, and price VeryChic hotel deals from any MCP client\n\nBrowse current flash-sale offers, filter them by destination, country, price, discount,\nstars, flights, theme, or proximity (and sort the results), then read an offer's\navailability and prices by date. Read-only, anonymous, no account needed.\n\n<br>\n\n[![PyPI version](https://img.shields.io/pypi/v/verychic-mcp.svg?style=flat-square)](https://pypi.org/project/verychic-mcp/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n[![Release](https://img.shields.io/github/actions/workflow/status/jordantete/verychic-mcp/release.yml?style=flat-square&label=release)](https://github.com/jordantete/verychic-mcp/actions/workflows/release.yml)\n[![Python](https://img.shields.io/badge/python-%3E%3D3.11-3776AB?style=flat-square&logo=python&logoColor=white)](https://www.python.org/)\n[![MCP](https://img.shields.io/badge/MCP-server-7C3AED?style=flat-square)](https://modelcontextprotocol.io)\n[![Smithery](https://img.shields.io/badge/Smithery-verychic--mcp-1B1B1B?style=flat-square)](https://smithery.ai/servers/tetej171/verychic-mcp)\n[![Glama score](https://glama.ai/mcp/servers/jordantete/verychic-mcp/badges/score.svg)](https://glama.ai/mcp/servers/jordantete/verychic-mcp)\n[![Available on CodeGuilds](https://img.shields.io/badge/Available_on-CodeGuilds-6366f1?style=flat-square)](https://codeguilds.dev/packages/verychic-mcp)\n\n<br>\n\n[![Open the live landing page](https://img.shields.io/badge/%F0%9F%8C%90_Live_site-verychic--mcp.fly.dev-d8b27a?style=for-the-badge&labelColor=0c0a09)](https://verychic-mcp.fly.dev/)\n\n<br>\n\n[![Install in Cursor](https://img.shields.io/badge/Cursor-Install_server-000000?style=flat-square&logo=cursor&logoColor=white)](https://cursor.com/install-mcp?name=verychic&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJ2ZXJ5Y2hpYy1tY3AiXX0=)\n[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=verychic&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22verychic-mcp%22%5D%7D)\n\n</div>\n\n---\n\n> **Read-only and anonymous.** This server only *searches and reads* offers — it never books,\n> never logs in, and uses no credentials. A conservative rate limit (≥ 1 s between requests) is\n> built into the client. See the [disclaimer](#disclaimer) for terms of use.\n\n## Demo\n\nAdding the hosted VeryChic MCP server to Claude Desktop as a custom connector, then asking\nfor Spain deals under €600:\n\n![Adding VeryChic MCP to Claude Desktop as a custom connector](assets/connect-claude-desktop.gif)\n\n▶ [Watch it as MP4](assets/connect-claude-desktop.mp4)\n\n## Quick start\n\nAdd the server to your MCP client config. With [`uv`](https://docs.astral.sh/uv/) installed,\nthere is nothing to clone or install:\n\n```json\n{\n  \"mcpServers\": {\n    \"verychic\": {\n      \"command\": \"uvx\",\n      \"args\": [\"verychic-mcp\"]\n    }\n  }\n}\n```\n\nThis runs the server over stdio, which is what Claude Desktop and Claude Code use. You can\nalso run it directly:\n\n```bash\nuvx verychic-mcp          # stdio (default)\nuvx verychic-mcp --help   # all options\n```\n\nThe same `command`/`args` pair works in every stdio client; only the wrapping config differs.\nThese configs are for **local clients** (stdio). For cloud clients like claude.ai or Cowork,\nwhich connect over HTTPS instead, see [Use from Claude.ai or Cowork](#use-from-claudeai-or-cowork).\n\n<details>\n<summary><b>Claude Code</b> (one-liner)</summary>\n\n```bash\nclaude mcp add verychic -- uvx verychic-mcp\n```\n\n</details>\n\n<details>\n<summary><b>Cursor</b> — <code>~/.cursor/mcp.json</code></summary>\n\n```json\n{\n  \"mcpServers\": {\n    \"verychic\": {\n      \"command\": \"uvx\",\n      \"args\": [\"verychic-mcp\"]\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><b>VS Code</b> — <code>.vscode/mcp.json</code> (note the <code>servers</code> key)</summary>\n\n```json\n{\n  \"servers\": {\n    \"verychic\": {\n      \"command\": \"uvx\",\n      \"args\": [\"verychic-mcp\"]\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><b>Windsurf</b> — <code>~/.codeium/windsurf/mcp_config.json</code></summary>\n\n```json\n{\n  \"mcpServers\": {\n    \"verychic\": {\n      \"command\": \"uvx\",\n      \"args\": [\"verychic-mcp\"]\n    }\n  }\n}\n```\n\n</details>\n\n---\n\n## Tools\n\n| Tool | What it returns |\n| --- | --- |\n| `verychic_search_offers` | Offers 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`. |\n| `verychic_offer_details` | One offer's content (advantages, gallery) plus its availability and prices by date. |\n\nEvery call is read-only and anonymous, with a conservative rate limit built into the client.\n\n### `verychic_search_offers`\n\nReturns the offers matching every filter you pass (filters are combined with AND).\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `destination` | string | no | Case-insensitive substring matched against the offer's destination *or* name. |\n| `country` | string | no | Exact, case-insensitive country match (e.g. `\"Espagne\"`). |\n| `max_price` | number | no | Keep only offers priced at or below this value (EUR). |\n| `min_discount` | number | no | Keep only offers with at least this discount percentage (e.g. `40`). |\n| `min_stars` | integer | no | Keep only offers with at least this hotel star rating (1–5). |\n| `flights_included` | boolean | no | `true` keeps flight-bearing offers, `false` keeps hotel-only offers. |\n| `theme` | string (enum) | no | Keep 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`. |\n| `near_lat` / `near_lng` | number | no | Latitude/longitude of a search center (decimal degrees), given together, to compute each offer's `distance_km`. |\n| `radius_km` | number | no | Keep only offers within this many km of `near_lat`/`near_lng` (requires both). |\n| `sort_by` | string (enum) | no | Order results: `discount`, `price`, `rating`, `stars`, or `distance` (nearest first, requires a center). |\n| `limit` | integer | no | Max number of offers to return. Defaults to `20`. |\n\n### `verychic_offer_details`\n\nReturns one offer's full content plus, for hotels, its day-by-day availability and prices.\n\n| Parameter | Type | Required | Description |\n| --- | --- | --- | --- |\n| `source` | string | yes | `ORCHESTRA` for a hotel, `ORCHESTRA_TO` for a tour-operator package. |\n| `external_id` | integer | yes | The offer's id, as returned by `verychic_search_offers`. |\n\n---\n\n## Examples\n\nAsk your assistant things like:\n\n- \"Browse the current VeryChic deals.\"\n- \"Search VeryChic offers in Spain under 600 euros.\"\n- \"Find 5-star spa hotels with at least 40% off, cheapest first.\"\n- \"Show VeryChic offers within 300 km of Paris (48.8566, 2.3522), nearest first.\"\n- \"Get the details and dated prices for the ORCHESTRA hotel offer 44983.\"\n- \"Get the details for the ORCHESTRA_TO package offer 301375.\" Tour-operator packages bundle\n  flights with the hotel, so they do not expose day-by-day prices the way a single hotel does.\n  The tool still returns the offer content and advantages, and sets\n  `availabilities_supported: false` so an empty `availabilities` reads as \"not supported for this\n  offer type\", not \"no dates available\".\n\nOffers carry a `source` (`ORCHESTRA` for a hotel, `ORCHESTRA_TO` for a package) and an\n`external_id`. Both come back from `verychic_search_offers`, so the\nassistant can pass them to `verychic_offer_details` on its own.\n\nA `verychic_search_offers` result is a list of offer objects (one shown here, trimmed):\n\n```jsonc\n{\n  \"source\": \"ORCHESTRA\",\n  \"external_id\": 36509,\n  \"name\": \"Sofitel New York ****\",\n  \"destination\": \"New York, États-Unis\",\n  \"country\": \"États-Unis\",\n  \"price\": 182,\n  \"currency\": \"EUR\",\n  \"discount\": 57.0,\n  \"sales_mode\": \"FLASH\",\n  \"offer_end_date\": \"2026-06-24T23:55+0200\",\n  \"image\": \"https://.../sofitel-new-york.jpg\",\n  \"advantages\": [\"Petit-déjeuner inclus\", \"VeryFlexible : réservez en toute sérénité !\"],\n  \"offer_url\": \"https://www.verychic.fr/p/36509/etats-unis-new-york-hotel-sofitel-new-york\"\n}\n```\n\n`verychic_offer_details` adds `gallery`, `included_added_values`, a `cheapest_price`, and the\nday-by-day `availabilities` for a hotel:\n\n```jsonc\n{\n  \"offer\": { \"source\": \"ORCHESTRA\", \"external_id\": 44983, \"name\": \"Hotel Kaktus Playa *****\", \"...\": \"...\" },\n  \"cheapest_price\": 169,\n  \"availabilities_supported\": true,\n  \"availabilities\": [\n    { \"date\": \"20/06/2026\", \"price\": 169, \"currency\": \"EUR\", \"nights\": 1, \"days\": 2 },\n    { \"date\": \"21/06/2026\", \"price\": 169, \"currency\": \"EUR\", \"nights\": 1, \"days\": 2 }\n  ]\n}\n```\n\n---\n\n## Use from Claude.ai or Cowork\n\nUnlike the local clients in [Quick start](#quick-start), cloud clients such as claude.ai and\nCowork only connect to remote MCP servers over HTTPS, not to a local process. To use VeryChic\nMCP there, host it yourself in `streamable-http` mode\n(`verychic-mcp --transport streamable-http`, behind HTTPS) and add it as a custom connector,\npasting your deployment URL with the `/mcp` path.\n\nA public instance is deployed for convenience at `https://verychic-mcp.fly.dev/mcp`. Add it as\na custom connector in claude.ai/Cowork, or wire it into a local client that speaks remote MCP:\n\n```json\n{\n  \"mcpServers\": {\n    \"verychic\": {\n      \"url\": \"https://verychic-mcp.fly.dev/mcp\"\n    }\n  }\n}\n```\n\nIt is best-effort and may be paused or rate-limited at any time — for anything beyond a quick\ntry, run your own instance with the `uvx` command above or host the `streamable-http` mode.\n\nListing in Anthropic's official connector directory (next to Booking or Tripadvisor) is out of\nscope. That directory is reserved for partner integrations that pass a review this kind of tool\nwould not.\n\n---\n\n## How it works\n\nThe VeryChic web app talks to a public JSON API under\n`https://api.verychic.com/verychic-endpoints/v1` (plus `search.verychic.com`). This server\nreplays those same calls with a browser-like TLS fingerprint (`curl_cffi`), parses the\nresponses into typed objects, and exposes them as MCP tools. Everything works without logging\nin. The one volatile request parameter, `channelVersion`, is read from the live site at startup\nand falls back to a known value if that read fails.\n\n---\n\n## Development\n\n```bash\ngit clone https://github.com/jordantete/verychic-mcp.git && cd verychic-mcp\npip install -e \".[dev]\"\npytest                  # offline tests, run against recorded fixtures\npytest -m network       # optional smoke test against the live API, low volume\nruff check verychic_mcp tests\n```\n\nReleases are tag-driven. Pushing a `vX.Y.Z` tag runs the tests, builds the package, and\npublishes it to PyPI through GitHub Actions with [trusted publishing](https://docs.pypi.org/trusted-publishers/),\nso no token is stored anywhere.\n\n---\n\n## Disclaimer\n\n> VeryChic MCP is not affiliated with, endorsed by, or connected to VeryChic or VeryChic SAS.\n> It is an independent community tool for personal use that reads VeryChic's public web API the\n> same way a browser does. You are responsible for complying with VeryChic's terms of sale,\n> notably Article 9 on intellectual property and the database producer's *sui generis* right.\n> Use it at your own risk, for personal and low-volume browsing only. Do not use it for bulk\n> extraction or redistribution of VeryChic's data.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n",
  "bytes": 11831,
  "sha": "c5db9a907524a3b5916cd75b631736a1a33c8a10ca9b16bf42f95b24db2da953",
  "repo_slug": "jordantete/verychic-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_jordantete_verychic_mcp_1a6dcadb/readme"
}