Skip to main content

Connection and authorization

Use https://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 with completion_reason: "timeout" may still contain confirmed matches and completed fields; preserve them with an incompleteness caveat.

Capacity and paid retries

For 429 responses, respect retry_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: use state 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 requires parcel_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:
Copy the prompt again on Mireye setup to recover the same valid setup key or replace a revoked key. Accept changed terms there before starting a new setup; old keys never gain new permissions. A setup retry does not grant another welcome balance. Ordinary dashboard keys remain show-once; this recovery applies only to the guided setup key. If a client is missing, open or install it first. If a custom Mireye entry, modified skill, invalid JSON/TOML or concurrent setup prevents installation, review the reported path and resolve the conflict before retrying. The helper preserves user configuration. Inspect with 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.