Biohotspot

Ocean data for any coast or sea, Australian marine park facts and Marxan reserve design.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
81%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,760Tokens (tool definitions)
~496 BTypical response size
Moderate attention impact (1.38% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "biohotspot": {
      "url": "https://biohotspot.ai4wa.com/mcp"
    }
  }
}

Remote endpoints

https://biohotspot.ai4wa.com/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢look_here(lon, lat, km)

List every Biohotspot map layer with data within `km` of a point on the sea (a place being studied, not the user's location): habitats, wildlife, human uses, protected areas and world ocean maps, with a few values from each. Read-only. Use it to learn what a place holds.

Input Schema

{
  "type": "object",
  "properties": {
    "lon": {
      "type": "number",
      "description": "Longitude of the place to look at, WGS84"
    },
    "lat": {
      "type": "number",
      "description": "Latitude of the place to look at, WGS84"
    },
    "km": {
      "type": "number",
      "description": "Radius in km (default 5)"
    }
  },
  "required": [
    "lon",
    "lat"
  ]
}
🟢look_in_area(polygon)

List every Biohotspot map layer with data inside a polygon on the sea, with a few values from each. Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "polygon": {
      "type": "object",
      "description": "A GeoJSON Polygon (WGS84)"
    }
  },
  "required": [
    "polygon"
  ]
}
🟢understand_area(polygon, lon, lat, radius_km)

Check an area against its protection targets: which habitats it holds, how much of each, what is already protected, and how far each habitat is from its target. Give a polygon, or a point and radius_km. Outside Biohotspot's local planning data the answer comes from world maps and is marked rough: true. Read-only; nothing is saved.

Input Schema

{
  "type": "object",
  "properties": {
    "polygon": {
      "type": "object",
      "description": "A GeoJSON Polygon (WGS84)"
    },
    "lon": {
      "type": "number",
      "description": "Longitude of the place to look at, WGS84"
    },
    "lat": {
      "type": "number",
      "description": "Latitude of the place to look at, WGS84"
    },
    "radius_km": {
      "type": "number"
    }
  }
}
🟢simulate(protect, target_pct, reps)

Run the Marxan optimiser on the example project's planning data (Exmouth Gulf, Western Australia only): 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 %. Takes a few seconds; returns the summary, each habitat's result and the best solution. Nothing is saved to your projects.

Input Schema

{
  "type": "object",
  "properties": {
    "protect": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "target_pct": {
      "type": "number"
    },
    "reps": {
      "type": "integer",
      "description": "Runs, 1-20 (default 5)"
    }
  }
}
🟢find_layers(query, limit)

Find Biohotspot map layers by words (e.g. 'seagrass', 'coral bleaching') among its 1,600+ world layers. Returns ids, names, categories and licences (25 by default); vector layers can then be read with get_features. Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "limit": {
      "type": "integer"
    }
  },
  "required": [
    "query"
  ]
}
🟢get_features(collection, bbox, limit)

Get a vector layer's features as GeoJSON from Biohotspot's OGC API, optionally inside a bounding box [west, south, east, north]; up to `limit` features (500 by default, 5,000 at most). Collection ids: find_layers ids, or exmouth_<dataset> for the example project's open layers. Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "collection": {
      "type": "string"
    },
    "bbox": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "minItems": 4,
      "maxItems": 4
    },
    "limit": {
      "type": "integer"
    }
  },
  "required": [
    "collection"
  ]
}
🟢get_marine_park(name, state)

Get the 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; parks under 10 km² or without enough open data have no page. Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Park name or part of it, e.g. 'Ningaloo'"
    },
    "state": {
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟢search_papers(query, limit)

Search Biohotspot's research library (more than 5,200 papers and reports on coasts and marine habitats) for the words; returns titles, years and DOI links where known (10 by default, 50 at most). Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "limit": {
      "type": "integer"
    }
  },
  "required": [
    "query"
  ]
}
🟢list_projects

List your Biohotspot projects and the ones shared with you: name, area, your role and how complete their data is. Read-only.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_project(project_id)

Get one of your projects: its area (GeoJSON), its data check (each data type covered, partial or missing) and your role. Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "integer"
    }
  },
  "required": [
    "project_id"
  ]
}
🟢list_project_data(project_id)

List the data a project's team added, with each file's status (receiving, checked, ready, failed). Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "integer"
    }
  },
  "required": [
    "project_id"
  ]
}
🟡add_project_data(project_id, url, title, source, year, ...)

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. Side effect: the file is downloaded, stored and added to the project, where its team can see it; nothing is deleted or overwritten. Biohotspot then checks it; follow its status with list_project_data and finish anything it asks for in the project's Uploads tab. Needs owner or editor rights.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "integer"
    },
    "url": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "source": {
      "type": "string",
      "description": "Who made it"
    },
    "year": {
      "type": "integer"
    },
    "licence": {
      "type": "string",
      "description": "cc-by, cc0, cc-by-nc, other-open, restricted or unsure"
    }
  },
  "required": [
    "project_id",
    "url"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools