Connection and authorization
Usehttps://api.mireye.com/mcp as a remote Streamable HTTP endpoint. Local stdio
adapters are retired. Reconnect OAuth after accepting current terms or changing
licensed permissions. A 401 requires sign-in; a 403 can require current terms or
new credential grants. Free Fetch and Geocode do not require a positive balance.
Choosing the right operation
endpoint_retired directs old Lookup/Resolve calls to Enrich, Fetch or Geocode.
Free Fetch rejects parcel fields, including calculations that depend on licensed
parcel geometry. Read mireye://catalog/fields for valid free names. Select Enrich
when the requested output is parcel data.
Basic Search returns identity plus scalar filter values and explicit public
Search/Enrich extras in fields, excluding duplicate top-level values. Extras are
included in the query price. Use a small explicit list for focused output. Setting
enrich: true always attempts the full current Enrich catalog regardless of fields
and returns compact enriched_fields instead. Inspect status and
completion_reason; a partial result cannot establish that no parcels match.
See the one-result walkthrough.
The host times out before Search finishes
Allow at least 210 seconds for Search in the MCP host or HTTP client. Search and inline enrichment share one 180-second default server budget, including waiting for enrichment capacity. Ask has a separate 110-second server deadline and needs a client timeout of at least 120 seconds; that shorter setting is not sufficient for Search. A host timeout or disconnect is not proof of a failed or uncharged operation. Recover the existing operation as described below. A returned Search response withcompletion_reason: "timeout" may still contain confirmed matches and
completed fields; preserve them with an incompleteness caveat.
Capacity and paid retries
For 429 responses, respectretry_after_seconds. Source or capacity failures do
not imply no data. max_cost_usd is a decimal string with at most six decimal
places, not a number of credits. An insufficient balance or spending cap fails
before paid source work starts.
Reuse the same idempotency_key and identical payload when recovering an
in-progress operation, an unknown outcome or a lost response. Omitting the key
can start another operation. A disconnected client can recover saved work by
retrying the same key or reading /v1/operations/{operation_id}. Paid operations
continue under their existing deadline; they do not become unbounded background jobs.
A charged result that could not be saved for replay returns result_not_retained
with a receipt; it is not retryable with that key, and a new key runs the work again.
A completed partial result is saved: replay returns that result without
recomputing its failed fields. A deliberate re-execution after a known terminal
failure, a changed request or a new Search page is new work and needs a new key.
Keep filters, fields and enrich unchanged when continuing with a cursor; cursors
expire after one hour. See paid error recovery.
An incomplete Ask answer returns ask_answer_incomplete, costs zero and may be
retried. A refused question returns ask_question_refused; revise the question.
A failed streaming answer has an error frame and no completed final answer.
Location and field errors
Search requires a positive state selection even with county or geometry filters: usestate or state2 with eq or a nonempty in list. A negative-only ne
filter returns 422 search_invalid_request before paid work.
Choose the field reference for the failing selection:
fields_unknown is a Fetch/Enrich selection error. Search returns
search_invalid_filter or search_invalid_request with correction hints.
Do not retry an unchanged unknown field or substitute a similarly named field
without checking its meaning. Search’s apn is an Enrich parcelnumb; an APN
still needs state/county context and is not a standalone Enrich locator.
Fetch’s HTTP fields_too_many limit counts at most 50 distinct explicit fields
outside the chosen preset; preset members are exempt. The MCP tool’s explicit
fields array accepts at most 50 entries. Enrich has no 50-field cap, and Fetch
presets are not Enrich presets. Standalone Enrich rejects an empty fields list;
omitting or nulling both fields and preset requests all Enrich fields.
coord_out_of_bounds means the coordinate is outside the supported US envelope.
For addresses, inspect accuracy_type, parcel_grade and precision_note.
Range interpolation may be kilometres from a rooftop in rural areas; do not turn
an estimated point into a confident parcel identity.
HTTP 200 has missing parcel evidence
Standalone Enrich requiresparcel_match.status: "matched" before fields are
available. ambiguous, no_match and unavailable return empty fields; never
choose an ambiguous match automatically. A separate Enrich call rematches the
location, so APN equality or nearby coordinates alone do not verify that it found
the original Search parcel. Inline Search enrichment reuses that exact parcel.
Standalone Enrich’s field map is sparse even for a matched parcel. Each returned
field has value, source, confidence, and interpretation_hints, with unit
only when defined. Failed fields and most null-valued fields are omitted, so
fields: {} is valid after a match. A temporary 33-field allowlist retains some
nulls, which can mean domain absence or a missing source attribute. Do not treat
either null or omission as evidence of a negative finding.
Standalone Enrich does not expose field statuses, source_url metadata, timestamps,
vintage, TTL, notes, lifecycle or failure details; top-level fetched_at and
partial_failures are omitted too. Inline Search enrichment uses the same sparse
field projection under enriched_fields, without per-match status/error wrappers.
Read overall Search completion status; omitted fields alone do not establish failure.
Retrying a saved operation returns its saved result without refreshing fields.
Report unexpected server errors with the request or operation ID. Do not include
API keys, OAuth tokens or private addresses in public issue reports.
Guided setup and HTTP progress
Run the pinned helper to diagnose its saved account and make a free HTTP Fetch:connect --all --dry-run; remove
only unchanged installer-owned configuration with connect --all --remove.
Keep saved credentials private and exclude them from bug reports.
Only a meaningful successful Fetch field sets first_call_at and completes
onboarding. Reports of installation and verification are advisory; a successful
HTTP proof does not prove client OAuth authorization or an MCP tool call.
Complete the hosted client’s browser authorization and verify its tools separately.
The helper’s default local-server invocation and device login remain retired.