mcpField
E
EmbedEarth (E2)

EmbedEarth (E2)

Local
embed.earthMaps & Travel1Updated 6w ago

About EmbedEarth (E2)

EmbedEarth (E2) is an open geographic engine with an MCP server for agents working with real-world locations and spatial data. It combines search, spatial analysis, routing, map data, and geographic dataset management, with local and cloud modes.

Key features

  1. 01Search places and geographic features
  2. 02Compute spatial relationships and coverage
  3. 03Build routes, matrices, and isochrones
  4. 04Return MapLibre-compatible map sources
  5. 05Manage and query geographic datasets

Use cases

  1. 01Find features within a region or near coordinates
  2. 02Measure proximity, density, or coverage
  3. 03Route to a matching real-world feature
  4. 04Cache and query geographic datasets locally

MCP support

The MCP server exposes structured Search, Compute, Route, Map, and Stratum tools to MCP clients. It supports local, offline, automatic, and cloud execution modes.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"paulwxnter": {
"command": "npx",
"args": [
"-y",
"@embedearth/mcp"
],
"env": {
"E2_API_KEY": "<E2_API_KEY>",
"ROUTE_URL": "<ROUTE_URL>"
}
}
}
}
Run commandnpx -y @embedearth/mcp
Environment variables to set
E2_API_KEYSecretOptional EmbedEarth API key from embed.earth. Raises Cloud Search, Compute, and Route limits from 60 to 2,000 requests per minute and is required for street-level imagery.
ROUTE_URLOptional URL of a custom routing service compatible with the E2 route API. Defaults to the first-party routing endpoint.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@embedearth/mcp0.1.18

Tools

7

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
areaanyNo
modeenumNocloud | offline | auto
limitintegerNo
area_idanyNo
featureanyYes
latitudenumberNo
longitudenumberNo
state_codestringNo
country_codestringNo

Details

From the project README

@embedearth/mcp

EmbedEarth (E2) is an open, programmable geographic engine for the physical world. This MCP server gives AI agents structured tools for Search, Compute, Route, Map, and Stratum.

E2 is built as an open alternative to Google Maps Platform, bringing together capabilities commonly spread across Maps, Places, Routes, Geocoding, Autocomplete, and Street View — while adding spatial computation, open geographic data, and local execution.

Why E2

Traditional mapping APIs are built primarily around maps, places, and directions. E2 makes the broader physical world programmable.

Give agents the tools to:

  • Search places, infrastructure, observations, nature, civic data, and other real-world features.
  • Compute distance, proximity, counts, density, coverage, gaps, and other spatial relationships.
  • Map basemaps, features, routes, and application data.
  • Route between coordinates or directly to real-world features.
  • Stratum geographic datasets for local, offline, and cloud workflows.
  • Access street-level imagery and visual observations tied to geographic locations.

For agents coming from Google Maps Platform integrations, E2 can replace many common tool workflows built around Maps, Places, Routes, Geocoding, and street-level imagery while giving agents direct access to broader geographic datasets and spatial computation.

Install

npx -y @embedearth/mcp

Modes

E2 can run locally or in the cloud. Local datasets are downloaded once per region and reused for future requests, so the same data does not need to be fetched again.

ModePurpose
autoUse local data when available, otherwise cloud.
offlineDownload once, then reuse locally.
cloudCloud execution with unlimited use using an API key.

API key and limits

An API key is optional for basic cloud use and unlocks full cloud access. Create one at embed.earth and configure it as E2_API_KEY in the MCP host environment; a key is also required for street-level imagery. Without a key, cloud Search, Compute, and Route requests are limited to 60 requests per minute, and e2_stratum query should be treated as one request per second.

Search

e2_search searches the physical world by feature, place, region, or coordinates — places, infrastructure, observations, natural features, civic data, and other geographic datasets through one tool. It returns matching physical-world records as a GeoJSON FeatureCollection.

feature identifies what you want to find; it is a canonical key or numeric ID. Use area for a named region, area_id for an exact region, coordinates for a point lookup, or country_code and state_code for broader geographic selection.

