Ocean data for any coast or sea, Australian marine park facts and Marxan reserve design.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add data to a project from a public download link (GeoPackage, zipped Shapefile, GeoJSON, KML, CSV with coordinates or GeoTIFF, up to 200 MB): your own model's output, a survey, a map. Biohotspot reads and checks it; follow its status with project_data and finish anything it asks for in the project's Uploads tab. Needs owner or editor rights.
Who made it
cc-by, cc0, cc-by-nc, other-open, restricted or unsure
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http biohotspot https://biohotspot.ai4wa.com/mcp
Add data to a project from a public download link (GeoPackage, zipped Shapefile, GeoJSON, KML, CSV with coordinates or GeoTIFF, up to 200 MB): your own model's output, a survey, a map. Biohotspot reads and checks it; follow its status with project_data and finish anything it asks for in the project's Uploads tab. Needs owner or editor rights.
| Argument | Type | Description |
|---|---|---|
| url* | string | |
| year | integer | |
| title | string | |
| source | string | Who made it |
| licence | string | cc-by, cc0, cc-by-nc, other-open, restricted or unsure |
| project_id* | integer |
{
"type": "object",
"required": [
"project_id",
"url"
],
"properties": {
"url": {
"type": "string"
},
"year": {
"type": "integer"
},
"title": {
"type": "string"
},
"source": {
"type": "string",
"description": "Who made it"
},
"licence": {
"type": "string",
"description": "cc-by, cc0, cc-by-nc, other-open, restricted or unsure"
},
"project_id": {
"type": "integer"
}
}
}Search Biohotspot's 1,600+ world layers by words (e.g. 'seagrass', 'coral bleaching'). Returns ids, names, categories and licences; vector layers can be read with get_features.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer"
},
"query": {
"type": "string"
}
}
}A layer's features as GeoJSON from the OGC API (the address QGIS uses), optionally inside a bounding box [west, south, east, north]. Collection ids: find_layers ids, or exmouth_<dataset> for the example project's open layers.
| Argument | Type | Description |
|---|---|---|
| bbox | array | |
| limit | integer | |
| collection* | string |
{
"type": "object",
"required": [
"collection"
],
"properties": {
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 4,
"minItems": 4
},
"limit": {
"type": "integer"
},
"collection": {
"type": "string"
}
}
}One project: its area (GeoJSON), its data check (each data type covered, partial or missing) and your role.
| Argument | Type | Description |
|---|---|---|
| project_id* | integer |
{
"type": "object",
"required": [
"project_id"
],
"properties": {
"project_id": {
"type": "integer"
}
}
}Your projects and the ones shared with you: name, area, your role and how complete their data is.
No arguments.
{
"type": "object",
"properties": {}
}Every map layer with data within `km` of a point: habitats, wildlife, human uses, protected areas and world ocean maps. Start here to learn what a place holds.
| Argument | Type | Description |
|---|---|---|
| km | number | Radius in km (default 5) |
| lat* | number | Latitude, WGS84 |
| lon* | number | Longitude, WGS84 |
{
"type": "object",
"required": [
"lon",
"lat"
],
"properties": {
"km": {
"type": "number",
"description": "Radius in km (default 5)"
},
"lat": {
"type": "number",
"description": "Latitude, WGS84"
},
"lon": {
"type": "number",
"description": "Longitude, WGS84"
}
}
}Every map layer with data inside a polygon.
| Argument | Type | Description |
|---|---|---|
| polygon* | object | A GeoJSON Polygon (WGS84) |
{
"type": "object",
"required": [
"polygon"
],
"properties": {
"polygon": {
"type": "object",
"description": "A GeoJSON Polygon (WGS84)"
}
}
}Facts about an Australian marine park from its Biohotspot page: area, IUCN categories and named zones (CAPAD 2024), habitats, blue carbon and pressures measured inside it, each with its source and licence, and the page's address. Give part of the park's name; `state` (wa, qld, nsw, vic, sa, tas, nt, com for Commonwealth waters) narrows it. Several matches return the list to choose from.
| Argument | Type | Description |
|---|---|---|
| name* | string | Park name or part of it, e.g. 'Ningaloo' |
| state | string |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Park name or part of it, e.g. 'Ningaloo'"
},
"state": {
"type": "string"
}
}
}The data a project's team added, with each file's status (receiving, checked, ready, failed).
| Argument | Type | Description |
|---|---|---|
| project_id* | integer |
{
"type": "object",
"required": [
"project_id"
],
"properties": {
"project_id": {
"type": "integer"
}
}
}Research papers and reports in Biohotspot's library that mention the words.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer"
},
"query": {
"type": "string"
}
}
}Run the optimiser (Marxan) on the planning data (the example project Exmouth Gulf): the cheapest set of planning squares that meets every habitat target. `protect` = planning-square ids always included (understand_area returns them as `pus`); `target_pct` = one target for every habitat, in %.
| Argument | Type | Description |
|---|---|---|
| reps | integer | Runs, 1-20 (default 5) |
| protect | array | |
| target_pct | number |
{
"type": "object",
"properties": {
"reps": {
"type": "integer",
"description": "Runs, 1-20 (default 5)"
},
"protect": {
"type": "array",
"items": {
"type": "integer"
}
},
"target_pct": {
"type": "number"
}
}
}Which habitats an area holds, how much of each, and how far that goes toward each habitat's protection target. Give a polygon, or a point and radius. Outside Biohotspot's local planning data the answer comes from world maps (rough: true).
| Argument | Type | Description |
|---|---|---|
| lat | number | Latitude, WGS84 |
| lon | number | Longitude, WGS84 |
| polygon | object | A GeoJSON Polygon (WGS84) |
| radius_km | number |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"description": "Latitude, WGS84"
},
"lon": {
"type": "number",
"description": "Longitude, WGS84"
},
"polygon": {
"type": "object",
"description": "A GeoJSON Polygon (WGS84)"
},
"radius_km": {
"type": "number"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 30, 2026.