# Esoru by resortlife.travel (remote · resortlife.travel)

Read-only Maldives resort research, comparisons and media for approved travel agencies.

- Trust score: 76/100 (medium)
- Change this week: +40
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `resortlife.travel`: 76/100 (this document), [markdown](https://verifymcp.io/servers/travel-resortlife-esoru/api-mcp.md), [page](https://verifymcp.io/servers/travel-resortlife-esoru/api-mcp)

## Channel facts

- Endpoint: `https://resortlife.travel/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.2.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 81/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2351 tokens (~106/item across 22 items; 21 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 7/100
  - Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### How do I install the Esoru by resortlife.travel MCP server?

Esoru by resortlife.travel is a hosted endpoint at https://resortlife.travel/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http travel-resortlife-esoru 'https://resortlife.travel/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "travel-resortlife-esoru": {
      "url": "https://resortlife.travel/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "travel-resortlife-esoru": {
      "type": "http",
      "url": "https://resortlife.travel/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.travel-resortlife-esoru]
url = "https://resortlife.travel/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "travel-resortlife-esoru": {
      "type": "remote",
      "url": "https://resortlife.travel/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add travel-resortlife-esoru --url 'https://resortlife.travel/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  travel-resortlife-esoru:
    url: "https://resortlife.travel/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "travel-resortlife-esoru": {
      "Transport": "http",
      "Url": "https://resortlife.travel/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add travel-resortlife-esoru -t streamable-http -u 'https://resortlife.travel/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "travel-resortlife-esoru": {
      "type": "http",
      "url": "https://resortlife.travel/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-04 (score 75, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 0.6.1 → 0.7.0

### 2026-11-03 (score 75, +39)

- [security improvement] Transport: unverified → pass
- [security improvement] Injection markers: unverified → pass
- [security improvement] Authorization: fail → partial
- [security] First check of Judged manipulation: pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Destructive annotations: pass
- [functional] First check of Schema quality: fail
- [functional] First check of Capabilities: pass
- [functional] First check of Schema quality: good
- [functional] First check of Tool coverage: 100

### 2026-10-24 (score 36)

First indexed and scored.

## MCP tools (21)

### `search_resorts` (~353 tokens)

Search resorts

Search the Maldives accommodation catalog by name, atoll, star class, transfer mode, meal plan and experience. Results list resorts before guesthouses and are not a ranking by quality. Can also narrow to a short transfer from the airport or to stays with a 360° tour. Returns compact summaries.

Input parameters:

- `atoll` (string): Atoll name, partial match — e.g. "Baa", "South Ari".
- `experiences` (array): Properties must match ALL of these: honeymoon, family, diving, snorkeling, surfing, wellness, adults-only, all-inclusive, overwater-villas, private-pool, manta-rays, whale-sharks, water-sports, house…
- `hasVirtualTour` (boolean): True: only stays with a published 360° tour.
- `limit` (integer): Maximum results (1-60).
- `maxTransferMinutes` (integer): Only stays with a recorded airport transfer this short, in minutes. Uses the top of any range, adds up the legs of a two-part journey, and leaves out stays with no figure on record. Connection waits…
- `mealPlan` (string): Board basis — e.g. "All Inclusive", "Half Board".
- `propertyType` (string): Restrict to resorts or guesthouses.
- `query` (string): Free text: a name, island, atoll or words like honeymoon or overwater. Typo-tolerant for names.
- `starRating` (string): Official star class.
- `transferType` (string): Airport transfer mode, partial match — e.g. "seaplane", "speedboat", "domestic".

### `resolve_resort` (~100 tokens)

Resolve a resort name to its slug

Turn a loosely-written resort name into its canonical slug and a confidence score. Handles the real-world drift between how a resort is written and how it is stored — "Soneva Fushi" vs "SonevaFushi", "ONE&ONLY" vs "One & Only", missing or extra suffix words. A score below 0.6 is not a confident match.

Input parameters:

- `name` (string, required): Resort name as written by the user.

### `get_resort` (~103 tokens)

Get a resort dossier

Full record for one property: location, transfers, meal plans, room/dining counts, policies, sustainability, brand detail, a few photographs and its 360° tour when published. Optionally attaches the child catalogues (villas, dining, spa, dive, experiences) in the same call.

Input parameters:

- `include` (array): Child catalogues to attach: villas, dining, spa, dive, experiences.
- `slug` (string, required): Canonical property slug.

### `list_villas` (~52 tokens)

List villas

Room and villa categories for a resort: size, occupancy, bed config, view, overwater/pool/beach flags and inclusions. Pricing is excluded.

Input parameters:

- `slug` (string, required): Canonical property slug.

### `list_dining` (~47 tokens)

List dining venues

Restaurants and bars at a resort: cuisine, style, setting, dress code, signature dishes. Pricing and priced menu documents are excluded.

Input parameters:

- `slug` (string, required): Canonical property slug.

### `list_spas` (~41 tokens)

List spa venues

Spa and wellness facilities: operating brand, setting, treatment rooms, couples suites, signature treatments and specialties.

Input parameters:

- `slug` (string, required): Canonical property slug.

### `list_dive_centres` (~50 tokens)

List dive centres

Dive operations: operator, PADI level, courses, instructor languages, house reef quality, named dive sites and the marine life encountered there.

Input parameters:

- `slug` (string, required): Canonical property slug.

### `list_experiences` (~43 tokens)

List resort experiences

Activities and excursions offered at a resort: type, category, duration, what is included and any age restriction.

Input parameters:

- `slug` (string, required): Canonical property slug.

### `compare_resorts` (~54 tokens)

Compare resorts

Side-by-side comparison of 2-6 properties on a fixed attribute set (location, transfers, scale, board, tier, experience tags).

Input parameters:

- `slugs` (array, required): 2-6 canonical property slugs.

### `similar_resorts` (~55 tokens)

Find similar resorts

Nearest alternatives to a given property, matched on atoll, tier, transfer mode and experience profile.

Input parameters:

- `limit` (integer): How many alternatives (1-12).
- `slug` (string, required): Canonical property slug.

### `list_atolls` (~51 tokens)

List atolls

The Maldives atolls carrying accommodation, with resort counts and lagoon centroid coordinates. Optionally includes each atoll's resort roster.

Input parameters:

- `includeResorts` (boolean): Attach the resort list for each atoll.

### `catalog_stats` (~26 tokens)

Catalog coverage

How much of the Maldives this catalog actually covers — visible property count and atoll count.

### `get_resort_gallery` (~99 tokens)

Get a resort's photo gallery

Photography for one property, in the site's own display order (editor's primary pick first, then owned bucket imagery). Returns direct image URLs with category and photo credit where recorded.

Input parameters:

- `category` (string): Filter to one image category, e.g. "Aerial", "Villas", "Dining". Case-insensitive.
- `limit` (integer): Maximum images (1-60).
- `slug` (string, required): Canonical property slug.

### `list_vr_tours` (~55 tokens)

List published 360° tours

Every resort with a published self-hosted 360° virtual tour, with scene counts and a thumbnail. Only returns tours that are live on the site.

Input parameters:

- `limit` (integer): Maximum tours (1-60).

### `get_vr_tour` (~90 tokens)

Get a 360° tour's scene list

The scene graph for one published 360° tour: every panorama with its title, category and panorama image URLs: what a guest can walk through before booking.

Input parameters:

- `category` (string): Filter scenes to one category, e.g. "Villas & Suites", "Dining".
- `slug` (string, required): Resort slug (not the tour key) — e.g. "w-maldives".

### `find_nearby` (~149 tokens)

Find places near a resort, dive site or surf break

What is close to a named place on the Maldives map: resorts, guesthouses, dive sites, surf breaks and restaurants at other properties, nearest first, with a mix of kinds and straight-line distance. Distance is not travel time.

Input parameters:

- `anchor` (string, required): Slug of that place. Guesthouses count as the resort type.
- `anchorType` (string, required): The kind of place to measure from.
- `include` (array): Kinds of result to return: resort, guesthouse, dive_site, surf_break, dining. Defaults to all of them.
- `limit` (integer): Maximum results (1-50).
- `radiusKm` (number): Search radius in kilometres.

### `list_dive_sites` (~129 tokens)

List Maldives dive sites

Named dive and snorkel sites with depth, skill level, current, best season and the species seen there. Coordinates appear only when the exact position has been verified. These are sites, not resort dive centres.

Input parameters:

- `atoll` (string): Atoll name, partial match — e.g. "Baa", "South Ari".
- `limit` (integer): Maximum results (1-100).
- `snorkelOnly` (boolean): Only sites suited to snorkelling.
- `species` (string): Marine species, partial match — e.g. "manta", "whale shark".

### `get_dive_site` (~43 tokens)

Get a dive site

Full record for one dive site, including its description, photo with credit, protected status and marine-welfare guidance.

Input parameters:

- `slug` (string, required): Dive site slug.

### `list_surf_breaks` (~88 tokens)

List Maldives surf breaks

Named surf breaks with a verified position: wave type, skill level, best season, hazards and the nearest property.

Input parameters:

- `atoll` (string): Atoll name, partial match — e.g. "North Male", "Laamu".
- `limit` (integer): Maximum results (1-50).
- `month` (string): Only breaks whose stated best season includes this month.

### `when_to_see` (~167 tokens)

When and where to see marine life

Where and in which months to see an animal in the Maldives: manta rays, whale sharks, turtles, hammerheads and others. Gives the species' season, the sites that list it with each site's stated season, a month-by-month count, and the nearest stays to each site by straight line. With a month, sites stated as out of season are left out and counted. Never promises a sighting.

Input parameters:

- `atoll` (string): Atoll name, partial match — e.g. "Baa", "South Ari".
- `limit` (integer): Maximum sites (1-30).
- `month` (string): The month of travel.
- `species` (string, required): The animal, e.g. "manta", "whale shark", "hawksbill turtle".

### `get_male_flights` (~227 tokens)

Flights on the Velana (Malé) airport board

Current arrivals and departures on the board at Velana International Airport, Malé: scheduled and estimated times in Maldives time, status, terminal. It covers only what the airport shows now, so it is not a timetable, gives no journey lengths, and cannot say whether a transfer connects. The feed block reports whether the board is live and when it last updated.

Input parameters:

- `airline` (string): Airline name or code, e.g. "Emirates", "EK".
- `category` (string): Domestic flights connect to the local airports.
- `direction` (string): Arrivals into Malé, departures from it, or both.
- `flightNumber` (string): e.g. "EK 652". Spacing does not matter.
- `includeFinished` (boolean): Also show flights that have landed, departed or been cancelled.
- `limit` (integer): Maximum flights (1-60).
- `place` (string): The other end of the flight: a city or airport code, e.g. "Dubai", "DXB", "Dharavandhoo".

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/travel-resortlife-esoru/api-mcp#diagnostics

## Score history

- 2026-11-05: 76
- 2026-11-04: 75
- 2026-11-03: 75
- 2026-11-02: 36
- 2026-11-01: 36
- 2026-10-31: 36
- 2026-10-30: 36
- 2026-10-29: 36
- 2026-10-28: 36
- 2026-10-27: 36
- 2026-10-26: 36
- 2026-10-25: 36
- 2026-10-24: 36

## Common questions

### What is the Esoru by resortlife.travel MCP server?

Esoru by resortlife.travel is an MCP server listed in the public MCP registry as travel.resortlife/esoru. Read-only Maldives resort research, comparisons and media for approved travel agencies. This page covers its hosted endpoint (https://resortlife.travel/api/mcp).

### Is the Esoru by resortlife.travel MCP server safe to use?

Esoru by resortlife.travel scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Esoru by resortlife.travel MCP server expose?

Esoru by resortlife.travel exposes 21 tools: search_resorts, resolve_resort, get_resort, list_villas, list_dining, and 16 more. Their descriptions and schemas cost roughly 2,022 tokens of context every time the server is loaded.

### Does the Esoru by resortlife.travel MCP server require authentication?

No. We connected to Esoru by resortlife.travel without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Esoru by resortlife.travel MCP server still maintained?

Esoru by resortlife.travel is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://resortlife.travel/api/mcp
- Authorisation metadata: https://resortlife.travel/.well-known/oauth-protected-resource/api/mcp
- Website: https://resortlife.travel/docs
- Changelog RSS feed: https://verifymcp.io/servers/travel-resortlife-esoru/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/travel-resortlife-esoru/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/travel-resortlife-esoru/api-mcp
