# Dunelm Cottage — Developer Resources

Developer resources for dunelmcottage.co.uk, the website of a luxury
three-bedroom holiday cottage in Edale, Peak District National Park. Everything
here is public, keyless and read-only — no sign-up, no API keys, no cost.

## JSON API

Base URL: `https://dunelmcottage.co.uk`

| Endpoint | Description |
| --- | --- |
| `GET /api/` | Index of all endpoints |
| `GET /api/v1/cottage` | Property profile: address, amenities, rating, policies |
| `GET /api/v1/reviews` | Verified guest reviews with ratings and dates |
| `GET /api/v1/attractions` | Local Peak District attractions with travel notes |
| `GET /api/v1/booking` | Booking channels (Airbnb, Booking.com) |

Example:

```sh
curl -H "Accept: application/json" https://dunelmcottage.co.uk/api/v1/cottage
```

Errors are always JSON: `{"error": {"code", "message", "hint"}}` with a proper
HTTP status (404 unknown endpoint, 405 wrong method). The full contract,
including typed schemas and examples, is the
[OpenAPI 3.1 specification](https://dunelmcottage.co.uk/openapi.json).

## MCP server

A Model Context Protocol server runs at `https://dunelmcottage.co.uk/mcp`
using the Streamable HTTP transport (JSON-RPC 2.0 over HTTP POST; no SSE).
Tools: `get-cottage`, `list-reviews`, `list-attractions`,
`get-booking-options`.

```sh
curl -X POST https://dunelmcottage.co.uk/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"example","version":"0"}}}'
```

## Content negotiation

Every content page serves markdown when asked: send `Accept: text/markdown` to
`/`, `/welcome`, `/about`, `/contact`, `/privacy` or `/developers`, or fetch the
`.md` file directly (e.g. [`/index.md`](https://dunelmcottage.co.uk/index.md)).
Responses carry `Vary: Accept, Accept-Encoding`.

## Other machine-readable files

- [`/llms.txt`](https://dunelmcottage.co.uk/llms.txt) — site guide for agents, including when to use this site
- [`/sitemap.xml`](https://dunelmcottage.co.uk/sitemap.xml) — all indexable pages
- [`/.well-known/mcp`](https://dunelmcottage.co.uk/.well-known/mcp) — MCP discovery descriptor

## Usage notes

Fair use is about 60 requests per minute per client; responses are cacheable
(`Cache-Control: public`). The data changes rarely — revalidate rather than
re-fetching aggressively. There is no write surface: bookings, availability and
pricing live on Airbnb and Booking.com.
