connect

Put the records inside your AI

Ask Claude or ChatGPT what a building on Lake Street last sold for and it will guess. Paste this one address into its settings and it stops guessing — it reads 39 files of Minneapolis–St. Paul public records instead, 13,680,744 rows of them. Takes about thirty seconds. It is free, it needs no account and no key, and the only thing it can read is what a county already published.

https://brickandmortar.dev/mcp

Thirty seconds, in whichever one you use

Claude

  1. Settings → Connectors
  2. Add custom connector
  3. Paste the address. Save.
# or, in Claude Code:
claude mcp add --transport http \
  bricks https://brickandmortar.dev/mcp

ChatGPT

  1. Settings → Apps & connectors
  2. Turn on Developer mode under Advanced
  3. Create, paste the address, no authentication

Cursor & VS Code

One click each — both ask you to approve before they write anything.

Add to Cursor Add to VS Code
Claude Code, Codex, and everything else

Claude Code — one command, and -s user makes it available in every project rather than this one:

claude mcp add --transport http -s user bricks https://brickandmortar.dev/mcp

Codex CLI — a url with no command selects the HTTP transport; older builds need the feature flag above the entry:

codex mcp add bricks --url https://brickandmortar.dev/mcp

Gemini CLI — one command, and the extension carries a note telling the model what the records do and do not cover:

gemini extensions install \
  https://github.com/2016judea/small-business-intelligence-mcp

Or by hand in ~/.gemini/settings.json — note Gemini wants httpUrl, not url:

{ "mcpServers": { "bricks": { "httpUrl": "https://brickandmortar.dev/mcp" } } }

Cline, Windsurf, Zed, anything else — the config every one of them takes some spelling of. VS Code calls the top-level key servers; almost everyone else calls it mcpServers, and pasting the wrong one is the usual reason a server never appears:

{
  "mcpServers": {
    "bricks": { "type": "http", "url": "https://brickandmortar.dev/mcp" }
  }
}

What it can answer once it is in

Two of the 17 tools read the records themselves — every dataset this site publishes, the same files on the front page, joined and queryable without a download. Sales, parcels, assessed values, licences, permits, inspections, emergency calls, contamination, flood, wages.

The other 14 are frameworks rather than data, and they work in any American metro, not only this one:

And one that answers nothing: it files a request. If it cannot tell you something — a dataset we do not hold, a city we do not cover, an answer that looks wrong — ask it to pass that on and it reaches a person here, with whatever you want to say and an email address only if you give one.

What it is not

The records are Minneapolis–St. Paul only. Ask it about Denver and the 14 frameworks still answer, but no file behind them does. It cannot write anything, buy anything, or see anything of yours — every tool reads, and there is nothing to log in to. The one exception is the request above, which sends only what you dictate and can reach nobody but us. And it does not know today: each file is as current as the county that published it, which every file's own read_before_quoting states layer by layer.

Where it lives

Listed in the official MCP Registry as io.github.2016judea/small-business-intelligence. The server is open source — read it, fork it, or run your own copy. It costs us nothing to serve, which is why it is free and stays free.