Optional parameters
ParameterTypePurpose
areastring | string[]Search named areas. Mutually exclusive with area_id.
area_idstring | string[]Search exact area IDs. Mutually exclusive with area.
country_codestringSelect a country, for example US.
state_codestringSelect a state or province, for example NY.
latitude, longitudenumberSearch around a coordinate. Provide both.
modecloud | offline | autoSelect the execution mode. Defaults to auto.
limitnumberMaximum number of returned features. Defaults to 1000.
{ "feature": "restaurant", "area": "New York", "mode": "auto", "limit": 25 }
{ "feature": "restaurant", "area_id": "4915", "mode": "cloud", "limit": 25 }
{ "feature": "restaurant", "latitude": 40.7128, "longitude": -74.006, "mode": "cloud", "limit": 25 }
{ "feature": "restaurant", "country_code": "US", "state_code": "NY", "mode": "cloud", "limit": 25 }

Compute

e2_compute runs spatial analysis directly against geographic features — find what is nearest, measure distance, count features, calculate density and coverage, detect gaps, or cluster nearby objects — turning geographic data into answers without a separate GIS stack.

feature defines what is being measured, while area or area_id defines the geographic scope. Relationship parameters such as near connect one feature set to another.

PrimitivePurpose
NEARESTFind the closest features.
DISTANCEMeasure distance between feature sets.
WITHINSelect features inside a relation distance.
COUNTCount related features.
DENSITYMeasure feature concentration.
COVERAGEMeasure reached area.
GAPSFind unreached areas.
CLUSTERGroup nearby features.
{ "primitive": "COUNT", "feature": ["restaurant"], "area_id": "4915", "near": "park", "distanceMeters": 500, "mode": "cloud" }
{ "primitive": "DENSITY", "feature": ["restaurant"], "area": "New York", "near": "park", "distanceMeters": 500, "mode": "auto" }

Routing

Calculate movement through the physical world. Build routes, travel-time matrices, isochrones, map matches, elevation queries, and network-aware searches from coordinates or E2 features — so agents can route to things rather than only fixed coordinates. Use e2_route_to_feature for a coordinate-to-feature route and e2_route for direct routes, matrices, isochrones, map matching, locate, and height.

Set ROUTE_URL only when using your own compatible routing service.

Tool or operationPurpose
e2_route_to_featureRoute from a coordinate to a matching feature, such as the closest restaurant.
e2_route with routeBuild a route between one or more coordinates.
e2_route with matrixReturn travel costs between multiple sources and targets.
e2_route with isochroneCalculate the area reachable within one or more time limits.
e2_route with mapMatchMatch a recorded coordinate trace to the road network.
e2_route with locateResolve a coordinate to the routable network.
e2_route with heightReturn elevation data for one or more locations.
{ "feature": "restaurant", "from": [40.7128, -74.006], "mode": "walking" }
{ "operation": "matrix", "body": { "sources": [{ "lat": 40.7128, "lon": -74.006 }], "targets": [{ "lat": 40.7306, "lon": -73.9352 }], "mode": "driving" } }

Maps

e2_map_sources renders E2 data as MapLibre-compatible map sources — the global Planet basemap and PMTiles feature layers. It returns map data metadata rather than rendering a map in the agent conversation, keeping styling and interaction in the client application.

Stratum

e2_stratum is E2's portable data layer for geographic datasets. Discover, download, cache, query, and upload geographic data for local or cloud workflows without maintaining a traditional spatial database. It supports GeoJSON, CSV, Parquet, and SQLite and lets datasets be downloaded once and reused across applications and regions.

OperationPurpose
cacheList, cacheSet, cacheDelete, cacheClearManage verified local data.
featureList, featureSearch, featureInfoLook up built-in features.
areaList, areaSearch, areaInfoLook up built-in areas.
dataList, dataInfoInspect published data.
download, queryPull and query Cloud or local data.
uploadAdd namespaced local data.
{ "operation": "upload", "path": "./stores.geojson", "database": "./stores.db", "feature": "stores", "namespace": "my-app" }

Geographic Catalog

E2 organizes the physical world into features and areas.

Features describe what exists — places, infrastructure, observations, natural features, imagery-linked records, and other physical-world objects.

Areas describe where — countries, states, cities, and other geographic regions with stable IDs.

Browse the Feature and Area catalogs to discover available inputs across Search, Compute, Route, and Stratum: Catalog Features · Catalog Areas.

Street-level Imagery

EmbedEarth processes billions of street-level images to connect visual observations with geographic features and places. Imagery adds visual context to locations and can surface physical-world features that may not appear in conventional place databases.

Street-level imagery is currently cloud-based and requires an API key and active plan.

Other interfaces

SDK package · CLI package · Full MCP docs

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.