Atria API

Site intelligence for agents, over MCP

Atria is a hosted Model Context Protocol server. Any MCP client, or any program that can send an HTTP request, can look up US parcels, screen sites, search the results Scout found for your organization and start new thesis runs. Every value comes back with its source and the time it was fetched.

Endpointhttps://askatria.ai/mcp

Quickstart

Pick your client and run the line. The client opens a browser so you can sign in, or create an account, and approve access. There is no key to paste, and the free plan needs no card.

npx add-mcp https://askatria.ai/mcp

Detects the agents on your machine, such as Claude Code, Cursor, VS Code, Codex and Gemini CLI, and adds Atria to each. Your client opens a browser to sign in and approve; the free plan needs no card.

For any other MCP client, add the server to its configuration file:

MCP configuration

{
  "mcpServers": {
    "atria": {
      "type": "http",
      "url": "https://askatria.ai/mcp"
    }
  }
}

Then ask your agent something about a place, for example: “Who owns 4405 Michigan Ave Rd NE in Cleveland, Tennessee, and how much of it is in the floodplain?”

Authentication

OAuth is the default for interactive clients. Atria supports dynamic client registration, so a client that speaks MCP authorization registers itself, opens the sign-in page and keeps its own tokens. The metadata is at /.well-known/oauth-authorization-server and /.well-known/oauth-protected-resource.

API keys are for servers, scripts and clients without OAuth. Create one under Scout, then Agents in your dashboard and send it as a bearer token. Keys start with atria_sk_ and are shown once.

MCP configuration with an API key

{
  "mcpServers": {
    "atria": {
      "type": "http",
      "url": "https://askatria.ai/mcp",
      "headers": { "Authorization": "Bearer atria_sk_..." }
    }
  }
}

Keys carry scopes: lookup, screen, search (which also covers atria_result), coverage and crawl. A call outside the key’s scopes is refused and costs nothing.

Calling over HTTP

The server speaks MCP over streamable HTTP and is stateless: every request is a JSON-RPC message POSTed to the endpoint. MCP clients handle this for you; without one, list the tools and call them directly.

List the tools

curl -s https://askatria.ai/mcp \
  -H "Authorization: Bearer $ATRIA_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Call a tool

curl -s https://askatria.ai/mcp \
  -H "Authorization: Bearer $ATRIA_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "atria_lookup",
      "arguments": { "address": "4405 Michigan Ave Rd NE, Cleveland, TN" }
    }
  }'

GET /mcp/info returns the server’s name, version and tool list without authentication.

Responses

Every value is wrapped in an envelope so an agent can cite it and can tell a real gap from a source that did not answer:

  • ok: the value, with source (name and URL) and fetched_at.
  • absent: the source answered and has nothing at this location, with a reason.
  • failed: the source did not answer. This says nothing about the site; retry later or check another source.

An ok envelope

{
  "status": "ok",
  "value": { "zones": [{ "zone": "A", "acres": 4.29, "percent": 7.2 }], "sfhaPercent": 7.2 },
  "source": { "name": "floodZone", "url": "https://services.arcgis.com/.../FeatureServer/0" },
  "fetched_at": "2026-10-01T00:00:00.000Z"
}

The server instructs agents never to fill an absent or failed value in from general knowledge.

Tools

atria_lookup

100 creditsscope lookup

Parcel lookup

Resolve an address, a coordinate, or an assessor parcel number to the parcel of record: owner, acreage, zoning, land use, assessed, land and improvement values, year built and the parcel outline.

ArgumentTypeDescription
addressstringStreet address with city and state or ZIP.
latnumberLatitude, WGS84.
lngnumberLongitude, WGS84.
apnstringAssessor parcel number. Requires county and state.
countystringCounty name without the word "County", e.g. Bradley.
statestringTwo-letter state code, e.g. TN.

Example arguments

{
  "address": "4405 Michigan Ave Rd NE, Cleveland, TN"
}

Pass one of address, lat and lng together, or apn with county and state.

atria_screen

10 per national module, 25 per county module, 400 at most creditsscope screen

Site diligence screen

Run diligence modules at a point or on a parcel. Each module comes back in its own envelope. Pass geometry_rings from atria_lookup so outline-based modules, such as flood zones, measure the whole parcel rather than its centre.

