# Data discovery

MAIA's data discovery takes a question that core data cannot answer and returns a public GIS layer, found during the run, clipped to the project's county, and saved with its source and usage terms.

Updated: 2026-09-30. Source: https://maia-analytics.com/docs/capabilities/data-discovery

## What it answers

Questions about things a local government maps and MAIA does not hold: a planned road, a utility service area, a zoning overlay. MAIA reaches for discovery only when core data does not answer. See [Data](https://maia-analytics.com/docs/capabilities/data).

> **You ask:** Find retail-zoned corner lots near newly approved roads.

## What you get

A new layer in the project, holding the public layer's features inside your county. Open the layer to read its description. It records five things.

| Field | What it holds |
| --- | --- |
| Source | The publisher and the address of the service |
| Area | The county the layer was clipped to |
| Subset | The filter applied, in plain language, when there is one |
| Source choice | Why the agent picked this layer over the others |
| Usage terms | The license the publisher states |

> **Note:** Read the usage terms before you export or publish a discovered layer. The agent skips a layer whose license restricts your use, but the terms are the publisher's, and they travel with the layer so that you can read them yourself.

## How it works

1. **Search.** The agent searches public GIS catalogs for layers that cover the county.
2. **Inspect.** For each candidate, the agent reads the publisher, the fields, the number of features in the county, the last edit date, and the license.
3. **Choose.** The agent picks the candidate that answers the question.
4. **Fetch.** MAIA pulls the features, clips them to the county boundary, and saves the layer. A feature that crosses the boundary is cut at it.

Discovery happens inside a run, and the run spends credits like any other. See [What uses credits](https://maia-analytics.com/docs/billing/usage).

## Refresh a layer

Ask MAIA to refresh the layer. It pulls the features again from the same source with the same filter, so the layer is as current as its publisher.

## Limits

- **Over 10,000 features, the fetch is narrowed by an attribute**, such as one zoning class, so the layer fits. MAIA tells you which filter it applied.
- **The project needs a county.** Discovery works inside one county and clips to it.
- **Public GIS services only.** MAIA reads layers that a publisher serves publicly. It does not read open data portals of other kinds, and some services cannot be fetched.
- **A discovered layer is as current as its publisher.** The last edit date is in the description.

| Limit | Value |
| --- | --- |
| Features per fetch | 10,000 |

## In the app and over MCP

| Where | How |
| --- | --- |
| The web app | State the objective in chat. MAIA reports the layer it found and why it chose it |
| MCP | State the objective in the `request` of `create_project` or the `message` of `send_message`. The agent can find and add a public layer in the same run |

## Related

- [Core data](https://maia-analytics.com/docs/capabilities/core-data) is what MAIA checks first.
- [Web research](https://maia-analytics.com/docs/enrichments/web-research) answers what no layer holds.
