From a file to a sentence
Somewhere under every “look up my property” box is a pile of database tables. This page follows one parcel, Noble Park, from the file the PVA office sends to the sentence a person reads, and says why each step is there.
For the pieces by name, see the database. For the tools and their replies, see the MCP contract.
It narrows on purpose
- 91 tables: the record, its history, the files as delivered, and the reference layers it is read against. Not every table answers a question; most exist so that an answer can be checked.
- 26 functions: the questions the database already knows how to answer. 5 sit behind the public MCP, 7 more serve the county’s own site, 11 are built and not yet used, and 3 are housekeeping.
- 19 tools: what any AI can call. Each one wraps its answer with where it came from.
- 1 sentence: one question, one answer, with the export date in it.
One parcel’s journey
Noble Park is public land, owned by the City of Paducah, so it can be followed all the way down without putting anyone’s private record on a page. Its own card: parcel 095-00-00-026.
The file arrives
The PVA office exports the roll as it always has, and sends it as one zip. The September export (September 23, 2026) is recorded with every file's hash, so what arrived can never be quietly swapped for something else.
Without it, nobody could say which version of the roll an answer came from.
Kept verbatim
The row describing 095-00-00-026 is stored exactly as delivered, with the file and line it came from. Nothing is loaded over the top of it.
Without it, a disagreement about what the office sent could not be settled.
Normalised
The same row is rewritten into the shared vocabulary every county uses: names, codes and formats made comparable, while the original stays untouched beside it.
Without it, every county's export would need its own questions.
Joined to the ground
The parcel's outline is laid over the reference layers for the same ground: terrain, flood, districts. The county's named places are points too, and nine of them fall inside this one outline: Bob Noble Park, the amphitheater, the lake and its fountain, the playground, the swimming pool, the tennis courts, the Paducah Skate Park and the Wacinton sculpture. That is how a name becomes a parcel.
Without it, "Noble Park" would be a search term, not a record.
A function answers
A SQL function answers one narrow question about it: who owns it (the City of Paducah), what it is assessed at ($2,759,000 on the 2027 roll, all of it exempt), what was sold and when (last transferred in 1957).
Without it, every caller would write its own version of the same query, and they would disagree.
A tool wraps it
An MCP tool calls the function and puts the answer in an envelope that says which county, which export, whether it was found, and where each part came from.
Without it, an answer could not show where it came from, and a wrong one could not be traced.
A person reads a sentence
"Noble Park, 2801 Park Avenue, is parcel 095-00-00-026, owned by the City of Paducah. The 2027 roll assesses it at $2,759,000, all of it exempt. As of the PVA's export of September 23, 2026."
Without the export date in the sentence, the reader could not tell a current answer from a stale one.
History is a shape, not a column
A record system that overwrites values can only tell you what it says now. This one adds a row instead, so it can also tell you what it said before, and when that changed.
Is this parcel in a flood zone?
The answer is not written on the parcel. Flood zones are drawn by FEMA, on their own map, and they change on their own schedule. The parcel is drawn by the PVA. To answer the question, the two drawings are laid on top of each other and the system checks where they overlap. That is called a spatial join. Doing it this way means a new flood map changes every answer the day it arrives, without anyone editing a single parcel, and the answer can say which flood map it used.
What a reply carries
Every answer arrives in the same envelope. It says which county and which export it came from, so it can be checked against the record.