# Volcanoes

> Explore volcanoes worldwide — by elevation, type, and last eruption. Sourced and kept in sync from Wikipedia.

This site is agent-friendly: the full dataset is queryable by any attribute via a public JSON API (no API key) and an MCP server. Data is sourced from Wikipedia (CC BY-SA).

## Data
- 943 volcanoes across 20 countries.

## API (no key, rate-limited per IP)
- Search volcanoes by any attribute: `GET http://volcanoes.tello.app/api/v1/locations?<filters>`
- A single volcano: `GET http://volcanoes.tello.app/api/v1/locations/{slug}`
- Countries with counts: `GET http://volcanoes.tello.app/api/v1/countries`
- Machine-readable filter schema (every queryable attribute): `GET http://volcanoes.tello.app/api/v1/schema`
- OpenAPI 3 spec: `GET http://volcanoes.tello.app/openapi.json`

## MCP server
- Endpoint: `http://volcanoes.tello.app/mcp` (Streamable HTTP).
- Tools: `search`, `get`, `list_countries`, `describe_filters`.

## Queryable attributes
- `search` — Name search
- `country` — Country
- `elevation_m` — Elevation (range: `elevation_m_min`, `elevation_m_max` m)
- `type` — Type (one of: Stratovolcano, Shield volcano, Caldera, Cinder cone, Lava dome, Complex volcano, Submarine volcano, Subglacial volcano, Fissure vent, Volcanic field, Somma volcano, Pyroclastic shield)
- `last_eruption` — Last eruption
- `has_image` — Has photo (1 / true)
- `has_coordinates` — Has coordinates (1 / true)
- `sort` — one of: elevation_desc, name, newest

## Examples
- Find volcanoes in Norway → `GET http://volcanoes.tello.app/api/v1/locations?country=norway`
- volcanoes of type "Stratovolcano" → `GET http://volcanoes.tello.app/api/v1/locations?type=Stratovolcano`
- volcanoes with Elevation over 100 m → `GET http://volcanoes.tello.app/api/v1/locations?elevation_m_min=100`

## Per-entry Markdown
Append `.md` to any volcano URL (e.g. `http://volcanoes.tello.app/location/<slug>.md`), or send `Accept: text/markdown`, to get clean Markdown instead of HTML.
