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/mcpCursor (~/.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
DatasetJSON-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.