curl, jq, and a Mireye API token. We’ll ask about a Manhattan
rooftop, fetch the same location’s flood-risk preset, and then wire up
the hosted MCP server for Claude Code.
1. Pick a coordinate
Use any US lat/lng. We’ll use the corner of Beekman and Park Row in lower Manhattan, near City Hall:lat ∈ [18, 72],
lng ∈ [-180, -65] (lower 48, Alaska, Hawaii, US territories). The Western
Aleutians additionally accept lat ∈ [51, 54], lng ∈ [172, 180).
Anything outside those two regions returns 400 coord_out_of_bounds.
Starting from an address?
If your user typed an address, you do not need to resolve it first —/v1/fetch and /v1/ask both
accept an address in place of lat/lng, and hand back the same quality
information in a geocode block.
Use POST /v1/geocode when you want the coordinate
on its own — to inspect before spending a fetch, or to reuse across calls:
accuracy_type before you use the coordinate: rooftop is on the
parcel, range_interpolation is an estimate along the street and can be
kilometres off in rural areas. Details on
the geocode page.
2. Get a token
/v1/ask and /v1/fetch require a bearer token. Sign in at
www.mireye.com, create an API token in account
settings, and export it:
3. Ask a question
- The planner (Claude Sonnet 4.6) read the question, looked at the
field catalog, and decided only
elevationwas needed. - The terrain layer fetched 3DEP elevation for the coordinate.
- The synthesizer (also Claude Sonnet 4.6) wrote the prose answer, grounded in the fetched value, and the citation engine attached the source.
answer is the prose, confidence
summarizes the whole response, citations is the audit trail, and
fields_used lists exactly which catalog fields the answer depends on.
4. Fetch raw fields
When you know what you want, skip the planner and hit/v1/fetch:
partial_failures array is empty here; on a call where the LCMS source
times out, that field gets moved to partial_failures with retryable: true and the rest of the call still returns 200.
Skip the field list entirely and use a preset for common workflows:
5. Use it from Claude Code
If you previously configured a local stdio server namedmireye-earth,
remove it first:
/mcp, and complete the browser sign-in flow.
Seven tools are then available: mireye_ask, mireye_proximity,
mireye_fetch, mireye_geocode, mireye_lookup, mireye_request_field,
and mireye_field_request_status. Ask Claude:
“What’s the elevation at 40.7128, -74.0060?”Claude will call
mireye_ask, get the cited answer back, and surface
the citation in chat. See
/mcp/installation for Cursor and custom-agent setup.
6. Self-discover the catalog
Long-lived clients (agents, services) should fetch the catalog once at startup and cache it for an hour. This endpoint is public — no token needed:ETag and Cache-Control: public, max-age=3600.
Subsequent requests with If-None-Match: "<etag>" return 304. See
/api-reference/meta-fields for the full
flow.
What’s next
POST /v1/ask
The natural-language endpoint. Two-model planner + synthesizer.
POST /v1/fetch
Fields, presets, and
partial_failures semantics.MCP tools
mireye_ask vs mireye_fetch from an agent’s perspective.POST /v1/ask/stream
Same answer, first tokens in about five seconds.
Pricing and credits
What each call costs, and how to quote a job first.
POST /v1/runs
Screen thousands of locations in one job.