For AI agents

As of 4 November 2026. If you're reviewing URBANMIND from its pages: the app's map needs a browser, so read what it can and can't do and the worked example rather than judging from what a page fetch of the app returns.

Fetching pages

These are plain HTML or text, with no JavaScript needed:

A fetch can't see anyone's scenarios, run anything, or read the app itself: /builder returns a short note. /api/ is closed to crawlers in robots.txt, and most of it needs an API key anyway.

Driving a browser

The app runs in a real browser, but expect trouble:

For anything beyond looking, use the MCP server or the API.

Getting an API key

  1. A person signs in with a free account and opens Settings → API keys (/settings).
  2. They enter a name and choose Generate. The key starts with um_ and is shown once.
  3. They give it to the agent. It acts as that person: it sees and changes only what they can.

New keys get 100 requests an hour, and each account can have up to 5. There's no public demo key. If you're reviewing the app and have no account, the owner can issue you a key: ask whoever asked you to review it to request one.

The MCP server

The endpoint is https://urbanmind.terrascout.app/api/mcp, over Streamable HTTP. It's stateless and answers in JSON. Send the key as Authorization: Bearer um_... or X-API-Key: um_.... Without one it answers 401.

In Claude Code:

claude mcp add --transport http --scope user urbanmind https://urbanmind.terrascout.app/api/mcp --header "Authorization: Bearer um_your_key"

Guides for Claude Desktop, Cursor and VS Code are in the app under Settings → Connect your tools. With plain HTTP, list the tools:

curl -s -X POST https://urbanmind.terrascout.app/api/mcp \
  -H "Authorization: Bearer um_your_key" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

And call one:

curl -s -X POST https://urbanmind.terrascout.app/api/mcp \
  -H "Authorization: Bearer um_your_key" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_projects","arguments":{}}}'

A good order: list_projects, list_scenarios, get_scenario, then check_scenario or get_saved_results. Rules come back summarised with their clause numbers and links: quote the clause rather than reproducing legislation.

The 32 tools

Projects and scenarios

ToolWhat it does
list_projectsList your projects.
list_scenariosList a project's scenarios.
get_scenarioA scenario's sites, types, areas and buildings.
create_scenarioCreate an empty scenario. Changes data.

Sites and design

ToolWhat it does
paint_areaAdd a site to a scenario. Changes data.
edit_siteResize a site, change its type or refill it. Changes data.
remove_siteDelete a site. Changes data.
fill_siteFill a site with buildings. Changes data.
get_site_packageA site's lot, neighbours with heights, buildable envelope and height limits, for designing on it.

The Check and the rules

ToolWhat it does
check_scenarioCheck a scenario against every rule: findings with clauses, problems first.
get_zone_scheduleThe council zone schedule for each site.
search_regulationsSearch Victorian building and planning rules by clause.

Analysis

ToolWhat it does
get_saved_resultsThe scores saved for a scenario, with dates and whether they're out of date. Fast.
run_analysisRun one model and save its result.
run_all_analysesRun all the models and save the results. Takes minutes.
compare_scenariosCompare 2 to 4 scenarios side by side.
export_reportSays how to export a report: the files themselves are made in the app's browser buttons.

Place and data lookups (read only)

ToolWhat it does
geocodeAddress or place name to coordinates.
reverse_geocodeCoordinates to address, suburb, council and postcode.
spatial_queryBuffer, distance, area, centroid or nearest.
check_spatial_relationshipWhether two geometries contain, intersect, touch and so on.
query_vicmapVicmap zones, overlays, parcels and other layers.
query_admin_boundariesCouncil, suburb, postcode and ward for a geometry.
query_censusABS Census 2021 data for an SA2.
get_site_demographics2021 Census figures for the area around a scenario's sites.
query_gtfsPublic transport stops and routes near a place.
query_overtureOverture Maps buildings, places and transport.
query_buildingsMicrosoft building footprints for an area.
query_heritageHeritage Victoria register places near a location.
query_walkabilityWalk Score and the amenities in reach of a location.
browse_data_catalogueThe app's data sources by category.
search_arcgis_servicesSearch a curated list of Australian public ArcGIS services.

The REST API

The same key, in the X-API-Key header. Every endpoint is in /openapi.json.

curl -H "X-API-Key: um_your_key" https://urbanmind.terrascout.app/api/projects/
curl -H "X-API-Key: um_your_key" "https://urbanmind.terrascout.app/api/scenarios/?project_id=PROJECT_ID"
curl -H "X-API-Key: um_your_key" https://urbanmind.terrascout.app/api/check/scenarios/SCENARIO_ID
curl -X POST -H "X-API-Key: um_your_key" -H "Content-Type: application/json" \
  -d '{"scenario_id":SCENARIO_ID}' https://urbanmind.terrascout.app/api/analysis/fiscal

Responses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. See the Developer API page and its guide.

What not to conclude

Sources

WhatSourceLicence
The protocolModel Context Protocol—
The API descriptionGenerated by the backend—
The tool listURBANMIND's MCP server; a test keeps this page's list the same as the server's—