Skip to main content
Glama

Find public toilets near a place

find_toilets_near
Read-onlyIdempotent

Use this when the user asks for the nearest public toilet, or for toilets near a street, station or town. Returns up to 20 toilets sorted by distance, with walk time, access rule, fee, open now, closing time, wheelchair access and a map link. Do not use it for toilet products or plumbing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoLatitude, WGS84. Send with lon, if you already know the coordinates.
lonNoLongitude, WGS84.
freeNoOnly toilets known to be free of charge.
limitNo
placeNoStreet, station, landmark or town from the user message, for example Darmstadt Hauptbahnhof.
countryNoISO 3166-1 alpha-2 code. Narrows the place lookup.
open_nowNoDrop toilets that are closed now. Toilets with unknown hours stay and show open_now unknown.
wheelchairNoOnly wheelchair-accessible toilets.
changing_tableNoOnly toilets with a changing table.
no_purchase_neededNoOnly toilets that need no purchase.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioral content: a cap of 20 results, distance sorting, and the fields returned (walk time, fee, open now, closing time, wheelchair access, map link). Slight redundancy since an output schema exists, but this is genuine disclosure beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the trigger, then the result shape, then the exclusion. No filler, and the negative guidance is short and high-value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 90% parameter coverage, the description need not restate return fields, and the essential trigger/scope is covered. Missing only edge-case guidance (e.g., what happens with no location argument, or which of place vs lat/lon wins), which is minor at this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 90%, so the schema already explains lat/lon, place, country and every filter flag; baseline 3 applies. The description adds only an implicit notion of place-based search and says nothing about parameter interactions (lat/lon vs place, how limit and the 20-cap relate).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource plus scope: 'nearest public toilet' or 'toilets near a street, station or town.' It even guards against a semantic false positive ('toilet products or plumbing'). It does not, however, differentiate itself from the sibling get_toilet, which an agent must otherwise infer from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Trigger condition is stated explicitly ('Use this when the user asks for the nearest public toilet, or for toilets near a street, station or town') and paired with an explicit exclusion ('Do not use it for toilet products or plumbing'). Only gap is that it doesn't route to get_toilet for a single known toilet, but the when/when-not framing is unusually complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.