product · mcp and skills
ask your data a question
The Arraylake MCP server lets AI assistants and agents discover, explore, and query your scientific data in natural language — no client library, no glue code.
works with the assistants your team already uses
and anything else that speaks MCP
the problem
Agents are blind to scientific data
Language models are good at reasoning about data and bad at finding it. A petabyte archive of tensors has no schema an assistant can read, no endpoint it can call, and no way to check whether the answer it produced came from the array it thought it did.
So the work falls back to a human: locate the repository, read the metadata, write the subsetting code, plot the result, and paste it into the conversation.
-
No discovery — an assistant cannot list what data you have, let alone what is inside it.
-
No safe access — handing an agent cloud credentials to read a bucket is not a permissions model.
-
No grounding — without a real query against real arrays, an answer about your data is a guess.
what it is
One endpoint, and the assistant can see
Earthmover runs a hosted Model
Context Protocol server at
https://app.earthmover.io/mcp.
Point any MCP client at it, sign in once, and the assistant can browse
your Arraylake
repositories, read their schemas, run
Compute queries,
and render maps — chaining the tools itself based on what you asked.
Tools inherit the permissions of whoever signed in. An assistant sees exactly the repositories you can see, and queries exactly the services you are allowed to query — the same rules as the web app, enforced in the same place.
you ask
"Show me a temperature plot in Fahrenheit for tonight in Narragansett, Rhode Island using the earthmover/aifs repo."
the assistant does
- 1 finds the repo and reads its xarray schema
- 2 works out the latest initialization and the lead times covering tonight
- 3 runs an EDR position query at the nearest grid point
- 4 converts to Fahrenheit and plots it, citing the commit it read
capabilities
Five groups of tools
You never call these directly — the assistant picks and chains them based on your question. Knowing what is there helps you ask better ones.
Discover
List the organizations you belong to, browse and filter repositories, and search the Marketplace by name, org, or description.
list_orgslist_reposget_repo_infosearch_marketplace Explore
Walk a repo's group and array tree, read xarray schemas with dimensions and attributes, and follow commit history and diffs — without downloading anything.
get_repo_treeget_dataset_infolist_refslist_commitsget_commit Query
Run OGC EDR position, area, and cube queries against live Compute services and get back CSV, CoverageJSON, NetCDF, or GeoTIFF.
query_edrlist_compute_serviceslist_service_datasetsdiagnose_compute_service Visualize
Render an interactive pan/zoom map of any variable straight into the conversation, or mint a ticketed XYZ tile URL to drop into MapLibre, Leaflet, or deck.gl.
render_dataset_mapget_tile_url Guide agents
Load Arraylake agent skills — focused guidance for the Python client, the MCP tools, and reading and writing Icechunk, Zarr, and Xarray data.
list_arraylake_skillsload_arraylake_skill Server-side Python
on the roadmapThe server does not yet run arbitrary Python next to the data. We are extending Compute to cover more flexible workloads.
connecting
Any client that speaks MCP
The server supports the Streamable HTTP transport and OAuth 2.1, so setup is a URL and a sign-in. Nothing to install and nothing to run.
Claude.ai
Settings → Connectors → Add custom connector
Name Arraylake
URL https://app.earthmover.io/mcp
Then complete the sign-in flow in the popup. On Team and Enterprise plans, only workspace admins can add custom connectors.
Claude Code
claude mcp add --transport http \
arraylake https://app.earthmover.io/mcp Opens a browser for authentication on first use.
ChatGPT
Settings → Apps → Advanced → enable Developer mode
Settings → Apps → Create app
Name Arraylake
MCP Server URL https://app.earthmover.io/mcp
Authentication OAuth The app appears in the composer's + → Apps menu.
Cursor
{
"mcpServers": {
"arraylake": {
"url": "https://app.earthmover.io/mcp"
}
}
} In ~/.cursor/mcp.json. Restart Cursor; the first call triggers OAuth.
Codex CLI
codex mcp add arraylake \
--url https://app.earthmover.io/mcp Runs the OAuth flow immediately.
Anything else
Authorization: Bearer ema_XXXXXXXXXXXX Any client that supports a static header can use an Arraylake API token and skip OAuth entirely — good for CI and headless setups.
agent skills
Guidance that travels with the tools
Knowing which tool to call is only half of it. The server also publishes Arraylake agent skills — focused instructions for the workflows a coding agent actually runs, so it writes correct client code the first time instead of guessing at an API.
Skills-aware agents load them before writing Arraylake code or chaining MCP calls. Clients that have installed them locally with `arraylake skills install` already have them; everything else can pull them over the wire.
-
Python client and CLI — creating repositories, committing data, managing refs.
-
Data access — reading and writing Icechunk, Zarr, and Xarray correctly.
-
MCP querying — chaining discovery into EDR and tile queries without dead ends.
early access
The MCP server is under active development. If there is a workflow you want to drive from an assistant or agent, we want to hear about it — support@earthmover.io.