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:
- /capabilities: what's built, what isn't, and the date.
- /example and /example.json: a real site's design, Check findings and model results.
- /guide: how to use the app, and each model's method, inputs, data sources and limits. /analysis lists the models.
- /llms.txt: an index of all of it.
- /openapi.json: the REST API's description. /docs and /redoc show it too, but need JavaScript.
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:
- The map needs WebGL. A headless browser without a GPU may show nothing.
- Selecting a building by clicking the map is unreliable for automated clicks. A site's list of buildings in Build also selects them.
- Sign-ins can expire during a session. Without one you can draw and Fill, but not save, run the Check or run models.
For anything beyond looking, use the MCP server or the API.
Getting an API key
- A person signs in with a free account and opens Settings → API keys (/settings).
- They enter a name and choose Generate. The key starts with
um_and is shown once. - 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
| Tool | What it does |
|---|---|
list_projects | List your projects. |
list_scenarios | List a project's scenarios. |
get_scenario | A scenario's sites, types, areas and buildings. |
create_scenario | Create an empty scenario. Changes data. |
Sites and design
| Tool | What it does |
|---|---|
paint_area | Add a site to a scenario. Changes data. |
edit_site | Resize a site, change its type or refill it. Changes data. |
remove_site | Delete a site. Changes data. |
fill_site | Fill a site with buildings. Changes data. |
get_site_package | A site's lot, neighbours with heights, buildable envelope and height limits, for designing on it. |
The Check and the rules
| Tool | What it does |
|---|---|
check_scenario | Check a scenario against every rule: findings with clauses, problems first. |
get_zone_schedule | The council zone schedule for each site. |
search_regulations | Search Victorian building and planning rules by clause. |
Analysis
| Tool | What it does |
|---|---|
get_saved_results | The scores saved for a scenario, with dates and whether they're out of date. Fast. |
run_analysis | Run one model and save its result. |
run_all_analyses | Run all the models and save the results. Takes minutes. |
compare_scenarios | Compare 2 to 4 scenarios side by side. |
export_report | Says how to export a report: the files themselves are made in the app's browser buttons. |
Place and data lookups (read only)
| Tool | What it does |
|---|---|
geocode | Address or place name to coordinates. |
reverse_geocode | Coordinates to address, suburb, council and postcode. |
spatial_query | Buffer, distance, area, centroid or nearest. |
check_spatial_relationship | Whether two geometries contain, intersect, touch and so on. |
query_vicmap | Vicmap zones, overlays, parcels and other layers. |
query_admin_boundaries | Council, suburb, postcode and ward for a geometry. |
query_census | ABS Census 2021 data for an SA2. |
get_site_demographics | 2021 Census figures for the area around a scenario's sites. |
query_gtfs | Public transport stops and routes near a place. |
query_overture | Overture Maps buildings, places and transport. |
query_buildings | Microsoft building footprints for an area. |
query_heritage | Heritage Victoria register places near a location. |
query_walkability | Walk Score and the amenities in reach of a location. |
browse_data_catalogue | The app's data sources by category. |
search_arcgis_services | Search 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/fiscalResponses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. See the Developer API page and its guide.
What not to conclude
- Results are indicative: a pre-check, not a planning decision. Say so when you report them.
- Each model result has a status. Treat Estimate and Not measured here accordingly.
- What isn't built is listed under what isn't done. Check there, or in the guide, before calling something missing.
Sources
| What | Source | Licence |
|---|---|---|
| The protocol | Model Context Protocol | — |
| The API description | Generated by the backend | — |
| The tool list | URBANMIND's MCP server; a test keeps this page's list the same as the server's | — |