Skip to main content
Glama
EvKoh

plugin_rooftop-park4night-searcher_rooftop_tools_park4night_search

by EvKoh
README.md
# Rooftop park4night Searcher

**Unofficial.** An on-demand [park4night](https://park4night.com) search around a point, published as
one MCP tool on [TREK](https://github.com/liketrek/TREK)'s MCP server, for travellers with a rooftop
tent: campsites, farms and private pitches only, with rating, reviews, services and a link to each
place page. Not affiliated with or endorsed by park4night.

![screenshot](./docs/screenshot.png)

## What it does

- One tool, `rooftop_tools_park4night_search` (advertised as
  `plugin_rooftop-park4night-searcher_rooftop_tools_park4night_search`): give a point and a radius,
  get the nearby campsites (`C`), farms (`F`) and private pitches (`EP`). Motorhome areas, car parks
  and nature spots are never returned — an opened rooftop tent is camping there.
- Filters: kinds, dog accepted (the place lists dogs among its services), minimum rating, maximum
  price. park4night's list rarely carries a price: `priceHint` is read from the description when it
  quotes one, and the price filter only drops places whose quoted price is higher.
- Few fields, nothing else: name, kind, coordinates, distance, rating, number of reviews, services,
  price hint, link to the place page. Descriptions, photos and reviews stay on park4night.
- **Nothing is stored or cached.** Each call asks park4night and forgets the answer.
- **Rate-limited** in the plugin: one request every 3 seconds, at most 20 per hour.
- The same search is exposed to other plugins as `search` (`capabilities.provides`). It is not a
  dependency of [rooftop-planner-plugin](https://github.com/EvKoh/rooftop-planner-plugin): TREK has
  no optional dependencies, so the planner's `rooftop_tools_find_nights` tells the assistant to call
  this tool too when it is installed.

**Unofficial API, may change without notice.** The endpoint
(`GET https://park4night.com/api/places/around`, answer encoded in base64) is the one park4night's
own web map uses; it is undocumented. If it changes, the tool fails with a readable error instead
of returning wrong data.

Assistants are reminded in the tool description: never book, pay or message a host without the
user's explicit validation, and verify price, season, rooftop-tent acceptance and recent reviews on
the place page.

## Screenshots

`docs/screenshot.png` shows an example answer of the tool (fictional places): the plugin has no user
interface of its own, an assistant calls it.

## Permissions

| Permission | Why |
|---|---|
| `mcp:tools` | Publishes the `rooftop_tools_park4night_search` tool on TREK's MCP server. |
| `http:outbound:park4night.com` | The search itself: one request to park4night per call. Only the point, radius and language are sent — nothing about the trip or the user. |

No database permission: the plugin keeps nothing.

## Setup

1. Install it (Admin → Plugins) and approve its two permissions. There are no settings.
2. Give your MCP client the `plugins:use` scope and ask your assistant for campsites near a place.

### Development

```bash
npm install
npm test        # fictional answers, no network
npm run coverage
npm run sync-manifest
npm run validate && npm run pack
```

## Contributing

See [CONTRIBUTING.md](./CONTRIBUTING.md).

## License

MIT — see [LICENSE](./LICENSE). park4night data belongs to park4night.