# ski-france.com Agent Search

> Ski apartment search with one- or two-week prices, availability, destinations and ski passes.

- name: com.ski-france/agent-search
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 73/100 flags: no-repository
- quality: 91/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.ski-france%2Fagent-search
- tools: https://api.protogrid.dev/v1/servers/com.ski-france%2Fagent-search/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "agent-search": {
      "type": "http",
      "url": "https://en.ski-france.com/api/agent/v1/mcp/"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 65
- provenance: 45
- drivers: +dns-namespace +reachable +uptime-100% ~updated-100d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 10 of 10 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,605 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 10, about 2,605 tokens to load them all
- tool set hash: 9d9e2935710e5b3869caafd92db67bc6
- badge: [![protogrid quality](https://protogrid.dev/badge/com.ski-france/agent-search.svg)](https://protogrid.dev/servers/com.ski-france/agent-search)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://en.ski-france.com/api/agent/v1/mcp/ (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (10)

- `get_accommodation_detail`: Return accommodation-level context, apartment list, images, detail information and weekly availability for one public accommodation. Use this after search results to inspect all apartments belonging to one accommodation and to explain location, descriptions and detail notes. For price and bookability comparison for a specific week, prefer search_apartments with weekId.
- `get_search_options`: Return the current structured search vocabulary before building a search: arrival weeks, one- or two-week durations, amenities, advanced apartment filters, price sorting, entity types and supported language subdomains. Use this first when you need valid parameter values.
- `get_ski_area_detail`: Return public ski area information, facts, images, ski maps and related ski resorts. Use this for destination context and recommendations, not for apartment prices or availability; use search_apartments for live week-specific accommodation results.
- `get_ski_pass_prices`: Return ski pass weeks, durations and price tables with listPrice, discount and discountedPrice. Restrict by skiAreaId, skiResortId or accommodationId for destination-specific ski pass discovery. A global request without destination scope must provide weekId to avoid an overly broad price matrix. Omit durationDays to discover available durations with prices.
- `get_ski_resort_detail`: Return public ski resort information, location, facts, images and ski maps. Use this for explaining and comparing destinations, not for apartment prices or availability; use search_apartments for live week-specific accommodation results.
- `list_accommodations`: List public accommodations for catalogue discovery, optionally filtered by ski area, ski resort or district ids from the destination tools. This list intentionally has no prices, availability or bookability. Use search_apartments with weekId for price and availability comparison, and get_accommodation_detail after a result for accommodation context.
- `list_ski_areas`: List public ski areas in France for destination discovery and comparison. A ski area groups one or more ski resorts and can be used as a destination scope for apartment search. Parent regions only bundle ski areas and do not have a separate detail endpoint.
- `list_ski_resorts`: List public ski resorts in France for destination discovery, optionally filtered by ski area id. A ski resort is the local destination or village/resort used for accommodation search scopes and resort detail pages.
- `resolve_search_keywords`: Resolve a user phrase into concrete search-scope candidates such as parent regions, ski areas, ski resorts, districts or accommodations. Use the returned entityType and entityId in search_apartments when you want to restrict a later apartment search to a precise destination or accommodation. Broad searches can skip this and use keywords directly. Parent-region scopes are only for restricting searches, not for destination detail lookup.
- `search_apartments`: Main apartment-level search for winter ski accommodation in French ski areas and ski resorts. Results are apartments, not whole accommodations. Put destination, ski area, ski resort or accommodation names into keywords. Use structured parameters for amenities, rooms, living space, slope distance, ski area size, parent areas, accommodation category, chalet type, pets and price sorting. Put the traveller count into partySize, not keywords. Use weekId and durationWeeks for one- or two-week price, availability, bookability and special-discount data.