ArgumentTypeDescription
latrequirednumberLatitude, WGS84.
lngrequirednumberLongitude, WGS84.
countystringCounty name without the word "County", e.g. Bradley.
statestringTwo-letter state code, e.g. TN.
parcel_idstringParcel id from atria_lookup.
acreagenumberParcel acreage.
geometry_ringsnumber[][][]Parcel outline as [lng, lat] rings, from atria_lookup.
modulesstring[]Modules to run. Defaults to every module except exhibits. See the module list below.

Example arguments

{
  "lat": 35.194,
  "lng": -84.8118,
  "state": "TN",
  "modules": [
    "floodZone",
    "transmissionLines",
    "waterSewer"
  ]
}

atria_result

20 creditsscope search

Scout result

One crawled parcel with its score, the reasoning behind it, and its full diligence screen.

ArgumentTypeDescription
idrequireduuidResult id from atria_search.

atria_coverage

Freescope coverage

Coverage

Which parcel and GIS sources Atria reads for a county, and which screen modules are national.

ArgumentTypeDescription
countyrequiredstringCounty name without the word "County", e.g. Bradley.
staterequiredstringTwo-letter state code, e.g. TN.

atria_crawl_start

250,000 creditsscope crawl

Start a thesis run

Needs the Team or Enterprise plan. Run a written thesis over a county or a drawn polygon. Scout pulls the parcel records, measures infrastructure, scores every parcel against the thesis and screens the best ones. A run started by an agent returns an approval link; an owner of your organization approves it before any credits are charged. Then poll atria_crawl_status and read results with atria_search.

ArgumentTypeDescription
namerequiredstringA name for the run.
staterequiredstringTwo-letter state code, e.g. TN.
countystringCounty to search, or pass polygon.
polygon[lng, lat][]Search area ring, WGS84.
thesisrequiredstringWhat a matching parcel looks like, in plain language.
verticalstringcustom, data_center, data_center_retrofit, mixed_use, retail, telecom_tower or infill_redevelopment.
min_acresnumberMinimum acreage.
max_acresnumberMaximum acreage.
max_parcelsintegerParcels to score, 100 to 3,000.

atria_crawl_status

Freescope crawl

Run status

Progress and result count for a thesis run.

ArgumentTypeDescription
job_idrequireduuidFrom atria_crawl_start.

Screen modules

Pass any of these in atria_screen’s modules. National modules cost 10 credits and county modules, which read the county’s own GIS, cost 25.

ModuleReadsCredits
floodZoneFEMA flood hazard layer, on the parcel outline10
floodPanelFEMA FIRM panel and effective date10
transmissionLinesAtria grid layer10
electricStateElectric utility territory and tariffs10
interconnectionQueueISO and RTO queues10
waterSewerEPA water systems and ECHO permits10
broadbandFCC broadband map10
elevationUSGS 3DEP10
landCoverNLCD10
environmentalFacilitiesEPA ECHO10
airQualityEPA Green Book10
transportAccessHighway, rail and airport distances10
incentiveProgramsState incentives and opportunity zones10
zoningJurisdictionWho zones the site25
assessorRecordCounty assessor25
adjoiningParcelsCounty parcel layer25
easementIndicatorsCounty GIS layers25
countyContextCounty GIS layers25
exhibitsStatic map exhibits; opt-in10

Credits and plans

Calls are priced in credits; 1 credit is $0.001. Credits belong to your organization and reset on the first of each month (UTC). A call that would exceed what is left is refused and costs nothing.

Free

$0

5,000 credits a month

Agents only. About 50 lookups or a dozen full screens a month; no card needed.

Builder

$49 a month

75,000 credits a month

Agents and the API, with overage at $1 per 1,000 credits up to a cap you set.

Team

$399 a month

600,000 credits a month

Adds Scout (thesis crawls, chat, data rooms, pipeline, outreach) on the same balance; overage at $0.80 per 1,000.

Enterprise

Custom

Annual agreement

Scout seats across your organization, bulk exports, support terms and the advisory team.

Manage your plan in the dashboard.

Errors and limits

  • 401 with a WWW-Authenticate header: no valid token or key. OAuth clients use the header to start sign-in.
  • Insufficient credits: the call would exceed your organization’s remaining credits. Nothing is charged; credits reset on the first of the month, or raise your plan.
  • Rate limits apply per key per minute. A limited call is refused and costs nothing.
  • Tool errors come back as MCP tool results with isError set and a message the agent can read.
Atria API