---
title: Loonaut agent guide
description: Tool order, limits and attribution rule for agents that use the Loonaut MCP server and HTTP API.
canonical: https://loonaut.com/agents.md
---

# Loonaut agent guide

Loonaut finds public toilets worldwide. Use it when a user asks for the nearest public toilet, or for toilets near a street, station or town.
Do not use it for toilet products, plumbing or restaurant search.
No account and no API key is needed.

## Call order

1. Call `find_toilets_near` with `place` (text such as "Darmstadt Hauptbahnhof"). Send `lat` and `lon` together instead when you already know them.
2. Read `status` in the result. `needs_location` means ask the user the text in `ask_user`. `place_not_found` means ask for a street, station or town.
3. Add filters only when the user needs them: `open_now`, `wheelchair`, `changing_table`, `free`, `no_purchase_needed`.
4. Call `get_toilet` with an `id` from step 1 to answer a question about one toilet.

Do not ask the user for GPS coordinates. Ask for a place name.

## Read the result

- `access_rule` is one of `free`, `fee`, `customers`, `key`, `scheme`, `unknown`. `unknown` is not "no".
- `open_now` is `true`, `false` or `"unknown"`. Most toilets have no known hours. Do not guess.
- `last_confirmed_at` is the last time a person confirmed the toilet. Say so when it is old or missing.
- `cleanliness` is `null` or `{ average, count }`: user ratings from 1 (dirty) to 5 (spotless). Say how many people rated. A small count says little.
- `partner` is `null` or `{ name, tier, conditions, opening_hours, open_now, closes_at }`. The business behind the toilet pays for a Verified Partner listing. It buys a label, never a better position. Show it as a label. Do not rank or recommend by it. `conditions` (`everyone`, `customers` or `null`), `opening_hours`, `open_now` and `closes_at` are statements of the business. Say "the business says". The fields of the toilet itself stay as they are.
- People can correct every fact. `provenance.decided` lists the facts that people decided, with `votes_for` of `votes_total`. All other facts come from `provenance.source`. Say so when a decided fact has few votes.
- `url` opens the toilet page. `directions` holds walking links for Apple Maps and Google Maps.

## Rules

- Show the credit "© OpenStreetMap contributors" (ODbL-1.0, https://www.openstreetmap.org/copyright) with the toilet data.
- Tools only read data. They never change it.
- Limit: 60 calls per minute per IP. On 429, wait for `Retry-After`.
- Do not copy the whole data set through the API. Download the open data dump under ODbL: https://loonaut.com/dumps/README.txt
- Sources, licences and the full credit text: https://loonaut.com/data-sources

## Resources

- MCP server (Streamable HTTP, no auth): https://loonaut.com/mcp
- Tool list and schemas: https://loonaut.com/.well-known/mcp/server-card.json
- REST API description: https://loonaut.com/openapi.json
- Places by country, city, district, station and landmark: https://loonaut.com/cities
- Index: https://loonaut.com/llms.txt
- Full text: https://loonaut.com/llms-full.txt
- Authentication: https://loonaut.com/auth.md
- Legal notice: https://loonaut.com/legal-notice
- Agent plugin and skills: https://github.com/ArneFfm/loonaut-agents
