ny-data-registry-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NY_DATA_INDEX | No | Where the harvested SQLite index lives. | ${HOME}/.cache/betanyc/ny-data-registry/ny-data-index.sqlite |
| NY_DATA_OFFLINE | No | Set to 1 to refuse every network call. | off |
| NY_DATA_CACHE_DIR | No | Registry refresh cache and HTTP cache directory. | ${HOME}/.cache/betanyc/ny-data-registry |
| SOCRATA_APP_TOKEN | No | Socrata app token sent as X-App-Token to the Socrata Discovery API. | |
| NY_DATA_MAX_LAYERS | No | Per-portal cap on ArcGIS field requests per harvest. | 250 |
| NY_DATA_MIN_INTERVAL_MS | No | Minimum gap between requests to one host; cannot be set below 1000. | 1000 |
| NY_DATA_REGISTRY_REFRESH | No | Set to 0 to never fetch the published registry and use the bundled copy instead. | on |
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
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_sourcesA | Find New York open data portals and sources (state, county, city, agency, library, nonprofit) in BetaNYC's registry by topic, name or place. Returns each source's portal URL, platform family, API type, dataset count, status and last-verified date. Searches portal names and notes, not dataset titles (use search_datasets for datasets). Default status filter is 'live'. |
| list_sources_for_placeA | Everything the registry knows for one New York place (county, one of the 62 cities, an NYC borough, or a region): its own portal(s), sources for cities inside it, regional sources, and statewide sources that cover it. Says plainly whether the place has a portal, was checked and has none ('no-portal-exists'), or is not in the registry ('not-in-registry', which means unchecked, not absent). |
| how_to_queryA | How to get data from one registry source: its endpoint (copied verbatim, never guessed), API type, whether a key is needed and which env var holds it, an example request, and which MCP server to hand off to (the |
| check_sourceA | Live check of one source's portal URL: one polite request, redirects reported (not followed), HTTP status, response time, and whether that matches the registry's status. Never calls key-required or account-gated sources, and reports a bot block rather than working around it. |
| registry_infoA | Registry row counts by status, tier and platform family; when the registry was generated and where this copy came from (bundled or refreshed from GitHub Pages); unmapped platform strings; and the harvested index's size and last harvest date. |
| search_datasetsA | Search dataset titles, descriptions, tags and column names across the harvested Socrata and ArcGIS portals in New York (needs the harvested index). Filter by place, portal, platform family, download format (csv, geojson, shapefile, kml, api, xlsx) or last-updated date. Each result gives the portal, link, formats, update date, and for Socrata the domain + 4x4 to hand to the |
| get_dataset_columnsB | Column names, field names, types and descriptions for one dataset from the index, plus every distribution (format + URL), license, publisher, extent and per-field provenance (from the portal vs derived here). |
| find_joinableA | Datasets that share a join key with this one, grouped by key: BBL, BIN, borough, community district, council district, census tract, SWIS, FIPS, ZIP. Uses a curated key-column map, not raw column-name equality. |
| whats_newA | Datasets added, changed or removed in the index since a date, and datasets whose portal says they were updated since then. Optional portal filter. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools have clearly distinct roles: source discovery, place-level source lookup, query instructions, live checks, registry metadata, dataset search, column inspection, join discovery, and change tracking. The only meaningful overlap is find_sources versus list_sources_for_place when a place is used as a search term, but the descriptions clarify the difference between a general search and a comprehensive place profile.
The set mostly follows a consistent snake_case verb_noun convention: find_sources, list_sources_for_place, check_source, search_datasets, get_dataset_columns, find_joinable. Minor deviations are registry_info and whats_new, which are noun/phrase-style rather than verb_noun, but overall the naming remains predictable.
Nine tools is well-scoped for a registry/discovery server, with each tool covering a distinct part of the workflow: source discovery, place lookup, query guidance, health checks, registry metadata, dataset search, column inspection, joins, and change tracking. No tool feels redundant or missing from a count perspective.
The surface covers the core lifecycle well: finding sources, understanding how to query them, checking liveness, searching harvested datasets, inspecting columns, finding joinable datasets, and tracking changes. Minor gaps remain, such as a dedicated single-source detail tool beyond how_to_query or a direct dataset-detail lookup beyond column inspection, but agents can work around these.