Skip to main content
Glama
nyc-311-mcp

nyc-311-mcp

cb_monthly_list

Lists a community district's monthly 311 requests, including new, unresolved, and since-closed cases with status, agency, and address; supports paging and CSV export.

Instructions

The monthly list of Charter § 1075(d), current law, for one community district: every 311 request created in a month (default: the newest complete month), plus earlier requests still not closed and those unresolved at the month's end that have closed since; each with its number, date, category, description, agency, current status and address. Pages with limit and offset; format 'csv' returns the page as CSV text. From BoardStat's nightly files. A BetaNYC rebuild from NYC Open Data, not the City's official report. No ZIP codes, nothing before 2020.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "community_district": "<community_district>"
    },
    "name": "cb_monthly_list"
  }
}

Input Schema

NameRequiredDescriptionDefault
partNoall (default); the month's new requests; earlier requests still not closed; or earlier requests unresolved at the month's end and closed since.
limitNoHow many rows to list (default 100).
monthNoMonth, YYYY-MM. Default: the newest complete month (the law's 'immediately preceding month').
formatNo'rows' (default) or 'csv': the page as CSV text, columns as in 'columns'.
offsetNoRows to skip, for the next page (next_offset).
data_as_ofNoFor the next page, next_page.data_as_of; a page from a newer build is refused.
community_districtYes306, BK06 or 'Brooklyn 6' (all forms: server instructions).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.2.0

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden, and it does substantial work: nightly BoardStat source files, a BetaNYC rebuild rather than the City's official report, and hard scope limits (no ZIP codes, nothing before 2020). It also discloses pagination mechanics and that a page from a newer build is refused via data_as_of. Gaps remain for a query tool of this weight – no statement about result volume, cost, or whether the underlying data lags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and inclusion rules are front-loaded in the first sentence, followed by two short scoping sentences, so nothing is buried. The opening sentence is long and clause-heavy, and the definition is delivered as one undifferentiated block where a list of parts or caveats would scan faster.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Seven parameters and no output schema create a real explanatory burden, and the description compensates by naming the returned fields and the CSV option. Provenance, limits, and pagination are all covered. What is missing is guidance on the data_as_of/next_offset paging loop and any note about freshness lag, both of which an agent would otherwise need to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines every parameter, and the description largely restates it ('Pages with limit and offset; format csv returns the page as CSV text'). The month default rationale ('the law's immediately preceding month') and the returned-field inventory add modest value, but nothing new is said about the community_district formats or the enum meanings beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and legal framing ('the monthly list of Charter § 1075(d) ... for one community district') and then enumerates exactly which records are included: new-in-month, still-open earlier requests, and those unresolved at month end but closed since. It also lists the returned fields and scope limits, which lets an agent tell this apart from a generic 311 list without opening the schema. It stops short of naming a sibling it is not, so the top score of 5 is not fully earned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than advised: the statute framing, the default month ('the newest complete month'), and the Caveats ('No ZIP codes, nothing before 2020') tell an agent when the tool fits, and the 'part' enum covers the four report variants. Nothing states when to prefer this over the obvious alternatives such as get_service_request_list or find_requests, and there is no explicit exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.