Koskamo

Biohotspot MCP

Biohotspot is a free web app for marine planning that puts ocean data for any coast or sea on one map. The MCP server allows AI assistants to access marine data, simulate protection scenarios using Marxan, and generate reports for marine protected area planning.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Biohotspot MCP logo, by Oceanwise AustraliaCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Oceanwise Australia
You need:sign in to Biohotspotsend an API key from https://biohotspot.ai4wa.com/access#keys
MCP endpoint (Streamable HTTP)
https://biohotspot.ai4wa.com/mcp
Vendor documentation

What you can do with it

  • Look up marine data for a specific area
  • Simulate protection scenarios using Marxan
  • Get details on marine protected areas
  • Search research papers and reports

Source and maintenance

Community listingRegistry 0.3.0

Protocol and capabilities

Server
biohotspot 0.4.0
MCP protocol
2025-06-18
Tools
12 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Biohotspot: ocean data for any coast or sea, and marine protection planning. Look at a place (look_here), understand an area's habitats against their targets (understand_area), simulate protection options (simulate, on projects with planning data), find layers and their features, get an Australian marine park's facts (get_marine_park), search papers, and work with the signed-in user's projects. add_project_data is the only tool that changes anything: it downloads a file from a public link the user gives and adds it to one of their projects.

Tools

12 advertised

look_here — Look at a place
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

look_here input schema
{
  "type": "object",
  "required": [
    "lon",
    "lat"
  ],
  "properties": {
    "km": {
      "type": "number",
      "description": "Radius in km (default 5)"
    },
    "lat": {
      "type": "number",
      "description": "Latitude of the place to look at, WGS84"
    },
    "lon": {
      "type": "number",
      "description": "Longitude of the place to look at, WGS84"
    }
  }
}
look_here annotations
{
  "title": "Look at a place",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
look_in_area — Look inside an area
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

look_in_area input schema
{
  "type": "object",
  "required": [
    "polygon"
  ],
  "properties": {
    "polygon": {
      "type": "object",
      "description": "A GeoJSON Polygon (WGS84)"
    }
  }
}
look_in_area annotations
{
  "title": "Look inside an area",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
understand_area — Check an area against its targets
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

understand_area input schema
{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "description": "Latitude of the place to look at, WGS84"
    },
    "lon": {
      "type": "number",
      "description": "Longitude of the place to look at, WGS84"
    },
    "polygon": {
      "type": "object",
      "description": "A GeoJSON Polygon (WGS84)"
    },
    "radius_km": {
      "type": "number"
    }
  }
}
understand_area annotations
{
  "title": "Check an area against its targets",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
simulate — Run the protection options (Marxan)
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

simulate input schema
{
  "type": "object",
  "properties": {
    "reps": {
      "type": "integer",
      "description": "Runs, 1-20 (default 5)"
    },
    "protect": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "target_pct": {
      "type": "number"
    }
  }
}
simulate annotations
{
  "title": "Run the protection options (Marxan)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
find_layers — Find map layers
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

find_layers input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer"
    },
    "query": {
      "type": "string"
    }
  }
}
find_layers annotations
{
  "title": "Find map layers",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_features — Read a layer's features
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_features input schema
{
  "type": "object",
  "required": [
    "collection"
  ],
  "properties": {
    "bbox": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "maxItems": 4,
      "minItems": 4
    },
    "limit": {
      "type": "integer"
    },
    "collection": {
      "type": "string"
    }
  }
}
get_features annotations
{
  "title": "Read a layer's features",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_marine_park — Australian marine park facts
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_marine_park input schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Park name or part of it, e.g. 'Ningaloo'"
    },
    "state": {
      "type": "string"
    }
  }
}
get_marine_park annotations
{
  "title": "Australian marine park facts",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search_papers — Search the research library
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_papers input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer"
    },
    "query": {
      "type": "string"
    }
  }
}
search_papers annotations
{
  "title": "Search the research library",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
list_projects — List your projects
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

list_projects input schema
{
  "type": "object",
  "properties": {}
}
list_projects annotations
{
  "title": "List your projects",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_project — Read a project
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

get_project input schema
{
  "type": "object",
  "required": [
    "project_id"
  ],
  "properties": {
    "project_id": {
      "type": "integer"
    }
  }
}
get_project annotations
{
  "title": "Read a project",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
list_project_data — Read a project's data
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

list_project_data input schema
{
  "type": "object",
  "required": [
    "project_id"
  ],
  "properties": {
    "project_id": {
      "type": "integer"
    }
  }
}
list_project_data annotations
{
  "title": "Read a project's data",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
add_project_data — Add data to a project
Advertised by the server during the last successful anonymous check.
Open-world

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.

add_project_data input schema
{
  "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"
    }
  }
}
add_project_data annotations
{
  "title": "Add data to a project",
  "readOnlyHint": false,
  "openWorldHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1374 ms
95th percentile latency
1374 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1374 ms · metadata changed · 12 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http biohotspot-mcp https://biohotspot.ai4wa.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add biohotspot-mcp --url https://biohotspot.ai4wa.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable biohotspot-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "biohotspot-mcp": {
      "url": "https://biohotspot.ai4wa.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "biohotspot-mcp": {
      "type": "streamableHttp",
      "url": "https://biohotspot.ai4wa.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start biohotspot-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "biohotspot-mcp": {
      "type": "http",
      "url": "https://biohotspot.ai4wa.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http biohotspot-mcp https://biohotspot.ai4wa.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "biohotspot-mcp": {
      "url": "https://biohotspot.ai4wa.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "biohotspot-mcp": {
      "serverUrl": "https://biohotspot.ai4wa.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Biohotspot MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.