Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Cuddlynest MCP

von mafedelahozVersion 0.2.1i★ –iLäuft auf deinem Computer
Name in der Registryio.github.mafedelahoz/cuddlynest-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Search CuddlyNest hotels and read rooms, prices, availability and cancellation policies

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Reisen, Karten & Wetter

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: CUDDLYNEST_SCRAPE_TIMEOUT_MS

Du brauchst

  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "cuddlynest": {
      "command": "npx",
      "args": [
        "-y",
        "cuddlynest-mcp"
      ],
      "env": {
        "CUDDLYNEST_SCRAPE_TIMEOUT_MS": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add cuddlynest --env CUDDLYNEST_SCRAPE_TIMEOUT_MS=your-value -- npx -y cuddlynest-mcp

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "cuddlynest": {
      "command": "npx",
      "args": [
        "-y",
        "cuddlynest-mcp"
      ],
      "env": {
        "CUDDLYNEST_SCRAPE_TIMEOUT_MS": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "cuddlynest": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "cuddlynest-mcp"
      ],
      "env": {
        "CUDDLYNEST_SCRAPE_TIMEOUT_MS": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • CUDDLYNEST_SCRAPE_TIMEOUT_MS env
    Max ms to wait for a listing page's rooms/prices to render (default 35000)

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 9. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto mafedelahoz bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Reisen, Karten & Wetteri

  • Mehr Sterne als 0 % der anderen 1753 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 32 % der anderen 1753 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 1753 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Cuddlynest MCP sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.2.1) kam vor 2 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: MCP Google Maps Places Scraper, ApexCharts, Tripomatic Trip Planner

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

MCP Google Maps Places Scraper

Search Google Maps and get one row per place: phone, website, address, rating, and hours.

von mambalabsdevAktualisiert heute

Läuft auf deinem Computer✓ mambabuilt.com

ApexCharts

Generates and validates configs for ApexCharts charts, grid, gantt, tree, sankey, stock and maps.

von apexchartsWachsend↓ 1876/Wo.Aktualisiert heute

Computer oder Cloud✓ apexcharts.com

Tripomatic Trip Planner

Plan trips with Tripomatic: search places, build day-by-day itineraries and edit your trips.

von tripomatic.comAktualisiert heute

Läuft in der Cloud✓ tripomatic.com

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

CuddlyNest Search & Listings — MCP Server

A Model Context Protocol (MCP) server for searching CuddlyNest hotels and retrieving listing details, including room options, prices, availability and cancellation policies.

Read-only by design: search and listing details only. No booking, no payment.

How it gets the data

This server reads that data the same way a visitor does: it opens the real, public listing page in a headless browser (Playwright/Chromium), lets *the page's own JavaScript* load the rooms, waits for them to render, and reads the result out of the DOM.

DataSource
Name, description, address, coordinates, star rating, amenities, imagesListing page schema.org ld+json + Open Graph tags (cuddlynest.ts)
Room title, partner, unit_price, remaining_rooms, price_breakdown, cancellation_policy (incl. .text), room_filtersRendered listing page DOM, via a React-fiber walk (scrape-listing.ts)
Destination → place candidates + top hotelsautosuggestion-2-0.cuddlynest.com (public, no auth)
Destination → broader city hotel list (~60–250)discovery-pages.cuddlynest.com/fetch_geopage/ (public); recovered from a hotel's product-detail breadcrumbs
product_id → name / city / breadcrumbsldp-2-0-product-details.cuddlynest.com/api/v1/productDetail (public)
product_id → canonical listing path/hotel/- server redirect
The DOM extraction, and how it breaks

extractRoomsFromDom() walks every price-shaped text node (COL$742,637), then walks up its React fiber tree to the nearest ancestor component whose props carry both unit_price and roomGroups. Those props are the room offer the page already rendered.

This is coupled to CuddlyNest's current frontend internals (a React prop shape, not a stable contract). If they ship a frontend change it can start returning zero rooms even though the public page still shows prices. The single place to update is the detector condition 'unit_price' in p && 'roomGroups' in p in scrape-listing.ts. npm run e2e:sansiraka is meant to catch that early (non-zero exit, not a silent empty result).

The fromPriceText ("From COL$…") field uses a looser heuristic and can come back null even on a healthy scrape; rooms.fromPrice (cheapest extracted unit) is the reliable figure.


Requirements

  • Node.js 18+
  • A Chromium build for Playwright. npm install runs playwright install chromium automatically (postinstall); if that is blocked in your environment, run npx playwright install chromium once by hand.

Installation

Published as cuddlynest-mcp on npm and listed in the official MCP registry as io.github.mafedelahoz/cuddlynest-mcp.

{

"mcpServers": { "cuddlynest": { "command": "npx", "args": ["-y", "cuddlynest-mcp"] } } }

Add "--ignore-robots-txt" to args to bypass robots.txt for the listing-page fetches. CUDDLYNEST_SCRAPE_TIMEOUT_MS (default 35000) caps how long the browser waits for prices to render.

An MCPB bundle (.mcpb) for Claude Desktop is attached to each GitHub release — note it does not bundle Chromium, so run npx playwright install chromium once after installing it that way.

Remote / Streamable HTTP

Default transport is stdio. For a hosted deployment, run it over Streamable HTTP:

node dist/index.js --http 8080      # or: MCP_TRANSPORT=http PORT=8080 node dist/index.js

POST http:// :8080/mcp — JSON-RPC (stateless, no sessions)

GET http:// :8080/health — liveness


Tools

Both tools are annotated readOnlyHint: true — they never write, book, or pay.

cuddlynest_search

Search a destination and the top hotels there, from public CuddlyNest APIs (autosuggestion-2-0 for the fuzzy match, discovery-pages geo pages for the broader city list). Prices are not here — pass a hotel's productId to cuddlynest_listing_details.

ParameterRequiredDescription
destinationyesCity / area string, e.g. "Cartagena, Colombia"
hotelsOnlynoOmit the places[] block (default false)
fullCityListnoAlso pull the geo-page city list (~60–250 hotels) when it can be resolved and verified against the destination — a few extra requests (default true)
checkin, checkout, adults, children, childAges, infants, rooms, currencynoechoed back for downstream use

Returns: { query, guests, places[], city, hotelSource, hotelCount, hotels[], note }. Each hotels[] entry: productId, name, url, slug, propertyType, starRating, guestRating (/10) + guestRatingText, reviewCount, and — from the geo page — images[], distanceFromCenterKm, featuredAmenities[]. hotelSource is "autosuggest" or "autosuggest+geopage". The list is top-matches scale, not full inventory — CuddlyNest's real results page (/sr/…) is bot-blocked and Disallowed in robots.txt.

cuddlynest_listing_details

Static basics and rooms/pricing for one hotel.

ParameterRequiredDescription
hotelyesListing URL or numeric product_id (trailing number in the URL)
checkin, checkoutfor pricingYYYY-MM-DD — required to read rooms/prices
adults, children, childAges, infants, roomsnodefaults 2 / 0 / – / 0 / 1
currencynoISO 4217, default USD
ignoreRobotsTextnoignore robots.txt for the static fetch

Returns: { productId, hotelUrl, guests, staticListing, staticError, rooms, roomsError, notes }. rooms.units[] is the extracted room offers, each with title, partnerName, unitPrice, currency, remainingRooms, guests, cancellationPolicyType, cancellationPolicyText, priceBreakdown, roomFilters. rooms also carries fromPrice, partnersSeen, listingUrl, scrapedAt.


Development

npm install          # installs deps + Chromium (postinstall)

npm run build # sync-version + tsc -> dist/ npm run typecheck npm test # offline: smoke test (stdio) + scraper tests npm run e2e:sansiraka # ONLINE: real scrape of cuddlynest.com, structural asserts npm run watch

Architecture

  • index.ts — MCP server, tool schemas, stdio and Streamable HTTP transports, robots.txt handling
  • cuddlynest.ts — hotel-URL parsing, static-listing ld+json parse, destination autosuggestion, result shaping
  • scrape-listing.ts — resolveListingPath, buildListingUrl, scrapeListing (headless browser), extractRoomsFromDom (React-fiber walk)
  • util.ts — generic object/JSON helpers

License

MIT — see LICENSE.

PopNx fragen