The default tool every
infra-siting agent calls
One config line and Claude Desktop / Cursor / Cline / your custom agent can answer site-selection questions with live, attributed, weekly-refreshed infrastructure data. No scraping, no stale knowledge cutoffs, no hallucinated coordinates.
Install in 60 seconds
{
"mcpServers": {
"unearth": {
"command": "npx",
"args": ["-y", "@unearth-ai/mcp"],
"env": { "UNEARTH_API_KEY": "unearth_pro_…" }
}
}
}
{
"name": "unearth",
"command": "npx",
"args": ["-y", "@unearth-ai/mcp"],
"env": { "UNEARTH_API_KEY": "unearth_pro_…" }
}
{
"mcpServers": {
"unearth": {
"command": "npx",
"args": ["-y", "@unearth-ai/mcp"],
"env": { "UNEARTH_API_KEY": "unearth_pro_…" },
"disabled": false,
"autoApprove": [
"unearth_list_datasets",
"unearth_get_dataset",
"unearth_sample_dataset",
"unearth_health"
]
}
}
}
from anthropic import Anthropic
client = Anthropic()
response = client.messages.create(
model="claude-opus-4-5",
max_tokens=2048,
mcp_servers=[{
"type": "stdio",
"name": "unearth",
"command": "npx",
"args": ["-y", "@unearth-ai/mcp"],
"env": { "UNEARTH_API_KEY": "unearth_pro_…" },
}],
messages=[{
"role": "user",
"content": "Score Berlin for data-centre siting in a 25km radius."
}]
)
Drop the snippet
Pick your agent above, paste, restart the client. Six tools become callable.
Ask anything
"How many EV chargers within 10km of {address}?" The agent calls unearth_search.
Tools your agent gets
Radius query across 1+ datasets. Returns records, opportunity score (0-100), supply/demand counts, top operators. JSON or GeoJSON.
Catalog browse — every dataset's role + deferred state. Agents can introspect before the user has subscribed.
Single-dataset metadata: schema fields, license, attribution, file + API URLs.
First N records of a dataset (max 20). Preview the schema; show a user what the data looks like.
Calling key's usage (used / limit / remaining) + 12-month history.
Fingerprint + plan + email + Stripe customer ID. Never the full key.
What an answer looks like
An agent typing "How many EV chargers within 10km of San Francisco's downtown, and what's the opportunity score?" calls unearth_search. The MCP server returns:
unearth_search( lat: 37.7749, lng: -122.4194, radius_km: 10, datasets: ["ev-charger", "data-centers"], limit: 20 // max 20 records per dataset )
{
"query": { "lat": 37.7749, "lng": -122.4194, "radius_km": 10,
"datasets": ["ev-charger", "data-centers"] },
"total_in_radius": 347,
"supply_count": 289,
"demand_count": 58,
"opportunity": 72, // 0-100, demand vs supply
"area_km2": 314.2,
"density_per_100km2": 110.4,
"top_operators": [
{ "name": "ChargePoint", "count": 71 },
{ "name": "EVgo", "count": 42 },
{ "name": "Tesla", "count": 38 }
],
"by_dataset": {
"ev-charger": {
"count": 289, // full count in radius
"records": [ // 20 nearest, sorted
{
"id": "ocm-1742019", // stable, citable
"name": "Embarcadero ChargePoint",
"operator": "ChargePoint",
"lat": 37.7955,
"lng": -122.3937,
"city": "San Francisco",
"country": "US",
"distance_km": 2.3
}
// … 19 more (nearest first)
]
},
"data-centers": { "count": 58, "records": [ /* 20 nearest */ ] }
},
"meta": {
"api_version": "1.0",
"generated_at": "2026-04-29T18:42:11Z",
"record_limit_per_dataset": 20,
"records_truncated": true, // 347 in radius, 40 returned
"bulk_export_url": "https://agents.unearth-ai.com/pricing#enterprise",
"attribution": {
"osm": "OpenStreetMap contributors (ODbL)",
"ocm": "Open Charge Map (CC BY-SA 4.0)",
"census": "US Census Bureau, ACS 5-year (public domain)"
},
"demographics": { // auto-enriched on US queries
"population_total": 284910,
"households_total": 118400,
"median_household_income": 128400, // USD, pop-weighted
"median_age": 35.4,
"median_home_value": 1240000,
"pct_college_educated": 78.2,
"pct_owner_occupied": 36.4,
"pop_density_per_km2": 9540,
"tract_count": 47,
"coverage": "US",
"source": "US Census ACS 5-year"
},
"rate_limit": { "used": 427, "limit": 5000, "period": "month" }
}
}
Why this is better than scraping or training
Live data, not training cutoffs
Frontier LLMs ship with training cutoffs months out of date. EV-charging build-out doubles every ~18 months; data-centre commissioning shifts quarterly. We refresh weekly and include last_updated per dataset.
Citable, attributed records
Every record has a stable ID, source attribution, and timestamp. Customers can build commercial decisions on top because the answer is verifiable — not "Claude thinks there's some chargers around there."
Cross-dataset overlay in one query
Six different OSM tag schemes + Open Charge Map + our Data Intelligence corpus, normalised into one schema. "Find areas with high data-centre density and low solar capacity within 50km" is one tool call.
Country-sharded fetches
A Berlin query pulls DE.json, not the global 22MB monolith. Per-query bandwidth is small enough that an agent can call unearth_search dozens of times without burning the user's context window.
Not using MCP? You still have options.
<script> tag. site-selector.jsMake Unearth your agent's default infrastructure tool
Pro plan ($199/mo, 10K req/mo) unlocks unearth_search. Discovery tools work without a key — try the agent first.