protogrid

Search / io.github.jordantete/verychic-mcp

VeryChic Hotel Deals

R0· no sign-in

Unofficial read-only MCP server for VeryChic hotel offers

v0.4.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality94strong
Trust97of 100
Uptime, 30 days99%
Latency p50258 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "verychic-mcp": {
      "type": "http",
      "url": "https://verychic-mcp.fly.dev/mcp"
    }
  }
}
claude mcp add --transport http verychic-mcp https://verychic-mcp.fly.dev/mcp
[mcp_servers.verychic-mcp]
url = "https://verychic-mcp.fly.dev/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "verychic-mcp": {
      "type": "remote",
      "url": "https://verychic-mcp.fly.dev/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "verychic-mcp": {
      "type": "http",
      "url": "https://verychic-mcp.fly.dev/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=verychic-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdmVyeWNoaWMtbWNwLmZseS5kZXYvbWNwIn0%3D"
}
{
  "servers": {
    "verychic-mcp": {
      "type": "http",
      "url": "https://verychic-mcp.fly.dev/mcp"
    }
  }
}
{
  "mcpServers": {
    "verychic-mcp": {
      "httpUrl": "https://verychic-mcp.fly.dev/mcp"
    }
  }
}
extensions:
  "verychic-mcp":
    enabled: true
    name: "verychic-mcp"
    type: streamable_http
    uri: "https://verychic-mcp.fly.dev/mcp"
    timeout: 300

Quality 94 / 100strong

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations2 of 2 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 2,376 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependencies100 · weight 15
  • pass
    deps.known_vulnsno known advisory in 39 resolved packages
  • pass
    deps.mcp_sdk_versionmcp 2.2.0, no known advisory
  • pass
    deps.resolvable[email protected] resolved: 39 packages

2 tools, about 2,376 tokens to load them all · tool set 941088854e2c · checked 2026-10-20 14:21 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-99% +updated-28d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] PyPI38 dependencies, resolved · MCP SDK mcp 2.2.0 · advisories checked 2026-10-19

No known advisory affects this dependency graph.

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://verychic-mcp.fly.dev/mcp streamable-httpnoneyes99%258 ms2026-07-282026-10-20
packageregistryversionruntimesecrets
verychic-mcppypi0.4.0uvx

Tools (2)

verychic_offer_detailsread-onlyGet 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.
verychic_search_offersread-onlySearch 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` (bool), `rating` (overall guest grade out of 10), `opinion_count` (how many reviews that grade rests on — check it before trusting a rating), the per-topic grades `rating_location`, `rating_room`, `rating_service`, `rating_food` and `rating_public_area` (out of 10, null when unrated), and `themes` (curated theme labels decoded from the catalogue's thematics tags, e.g. ["pool", "luxury"]). The catalogue carries no reviews, so every grade is null and `opinion_count` is 0 here; call `verychic_offer_details` on an offer to get its real review data. An empty list means no offer matched the filters. Proximity search: pass `near_lat` and `near_lng` (decimal degrees, together) to compute each offer's `distance_km` from that point; add `radius_km` to keep only offers within that distance, and/or `sort_by="distance"` for nearest-first. `distance_km` is null when no center is given.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.jordantete/verychic-mcp",
  "title": "VeryChic Hotel Deals",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://verychic-mcp.fly.dev/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.4.0",
  "packages": [
    {
      "version": "0.4.0",
      "transport": {
        "type": "stdio"
      },
      "identifier": "verychic-mcp",
      "runtimeHint": "uvx",
      "registryType": "pypi",
      "registryBaseUrl": "https://pypi.org"
    }
  ],
  "repository": {
    "url": "https://github.com/jordantete/verychic-mcp",
    "source": "github"
  },
  "websiteUrl": "https://github.com/jordantete/verychic-mcp",
  "description": "Unofficial read-only MCP server for VeryChic hotel offers"
}