@embed-earth/mcp-test
EmbedEarth gives AI agents an open, programmable layer for the physical world:
search places and infrastructure, run spatial analysis, route journeys, prepare
MapLibre sources, and work with local geographic data.
The MCP server has the same six core areas as the SDK and CLI: Search,
Compute, Routing, Maps, Catalog, and Stratum.
Product: embed.earth · Docs:
MCP docs · Docs home
Run
npx -y @embed-earth/mcp-test
Configure any stdio-compatible MCP client:
{
"mcpServers": {
"e2": {
"command": "npx",
"args": ["-y", "@embed-earth/mcp-test"],
"env": {
"E2_API_KEY": "your_api_key"
}
}
}
}
Enable Cloud
Create an API key at embed.earth and set it as
E2_API_KEY in the MCP host environment. Cloud requests require the key, and
Street View image URLs also require a Cloud API key. Do not commit real keys to
an MCP configuration. Routing uses https://route.embed.earth by default;
ROUTE_URL is only needed to override it.
Search
e2_search returns a GeoJSON FeatureCollection. Use area for a
human-readable name or area_id for an exact raw catalog ID.
{
"feature": "restaurant",
"area": "New York",
"limit": 25,
"mode": "auto"
}
{
"feature": ["restaurant", "hospital"],
"area_id": "4915",
"bbox": [-74.1, 40.65, -73.9, 40.85],
"limit": 100
}
feature | Required feature key/ID or array of keys/IDs. |
area / area_id | Named area or exact raw area ID. |
bbox | Optional [minLng, minLat, maxLng, maxLat] boundary. |
where / properties | Optional source-column or property filters. |
mode / limit | Execution backend and maximum returned records. |
Compute
e2_compute evaluates a spatial relation or aggregate. Use e2_compare for
two features in one area or one feature across two areas.
NEAREST | Find the closest selected features to a relation feature. |
DISTANCE | Measure distances between selected and relation features. |
WITHIN | Return selected features inside a specified relation distance. |
COUNT | Count selected features that meet the relation. |
DENSITY | Measure feature concentration in an area. |
COVERAGE | Measure area reached by a selected relation. |
GAPS | Identify places not reached by selected coverage. |
CLUSTER | Group selected features by spatial proximity. |
{
"primitive": "COUNT",
"feature": ["restaurant"],
"area_id": "4915",
"near": "park",
"distanceMeters": 500,
"mode": "cloud"
}
e2_compute accepts feature, area or area_id, optional near or
within, distanceMeters, limit, mode, and an optional local database.
Routing
e2_route runs named operations through https://route.embed.earth.
route | Route between ordered locations. |
matrix | Return travel metrics for source/target pairs. |
isochrone | Return reachable contours. |
mapMatch | Align a coordinate trace to the network. |
locate | Return network information near locations. |
height | Return elevation information for locations. |
e2_route_to_feature | Find the nearest indexed destination, then route to it. |
{
"operation": "route",
"body": {
"locations": [{ "lat": 40.74, "lon": -73.99 }, { "lat": 40.71, "lon": -74.01 }],
"mode": "walking"
}
}
Maps
e2_map_sources returns MapLibre-ready source descriptors for the Planet
basemap and selected published feature PMTiles. It does not create a map in the
MCP host.
{ "features": ["restaurant", "hospital"] }
Catalog
e2_catalog is the single catalog lookup tool. It lists, searches, and
inspects features, areas, and data; it does not expose a resolver.
{ "kind": "areas", "action": "search", "query": "New York" }
{ "kind": "areas", "action": "info", "id": "4915" }
Use raw area IDs such as 4915, without a provider prefix.
Stratum
e2_stratum is the local-data tool. It manages the verified cache, pulls data
from the server, queries it in Cloud or local mode, downloads files, and
uploads local GeoJSON, CSV, or Parquet.
cacheList | none | Inspect the local cache. |
cacheSet | size | Set the cache limit (minimum 1GB). |
cacheDelete / cacheClear | key for delete | Remove cached data. |
download | feature, optional area_id, output | Pull verified data to a file or cache. |
query | feature, optional area_id | Query server or verified local data. |
upload | path, database | Index local GeoJSON, CSV, or Parquet. |
{
"operation": "upload",
"path": "./places.geojson",
"database": "./places.db",
"connectTo": "restaurant"
}
Choose Search for records, Compute for spatial analysis, Routing
for network travel, Maps for source descriptors, Catalog for valid
inputs, and Stratum for server pulls and local data.