city data /your agent /can trust

the first public mcp server for a u.s. municipality. san diego land-use and municipal data any ai agent can query — and every answer ships with its receipts.

protocol
model context protocol
jurisdiction
san diego, california
maintainer
estate atlas
status
live · v0.1
scroll down
connect
sd-mcp · response inspector
200 ok
query
search_municipal_code("fence height rs-1-7")
fences in the front yard of an rs-1-7 lot are limited to 42 inches; 6 feet elsewhere.
sourcesdmc §142.0340
data_as_of2026-05-14
freshness_slamonthly
citations1 · /license
the corpus live · refreshed on schedule
0parcels
every taxable lot in the city, refreshed quarterly
0permits
building, electrical, plumbing — refreshed weekly
0cases
code-enforcement history per parcel
0tools
composable mcp tools across five domains

every answer ships
with its receipts .

how it works

most government data is html you scrape and pray. sd-mcp returns structured answers wrapped in a _meta envelope — source url, the date the data was last verified, the freshness sla, page-anchored citations, and license.

no u.s. municipality publishes machine-readable freshness or citations. we do. agents stop hallucinating municipal law because the grounding is in the payload.

  • 01source urlevery claim traceable
  • 02data_as_ofiso 8601 timestamp
  • 03freshness_slaweekly · monthly · quarterly
  • 04citationspdf page anchors
  • 05licensedeclared per response
response._meta json
// every tool response wraps payload in _meta
{
  "answer": "fences in the front yard of an
            rs-1-7 lot are limited to 42 inches;
            6 feet elsewhere.",
  "_meta": {
    "source":        "sdmc §142.0340",
    "source_url":    "https://docs.san…/142_0340",
    "data_as_of":    "2026-05-14",
    "freshness_sla": "monthly",
    "citations":     ["p.7 · §142.0340(b)"],
    "license":       "/license",
    "jurisdiction":  "san-diego-ca"
  }
}

14 tools /
five domains

the tools
01search_municipal_codecodesemantic search across ~27k sdmc chunks (1,966 docs).
02get_code_sectioncodefetch a specific sdmc section by id, with citations.
03get_table_of_contentscodewalk the sdmc hierarchy from chapter to subsection.
04get_case_rulingscodeadministrative interpretations and precedents tied to a section.
05list_bulletinsbulletinsbrowse all 456 information bulletin documents.
06get_bulletinbulletinspull a single bulletin with pdf page anchors.
07lookup_parcelparcelsapn or address lookup across 1.09m san diego parcels.
08get_permits_for_parcelparcelspermit history — 240k records, weekly refresh.
09get_violations_for_parcelparcels17.4k code-enforcement cases, weekly refresh.
10get_zone_infozoningbase zone designation, allowed uses, density, height limits.
11get_setbacks_for_zonezoning21 setback profiles — front, side, rear, by zone class.
12get_overlays_for_apnoverlayscoastal, hillside, historic, transit overlays — per parcel.
13get_overlays_for_pointoverlayslat/lng → every overlay that covers it.
14data_freshnessmetaper-dataset data_as_of + sla. machine-readable.
install hosted · no infra to run

one url.
any mcp client.

sd-mcp is a hosted, streamable-http mcp server. point any compliant client at the endpoint and the 14 tools become available — no local install, no api keys for the free tier, no sdk.

claude desktop cursor continue.dev cline any mcp client
~/.config/claude/mcp.json
{
  "mcpServers": {
    "san-diego": {
      "url": "https://sandiego.estateatlas.ai/mcp"
    }
  }
}

launching free.
pricing pending /

pricing
freepending
$0/ mo
1,000 calls / month
  • all 14 tools
  • full _meta envelope on every response
  • weekly & quarterly refresh on all datasets
  • community support
start free
developerpending
$29/ mo
25,000 calls / month
  • everything in free
  • higher rate limits, priority queue
  • per-key analytics & usage
  • email support
get on the list
propending
$299/ mo
150,000 calls / month
  • everything in developer
  • sla on freshness & uptime
  • webhook on dataset updates
  • direct line to the maintainers
talk to us

questions /
and answers

faq
01 what is mcp, exactly? +
model context protocol is an open standard for connecting ai agents to tools and data. sd-mcp exposes san diego's municipal data through that protocol, so any compliant client — claude desktop, cursor, your own agent — can query it natively, with structured arguments and structured responses. no scraping, no brittle html parsing, no hallucinated section numbers.
02 is the data actually current? +
every tool returns data_as_of and freshness_sla in its _meta envelope. permits and code-enforcement refresh weekly. parcels and overlays refresh quarterly. ordinances and bulletins refresh on publication. your agent can read the freshness and decide whether to trust the answer — automatically.
03 where does the data come from? +
official city of san diego sources — the municipal code (sdmc), accela (permits, cases), sangis (parcels, overlays), and development services information bulletins. every record carries its source_url; nothing is paraphrased into the index without a citation back.
04 is it really free? +
yes — 1,000 calls per month, every tool, the full _meta envelope. paid tiers exist but are marked pending while we calibrate against real usage. for the foreseeable future the goal is breadth of adoption, not arbitrage. we'll give meaningful notice before billing turns on.
05 can i self-host? +
not at v0.1. the hosted endpoint is the contract right now — that's how we can guarantee a freshness sla. a source-available reference implementation is on the roadmap once the ingestion pipelines stabilize against the city's release cadence.
sd-mcp · v0.1 · live