---
title: "glampings.co for AI agents: Markdown, API and MCP"
description: "How to read, cite and query glampings.co from an AI assistant or agent: Markdown versions in English and Spanish, llms.txt, a public read-only API and an MCP server."
url: "https://glampings.co/en/agents"
markdown_url: "https://glampings.co/en/agents.md"
tipo_de_pagina: "agentes"
idioma: "en"
actualizado: "2026-10-29"
---

# glampings.co for AI agents: Markdown, API and MCP

> Markdown version of <https://glampings.co/en/agents>, a page on glampings.co: a directory of glamping and unique stays in Colombia. glampings.co doesn't sell nights or charge commission; guests book directly with each stay.
> For AI agents: [llms.txt](https://glampings.co/en/llms.txt), public read-only API at https://glampings.co/api/v1 and MCP server at https://glampings.co/mcp (English with lang=en). Routes and rules: https://glampings.co/en/agents.md

glampings.co is a directory of glamping stays and unique lodging in Colombia, run by Glampings.com. The site is in Spanish at the root and in English under /en. This guide explains how an AI assistant or agent can read, cite and query it. Versión en español: https://glampings.co/agentes.md

## Start here

One GET is enough to answer with glampings.co data, with no key or sign-up. The question goes in the URL and the answer is JSON:

- Domes with a hot tub near Bogotá, with the question in plain English: https://glampings.co/api/v1/glampings?q=dome+with+jacuzzi+near+bogota&lang=en
- Pet-friendly glamping in Antioquia: https://glampings.co/api/v1/glampings?q=glamping+pet+friendly+en+antioquia&lang=en
- The same stays a glampings.co page lists: https://glampings.co/api/v1/glampings?pagina=/en/glamping-with-jacuzzi/near-bogota&lang=en
- Full listing of one stay: https://glampings.co/api/v1/glampings/ecolodge-el-almejal?lang=en

**Language.** The API and the MCP server answer in Spanish by default. Add `lang=en` to any API URL, or the argument `"lang": "en"` to any MCP tool, and labels, texts, `fuente`, notices, error messages and URLs (English pages and Markdown under /en) come in English. Keys (`nombre`, `tipo`, `precio_desde`…) and filter values (Spanish slugs such as `tipo=domos`) stay the same, so clients don't break. For reading, the English Markdown versions (for example https://glampings.co/en/index.md) and [/en/llms.txt](https://glampings.co/en/llms.txt) are in English too.

How to cite: every response has `fuente.cita_sugerida`, shaped like "Source: glampings.co, {page title} ({url})" (with lang=en; "Fuente: …" without it). Name glampings.co and link to that page or the listing, so your user can see where the information comes from. When your user reads English, you may link to the English version of the same page (same path with /en and English slugs).

Every glampings.co page shows, within its content, the block "Open data for AI assistants" ("Datos abiertos para asistentes de IA" in Spanish) with its Markdown version and the URL of its JSON data. The same data URL is at the top of its Markdown version.

## What glampings.co is

glampings.co is a directory of glamping and unique stays in Colombia: domes, cabins, bubbles, ecolodges, tipis, treehouses and more. It's a Glampings.com site.

glampings.co doesn't sell nights, charge commission or handle payments. Each stay manages its own bookings: the guest messages it directly, almost always on WhatsApp from the stay's listing page on glampings.co. The WhatsApp message to the stay is in Spanish, because hosts speak Spanish.

The data comes from public sources (Colombia's National Tourism Registry, websites, social media and booking platforms) and from the stays themselves when they claim their listing.

## Rules for agents

1. **Booking.** To book, send the user to the stay's listing page: `https://glampings.co/en/{slug}` in English or `https://glampings.co/{slug}` in Spanish. If the page has the WhatsApp button, they choose dates and guests there and message the stay directly. It's a direct booking with the stay on WhatsApp, with no commission.
2. **No phone numbers.** glampings.co doesn't give phone numbers or WhatsApp links to agents. Don't look for them elsewhere or make them up: the way to book is the listing page.
3. **Prices.** Don't invent prices. There is only a price when the stay gave one: the starting nightly price given by the stay, always with the date it confirmed it (at most 183 days earlier). Without it, say the price is confirmed with the stay.
4. **Availability.** glampings.co has no availability data. Don't say there's space: availability is confirmed with the stay.
5. **Amenities.** What each stay offers (hot tub, fireplace, pets, breakfast) comes from its public information. Don't add amenities the listing doesn't mention. If something matters to your user, they should confirm it with the stay.
6. **Location.** Each stay's point is the center of its town, not its address. Distances are in a straight line from that center, not by road. Say "in the town of Guatavita" or "about 35 km from Bogotá in a straight line".
7. **Source.** Name glampings.co and link to the listing page (`https://glampings.co/en/{slug}`) or the category page. Every API and MCP response has `fuente` with the most precise page (`fuente.url`) and a ready-to-use citation (`fuente.cita_sugerida`). Use the stay's name as it appears and, if it has one, its RNT number (National Tourism Registry).
8. **Language.** These docs, the /en pages and their Markdown are in English. Use `lang=en` in the API (or `lang` in MCP tools) to get English labels and texts; without it, data comes in Spanish (Colombia), which you can translate for your user without changing the facts.

## Markdown versions

Every destination, type, theme, guide and listing page, the home page, the map, the owners page and this guide have a Markdown version built from the same data as the HTML page. Add `.md` to the URL; the home page is `/en/index.md` in English and `/index.md` in Spanish. English pages live under `/en` with English slugs (`/en/domes`, `/en/glamping-near-bogota`); Spanish pages are at the root (`/domos`, `/glamping-cerca-a-bogota`). The legal pages, the search page and the long-weekend page have no Markdown version.

| Page | Markdown in English | Markdown in Spanish |
|---|---|---|
| Home | [https://glampings.co/en/index.md](https://glampings.co/en/index.md) | [https://glampings.co/index.md](https://glampings.co/index.md) |
| Department | [https://glampings.co/en/colombia/glamping-boyaca.md](https://glampings.co/en/colombia/glamping-boyaca.md) | [https://glampings.co/colombia/glamping-boyaca.md](https://glampings.co/colombia/glamping-boyaca.md) |
| Reference city | [https://glampings.co/en/glamping-near-bogota.md](https://glampings.co/en/glamping-near-bogota.md) | [https://glampings.co/glamping-cerca-a-bogota.md](https://glampings.co/glamping-cerca-a-bogota.md) |
| Type of stay | [https://glampings.co/en/domes.md](https://glampings.co/en/domes.md) | [https://glampings.co/domos.md](https://glampings.co/domos.md) |
| Theme | [https://glampings.co/en/glamping-with-jacuzzi.md](https://glampings.co/en/glamping-with-jacuzzi.md) | [https://glampings.co/glamping-con-jacuzzi.md](https://glampings.co/glamping-con-jacuzzi.md) |
| Listing of a stay | [https://glampings.co/en/ecolodge-el-almejal.md](https://glampings.co/en/ecolodge-el-almejal.md) | [https://glampings.co/ecolodge-el-almejal.md](https://glampings.co/ecolodge-el-almejal.md) |
| This guide | [https://glampings.co/en/agents.md](https://glampings.co/en/agents.md) | [https://glampings.co/agentes.md](https://glampings.co/agentes.md) |

- **Content negotiation.** A request to the page URL with the header `Accept: text/markdown` gets the same Markdown version, in the language of the URL.
- **Link in the HTML.** Every page with a Markdown version links to it in the `<head>`: `<link rel="alternate" type="text/markdown" href="https://glampings.co/en/{path}.md">` on English pages.
- **Front matter.** Every document starts with YAML. The keys are the same in both languages (Spanish names): `title`, `description`, `url` (the page to cite), `markdown_url`, `tipo_de_pagina`, `idioma` (`en` or `es-CO`) and `actualizado` (last update). Listings add `slug`, `tipo`, `municipio`, `departamento`, `rnt`, `reserva` (`whatsapp`, `web` or `consulta`), `verificado_por_propietario` and, only if the stay gave a recent price, `precio_desde_cop` and `precio_confirmado`.
- **Headers.** `Content-Type: text/markdown; charset=utf-8`, `Link: <https://glampings.co/en/{path}>; rel="canonical"` and `X-Robots-Tag: noindex` when the HTML page isn't indexed.
- **Status codes.** Unknown path: 404. Listing removed from the site: 410. Listing that moved: 301 to the new `.md`.

```bash
curl https://glampings.co/en/glamping-near-bogota.md
curl -H "Accept: text/markdown" https://glampings.co/en/colombia/glamping-boyaca
```

## llms.txt and full catalog

- [/en/llms.txt](https://glampings.co/en/llms.txt): short index of the site in English with destinations, types of stay, themes and guides, each with its number of stays. Spanish: [/llms.txt](https://glampings.co/llms.txt).
- [/en/llms-full.txt](https://glampings.co/en/llms-full.txt): every listing in the published catalog grouped by department, one line per listing, plus every category page. Spanish: [/llms-full.txt](https://glampings.co/llms-full.txt).

## Public API (JSON)

Base: `https://glampings.co/api/v1`. Read-only, no key. Open CORS (`Access-Control-Allow-Origin: *`). JSON responses with Spanish keys, cached for 5 minutes. **Language:** `lang` (`es` by default, or `en`) works on every endpoint; with `lang=en` labels, texts, `fuente`, notices, error messages and URLs are in English, while keys and filter values don't change. An invalid `lang` gives 400 with the valid values. Limit: 60 requests per minute per IP; above that you get 429 with `Retry-After`. Errors look like `{"error": {"code": "...", "message": "...", "valid_values": [...]}}`, with the valid values when a filter isn't recognized.

OpenAPI 3.1 specification: [https://glampings.co/openapi.json](https://glampings.co/openapi.json) (also at `/api/v1/openapi.json`).

| Method and path | Returns |
|---|---|
| `GET /api/v1` | Index: endpoints, filters, examples and rules |
| `GET /api/v1/glampings` | Search with filters and pagination |
| `GET /api/v1/glampings/{slug}` | Full listing (also accepts the listing URL); 404 if it doesn't exist, 410 if it was removed |
| `GET /api/v1/destinos` | Departments, reference cities, regions and towns with their number of glamping stays |
| `GET /api/v1/categorias` | Types, themes and features with their slug (filter value) |
| `GET /api/v1/openapi.json` | OpenAPI 3.1 specification |

### Free-text question: `q`

`q` takes your user's question in English or Spanish: https://glampings.co/api/v1/glampings?q=dome+with+jacuzzi+near+bogota&lang=en and https://glampings.co/api/v1/glampings?q=glamping+pet+friendly+en+antioquia&lang=en are two examples. The API turns it into the filters below without AI, always in the same way: destination, department or town, a city with "near", "cerca de" or "cerca a", the type (dome, cabin, bubble), the theme (jacuzzi, "pet friendly", pets, dog) and features. Accents, capitals, singular or plural don't matter. The response has `interpretacion` (the filters it applied) and `no_entendido` (the words it ignored): if something important ended up in `no_entendido`, rephrase the question or use the filters. An explicit filter in the URL wins over what `q` says.

### The stays of a page: `pagina`

`pagina` takes the path of a glampings.co page, English or Spanish (`/colombia` or any destination, reference city, type or theme page): https://glampings.co/api/v1/glampings?pagina=/en/glamping-with-jacuzzi/near-bogota&lang=en returns exactly the stays that page lists, in the same order and without the ones removed from the site; each one says whether it is `indexable`. The English path `/en/glamping-with-jacuzzi/near-bogota` and the Spanish path `/glamping-con-jacuzzi/cerca-a-bogota` give the same stays. Paginate with `limit` and `offset`. An unknown path, or one that isn't a category page, gives 404 with valid examples; combining `pagina` with filters that don't fit gives 400 with an explanation.

### What every response contains

- `fuente`, in every response (index, search, listing, destinations and categories) and in the MCP server's `structuredContent`: `sitio` (glampings.co), `url` (the most precise glampings.co page for that response; the English page with lang=en) and `cita_sugerida`, shaped like "Source: glampings.co, {page title} ({url})" (with lang=en; "Fuente: …" without it).
- `pagina_recomendada`, in search: the same page as `fuente.url`. Send your user there to see all the options.
- **Compact results.** Each search result is a short summary of the listing, with the essentials to choose, `url` (the listing page) and `url_markdown` (English page and Markdown with lang=en). The full listing is at `GET /api/v1/glampings/{slug}`.

### Search filters

| Parameter | Use |
|---|---|
| `q` | Free-text question in English or Spanish, e.g. "dome with jacuzzi near bogota" or "pet friendly glamping in antioquia". Translated into the filters below without AI; the response shows what was applied in interpretacion and the words it did not understand in no_entendido. The other parameters take priority over q. |
| `pagina` | Path of a glampings.co category page, in its Spanish form, e.g. "/glamping-con-jacuzzi/cerca-a-bogota" (English page: /en/glamping-with-jacuzzi/near-bogota), "/colombia/glamping-boyaca" or "/colombia": returns the same stays, in the same order, as that page (including non-indexable listings, with indexable = false). Only combines with limit and offset. |
| `destino` | Free text as in the glampings.co search box: town, area, department, region or landscape (e.g. "Guatavita", "Eje Cafetero", "Cañón del Chicamocha") or a city ("Bogotá" = Bogotá and surroundings). If it is not recognized, the text is matched against name, town, area and department. |
| `departamento` | Department name or slug, e.g. "Cundinamarca" or "boyaca". |
| `municipio` | Town (municipio) name, e.g. "Guatavita". Combine it with departamento if the name exists more than once. |
| `cerca_a` | Reference city (slug or name): bogota, medellin, cali, bucaramanga, pereira, manizales, armenia, villavicencio, ibague, santa-marta, cartagena, tunja, popayan. Without max_km: within the radius glampings.co uses for that city. Sorted by distance. |
| `max_km` | Maximum distance in km, in a straight line from the center of the stay's town to the cerca_a city (1 to 500). Requires cerca_a. |
| `tipo` | One or more types of stay, comma-separated; matching one is enough: domos, burbujas, tipis, casas-del-arbol, cabanas-alpinas, tiny-houses, yurtas, carpas-safari, contenedores, casas-hobbit, iglus, malocas, palafitos, casas-flotantes, capsulas, cuevas, chalets, cabanas, ecolodges, glamping. |
| `tema` | One or more themes, comma-separated; all must match: con-jacuzzi, para-parejas, con-vista, con-chimenea, con-piscina, junto-al-rio, en-el-lago, en-la-playa, pet-friendly. |
| `caracteristica` | One or more features, comma-separated; all must match: jacuzzi, piscina, mascotas, parejas, vista, lago, playa, rio, chimenea, familias, sauna-spa, malla-catamaran, desayuno. |
| `mascotas` | true = only stays that welcome pets (pet-friendly theme). |
| `solo_whatsapp` | true = only stays that take direct bookings on WhatsApp from the listing page. |
| `con_precio` | true = only stays with a starting price given by the stay itself. |
| `limit` | Results per page, 1 to 50 (default 10). |
| `offset` | Results to skip, for pagination (from 0). |

Each page returns 10 results (at most 50); for the next page open `siguiente_url` (the same search with `offset` = `siguiente_offset`). With filters or `q`, search only returns listings from the published catalog; if a glampings.co page shows more matching stays, `aviso` has that page's URL. The listing by slug works for any listing still on the site and says whether it is `indexable`.

The full listing has `nombre` (name), `tipo` (type), `ubicacion` (town, department and `punto`, the town center), `cerca_de` (straight-line km), `temas`, `caracteristicas`, `rnt`, `reserva` (`metodo` and `url_ficha`), `enlaces` (website, Instagram or a listing on another platform, if the page shows them), `precio_desde` (or `null`), `verificado_por_propietario`, `url` and `url_markdown`.

```bash
# Domes with a hot tub near Bogotá, with the question in plain English
curl "https://glampings.co/api/v1/glampings?q=dome+with+jacuzzi+near+bogota&lang=en"

# The same stays a glampings.co page lists
curl "https://glampings.co/api/v1/glampings?pagina=/en/glamping-with-jacuzzi/near-bogota&lang=en"

# With filters: domes within 60 km of Medellín, in a straight line
curl "https://glampings.co/api/v1/glampings?cerca_a=medellin&max_km=60&tipo=domos&lang=en"

# Full listing of one stay
curl "https://glampings.co/api/v1/glampings/ecolodge-el-almejal?lang=en"
```

## MCP server

- **URL:** `https://glampings.co/mcp`
- **Transport:** stateless Streamable HTTP. Send each JSON-RPC 2.0 message with POST; the response is JSON, with no SSE and no sessions (no `Mcp-Session-Id` needed). A GET returns 405 with an explanation.
- **Protocol:** versions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05.
- **Access:** no key, open CORS, 120 requests per minute per IP.
- **Data:** read-only, with the same sources and rules as the API. Tool names and argument names are in Spanish.
- **Language:** every tool takes the optional argument `lang` (`"es"` by default, or `"en"`), with the same English output as the API with `lang=en`.

| Tool | Arguments | What it does |
|---|---|---|
| `buscar_glampings` | `consulta`: the question in free text, like `q` in the API. `pagina`: path of a glampings.co page, like in the API. Plus the same filters as the API: `destino`, `departamento`, `municipio`, `cerca_a`, `max_km`, `tipo`, `tema`, `caracteristica`, `mascotas`, `solo_whatsapp`, `con_precio`, `limit` and `offset`. `tipo`, `tema` and `caracteristica` accept a list. `lang`: response language (es or en). All optional. | Searches stays. Each result has `url`: the listing page, where the user books. The response has `fuente` with the suggested citation and, with `consulta`, `interpretacion` and `no_entendido`. |
| `obtener_glamping` | `slug` (required): slug or URL of the listing. `lang` (optional). | Full listing of one stay. |
| `listar_destinos` | Only `lang` (optional). | Departments, reference cities (values of `cerca_a`), regions and towns with their number of glamping stays. |
| `listar_categorias` | Only `lang` (optional). | Types, themes and features with their slug (filter value) and number of glamping stays. |
| `como_reservar` | `slug` (optional). `lang` (optional). | How booking works through glampings.co and, with a slug, the method and links of that listing. Never returns phone numbers. |
| `search` | `query` (required): the question in free text. `lang` (optional). | The shape ChatGPT connectors expect: `results` with `id`, `title` and `url`. The `id` is a listing slug or the path of a glampings.co page. If nothing in the question is understood, `results` is empty; `structuredContent` also has `interpretacion`, `no_entendido` and `aviso`. |
| `fetch` | `id` (required): an `id` from `search`, i.e. a listing slug or a page path. `lang` (optional). | Returns `id`, `title`, `text` (the content to read and cite), `url` and `metadata`. |

Example: "domes with a hot tub near Bogotá" is `buscar_glampings` with `{"consulta": "dome with jacuzzi near bogota", "lang": "en"}`, or with filters `{"cerca_a": "bogota", "tipo": ["domos"], "tema": ["con-jacuzzi"], "lang": "en"}`. The stays of a page: `{"pagina": "/en/glamping-with-jacuzzi/near-bogota", "lang": "en"}`.

`search` and `fetch` have the shape ChatGPT connectors and other clients that only search and read documents expect. Every response has `fuente` in `structuredContent`, with the same `cita_sugerida` as the API.

### Connect the server

Claude Code:

```bash
claude mcp add --transport http glampings https://glampings.co/mcp
```

Claude (web and desktop): in Settings › Connectors, add a custom connector with the URL `https://glampings.co/mcp`. If your Claude Desktop only accepts local servers in `claude_desktop_config.json`, use the `mcp-remote` bridge:

```json
{
  "mcpServers": {
    "glampings": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://glampings.co/mcp"]
    }
  }
}
```

Other clients (Cursor, VS Code, Windsurf and similar), generic configuration:

```json
{
  "mcpServers": {
    "glampings": {
      "type": "http",
      "url": "https://glampings.co/mcp"
    }
  }
}
```

Direct test with curl:

```bash
curl -s https://glampings.co/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"buscar_glampings","arguments":{"consulta":"dome with jacuzzi near bogota","limit":5,"lang":"en"}}}'
```

## Crawling and measurement

- `robots.txt` allows crawling the pages, their `.md` versions (English and Spanish), `/api/v1`, `/mcp`, `/llms.txt`, `/en/llms.txt`, the full catalogs and `/openapi.json`. `/md/` is an internal route: use the public `.md` URLs.
- We count how often the Markdown versions, the API, the MCP server and llms.txt are requested, with the agent's name from its user agent. We don't store IP addresses or search text.

## For owners

Do you run a glamping site in Colombia? On [For owners](https://glampings.co/en/for-owners.md) you claim your stay's listing for free, fix its details, add photos and give your price. Guests message you directly on WhatsApp, with no commission.
