This page documents how CityLike collects local-business data, how we measure its quality, what we deliberately withhold, and what we guarantee to agents and companies that consume our data through the MCP gateway.
It is written to be checkable, not promotional. Where our data is weak, it says so.
CityLike is data infrastructure for AI agents covering local businesses in Central Oregon (pilot: Redmond, Prineville, Sisters, La Pine, Madras, Terrebonne). Agents do not scrape our website — they call structured tools over the Model Context Protocol (MCP) and receive JSON.
Our product is the data and its provenance, not a chat interface.
| Source | What it provides | Provenance field |
|---|---|---|
| County / state open data (ArcGIS) | business name, city, category, coordinates | geo_source: google/osm/import |
| OpenStreetMap | POIs, addresses, coordinates | geo_source: osm |
| Public business websites | website, phone, short description | description_quality |
| Keyword classifier / LLM re-check | category assignment | category_source: keyword/llm, category_confidence |
Every business returned by the gateway carries a provenance block:
"provenance": {
"category_source": "llm",
"category_confidence": "high",
"description_quality": "ok",
"geo_source": "osm",
"last_checked": "2026-09-21T09:14:03Z",
"verified": true
}
verified: true alone means only "this record matched its source query at import time".
It is not a completeness or correctness claim — the other fields are.
We audit our own catalog with an independent model judge (gpt-oss:120b) on random samples,
and we publish the result. Method:
Measured 2026-09-21 on a 200-record random sample:
phone present 39%, website 73%, address ~1%, coordinates 77%These numbers are the reason this page exists. We would rather publish 63% and fix it than advertise "verified" and lose the first integration.
Every agent call to the gateway is logged — successful and failed:
AnalyticsAgentCall: agent key, tool, query, city/category filters, hit/miss, latency, timestamp./var/log/citylike/mcp_auth.log: authentication failures (invalid or revoked keys), with source address.Logs exist to (a) let a customer reconstruct what their agent asked and received, and (b) detect key abuse. They are retained for 12 months and then deleted.
This is our Zero-Data-Retention-style commitment for query content: retained for audit, never used for model training or resale.
x-api-key header, SHA-256 hashed at rest (we cannot show you the key back).BusinessQualityAudit).address; use coordinates (lat/lon) with
geo_source, or city.category_confidence, so a caller can filter to high/fixed and ignore the rest.top_n), not aggregate
counts; a count_businesses tool is planned.last_checked", not as ground truth about the world.Data questions, corrections, key requests: info@koper.pro