Skip to main content
Glama
frogr

nyc-open-data-mcp

by frogr

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoHTTP server host. Default is 0.0.0.0.
PORTNoHTTP server port. Default is 3000.
TRUST_PROXYNoSet to 1 when running behind a single reverse proxy such as Render's. Default is 0.
CORS_ORIGINSNoCORS origins. Default is * (open) so browser-based clients work; set to a list to restrict it.
MAX_BODY_BYTESNoMaximum request body size in bytes; larger bodies get HTTP 413. Default is 65536.
SOCRATA_APP_TOKENNoFree Socrata app token. Unauthenticated requests share a small IP-based rate limit; a token raises it a lot. Optional but recommended.
REQUEST_TIMEOUT_MSNoWall-clock time limit per /mcp request in milliseconds; slow requests get HTTP 504. Default is 30000.
SOCRATA_TIMEOUT_MSNoPer-request timeout in milliseconds. Default is 20000 for stdio, 15000 for HTTP.
DAILY_REQUEST_LIMITNoGlobal cap on requests per UTC day. Default is 5000.
RATE_LIMIT_PER_MINUTENoPer-IP token bucket rate limit for POST /mcp, in requests per minute. Default is 30.

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": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_datasetsA

Search the NYC Open Data catalog (data.cityofnewyork.us) by keyword. Returns dataset ids, names, short descriptions, last-updated dates and column names. Use this first to find a dataset id and its columns before calling query_dataset.

query_datasetA

Run a read-only SoQL query against any NYC Open Data dataset by id. Supports select / where / order / group / full-text q, with limit (max 500) and offset paging; the response says when more rows exist. Get the dataset id and column names from search_datasets first. For counts, prefer select="count(*)" or a group-by over pulling raw rows.

restaurant_inspectionsA

Look up NYC restaurant health inspections (DOHMH). Filter by name fragment, ZIP code, borough and/or cuisine (at least one). Returns each restaurant's latest letter grade, latest inspection date, score and a violations summary. Paginated, most recently inspected first.

service_requests_311A

Summarize NYC 311 service requests for an area and time window. Filter by ZIP codes, borough and/or complaint type (substring); dates default to the last 30 days (max range 366 days). Returns the total, top complaint types with counts and share, and a few recent example requests.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation4/5

search_datasets (catalog discovery) and query_dataset (SoQL execution) are clearly separated by a documented workflow. However, restaurant_inspections and service_requests_311 overlap with what query_dataset could do against those same datasets, so an agent may wonder when to use the specialized tools versus the generic query tool.

Naming Consistency3/5

All names are snake_case, which is good, but conventions are mixed: search_datasets and query_dataset use verb_noun, while restaurant_inspections and service_requests_311 are noun phrases with no verb. Readable but not a predictable pattern.

Tool Count4/5

Four tools is on the lean side but each earns its place: one discovery, one general query, and two high-value pre-built domain queries. A reasonable, well-scoped set for the server's purpose.

Completeness4/5

search_datasets plus query_dataset give broad coverage of the whole NYC Open Data catalog, and the two specialized tools add convenience aggregations. Minor gaps like dataset metadata/column-listing or write operations exist but read-only SoQL over any dataset covers most needs.

Maintenance

ActivityMaintained
ResponsivenessNo issues