Skip to main content
Glama
opendata-atlas

opendata-atlas

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SOCRATA_APP_TOKENNoA Socrata application token. If a portal rejects the token, the server reports `app_token_rejected` rather than silently dropping it. A token may not be accepted by every portal.
OPENDATA_ATLAS_PORTALSNoLimits the server to the portals you list, by id or alias, separated by commas (for example, `seattle,chicago`). Any other portal fails with `portal_not_enabled`. Names that match no portal are ignored, so a list in which nothing matches blocks every portal. Unset or blank, every registered portal is served.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
completions
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
atlas_find_portalsA

Find portals by place name; the portal id it returns goes in every other tool's portal.

Call this before any tool that takes portal when you lack its id. It never picks a portal for you: an ambiguous place returns every candidate, told apart by jurisdiction.level (a city portal and its county portal can both match). When candidates differ in jurisdiction.level, ask the user which they mean, unless the request already says. Candidates are ordered by match (alias, name, place_name, host), then tier, then id. No match is an empty candidates list, not an error. With cursor, send only cursor and optionally page_size. Example: {"query": "Chicago"}. Reads the shipped registry; no network call.

atlas_search_datasetsA

Find a portal's datasets by topic. Call when you lack a dataset id.

Results are candidates: match_evidence lists the query words each one's metadata lacks. Only queryability "supported" can be described or queried; a tabular search also returns up to 3 external_matches, which cannot. Illustrative example: {"portal": "example-city", "query": "fire 911"}. Typically 1-3 s.

atlas_describe_datasetA

Decide whether and how to query a dataset: columns, live row count, data_coverage (actual time range), place fields for "in " questions (with reliability), and geo columns for near.

Call before querying a dataset whose columns you do not know. For area questions, use detail="full". Filter a place field on its value, never its label; an area may span several values. Illustrative example: {"portal": "example-city", "dataset_id": "abcd-1234", "detail": "full"}. With column_cursor, send only portal, dataset_id, column_query, detail, column_cursor. Typically 1-3 s; fails with query_timeout after 30 s.

atlas_query_datasetA

Run a bounded read or aggregate on one dataset; paging stops at 10,000 rows.

For counts and breakdowns, use count() with group_by, not row paging. With cursor, send only portal, dataset_id, cursor, and optionally page_size or detail. For all rows, give the user download_url (clauses mode, detail="full") instead of paging. Honor coverage_warnings and knowledge_notice in the answer; take relative dates from source.now_local. Illustrative example: {"portal": "example-city", "dataset_id": "abcd-1234", "select": ["type", "count() AS n"], "group_by": ["type"], "order_by": ["n DESC"]}. Typically 1-5 s; fails with query_timeout after 30 s.

atlas_get_referenceA

Read the server's reference: capability summary, portals, dataset guides, SoQL help, error catalog, and tier definitions. Call with no arguments for the index.

If your client did not show you the server instructions, read topic capabilities before your first query. Example: {"topic": "soql", "item_id": "dates"}. With cursor, repeat only topic and, for guides, portal.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
capabilitiesWhat the server does and does not do, binding rules, and failure carriers. Read first.
reference-indexEvery reference topic except guides (see portals).
portals-indexCurated and profiled portals, each linking its summary.
soql-indexSections on syntax, filtering, aggregation, dates, geography, and paging.
errors-indexThe error envelope, codes by tool, and authentication repair.
contributing-indexSections defining portal tiers, knowledge levels and validation, and the path for contributing a portal's pack.

TDQS

A4.5/5.0

Scored across 5 tools

Disambiguation5/5

Each tool occupies a distinct stage of a clear pipeline: find a portal, search its datasets, describe a dataset's schema, query it, and read static reference material. Descriptions explicitly state prerequisites and hand-offs (portal id, dataset_id), so an agent can sequence them without confusion. No two tools overlap in purpose.

Naming Consistency5/5

All five tools share the `atlas_` prefix and a consistent verb_noun pattern (find_portals, search_datasets, describe_dataset, query_dataset, get_reference). The singular/plural noun choice matches cardinality sensibly (portals/datasets vs. dataset).

Tool Count4/5

Five tools is on the lean side but each maps to a necessary step in an open-data discovery-to-query workflow, with no filler. A slightly larger surface (e.g. a dedicated portal listing) might be warranted, but nothing feels padded.

Completeness4/5

The surface covers the full read-only lifecycle: portal discovery, dataset search, schema/coverage inspection, bounded querying with paging and external download pointers, plus a reference/help endpoint for error catalog and SoQL guidance. Only minor gaps remain (e.g. no explicit bulk export tool, instead delegating to download_url).

Maintenance

ActivityMaintained
ResponsivenessOutdated data