Skip to content

For agents

Use an MCP client to search the catalog, query supported datasets, and look up Atlanta locations. No account or API key is required. Results include sources and retrieval dates. The site caches catalog entries and query results.

Connect

The MCP endpoint uses Streamable HTTP:

https://open-data-atl.vercel.app/api/mcp

Claude Code

claude mcp add --transport http open-data-atl https://open-data-atl.vercel.app/api/mcp

Cursor (~/.cursor/mcp.json) and other mcpServers clients

{
  "mcpServers": {
    "open-data-atl": {
      "url": "https://open-data-atl.vercel.app/api/mcp"
    }
  }
}

VS Code (.vscode/mcp.json)

{
  "servers": {
    "open-data-atl": {
      "type": "http",
      "url": "https://open-data-atl.vercel.app/api/mcp"
    }
  }
}

JSON API

curl -s -X POST https://open-data-atl.vercel.app/api/tools/search_datasets \
  -H 'content-type: application/json' \
  -d '{"query":"crime"}'

Tools

The sources field lists the publisher, source URL, terms, and retrieval date. Query results include a truncated flag when they exceed the row limit.

search_datasetsSearch Atlanta datasets
Search every Atlanta public dataset (City of Atlanta, Atlanta Police, Fulton County, MARTA, Census) by keyword. Returns ranked datasets with ids, freshness, and terms. Use the id with describe_dataset and query_dataset. Input schema
describe_datasetDescribe a dataset
Fields and types, record count, freshness and update dates, terms, attribution, known quality flags, and example query_dataset inputs for one dataset id. Input schema
query_datasetQuery a dataset
Query rows from one dataset with filters, select, group by (with count/sum/avg/min/max), order, and limit (max 1000). Map layers also accept near: {lat, lon, radiusMeters}. Returns rows, a truncated flag, and the upstream query URL. Call describe_dataset first for field names. Input schema
neighborhood_profileProfile an Atlanta location
For an Atlanta street address or lat/lon: neighborhood, NPU, council district, zoning, crime in the last 30 days by NIBRS group, MARTA rail stations within a mile, parks within 800 m, and renter cost burden for the census tract. Each part has its own source and date. Input schema
report_data_issueReport a data problem · opens a GitHub issue
File a data-quality report about a dataset (wrong values, impossible dates, bad locations, duplicates, missing or stale data). Creates a GitHub issue for review and returns its URL. Input schema
list_data_issuesList data problem reports
List data-quality reports, optionally for one dataset id and one review status. Input schema

Try these prompts

  • Count APD offense records for NPU M in the last 30 days, by offense type. Cite the source.
  • Profile 55 Trinity Ave SW, Atlanta: zoning, council district, nearby MARTA stations and parks, and rent burden.
  • Find Atlanta datasets about building permits and tell me how fresh each one is.
  • Which vendors did the City of Atlanta pay the most in FY2025? Use the Open Checkbook dataset.
  • List the data-quality reports for the APD crime layer and their review status.

Machine-readable files

  • /llms.txt: what this site is and how to use it, in the llmstxt.org format. It is also the MCP resource opendataatl://llms.txt.
  • /llms-full.txt: the same, plus every dataset id and each tool's input schema.
  • /catalog.json: the whole catalog in DCAT-US 1.1, the format data.gov harvests. It is also the MCP resource opendataatl://catalog, in a shorter form.
  • /sitemap.xml and /robots.txt: every page. Crawlers and agents are welcome.
  • Each dataset page carries schema.org Dataset JSON-LD. Dataset ids and page URLs do not change.

Ground rules

  • Cite the publisher from sources. Each dataset's terms come from its publisher, and Open Data ATL does not change them.
  • Ask for counts and groups rather than paging through raw rows. The tools cap rows to protect the publishers' servers.
  • If you find bad data, file it with report_data_issue. You can see what others have filed on the quality page.