Skip to main content
Glama
nyc-311-mcp

nyc-311-mcp

find_district

Identify the community district and City Council district for an NYC address; optionally filter by borough and get close City spelling suggestions when the address is not found.

Instructions

Which community district and City Council district an address is in. Type it as usual ('350 5th Ave'); it is converted to the City's spelling ('350 5 AVENUE') and looked up among addresses in 311 requests since 2020. If not found, says so and suggests close City spellings. Not a geocoder. ZIP codes are ignored. From BoardStat (BetaNYC, NYC Open Data, 2020 on); not an official City report. 311 counts are reports, not problems; 'closed' is not 'fixed'.

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": {
      "address": "<address>"
    },
    "name": "find_district"
  }
}

Input Schema

NameRequiredDescriptionDefault
addressYesStreet address, e.g. '350 5th Ave'. Anything after a comma is ignored.
boroughNoOptional; picks one when the address exists in several boroughs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.2.0

TDQS

A4.5/5.0
Behavior5/5

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

No annotations are supplied, so the description carries the full burden and does so well: it explains address normalization ('350 5th Ave' → '350 5 AVENUE'), the lookup corpus (311 requests since 2020), and the not-found behavior (reports failure and suggests close City spellings). It also discloses data provenance and accuracy caveats, which an agent needs to interpret results responsibly.

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 normalization behavior are front-loaded, and most sentences carry actionable information. The closing caveat about 311 counts being reports and 'closed' not meaning 'fixed' is somewhat tangential for a tool that returns districts rather than counts, so it slightly dilutes focus.

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?

For a two-parameter lookup with no annotations and no output schema, the description covers input handling, lookup scope, failure behavior, and provenance. The only gap is that it doesn't sketch what the response contains (e.g., district name/ID fields), which matters since no output schema exists.

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

Parameters4/5

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

Schema coverage is 100%, so a 3 would be the floor, but the description adds real meaning: input is normalized to City spelling, comma-suffixed text is ignored, and ZIP codes don't affect the lookup. The borough parameter's disambiguation role is left to the schema, which already states it clearly.

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

Purpose5/5

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

The first sentence names a specific lookup: which community district and City Council district an address falls in. It also draws an explicit boundary ('Not a geocoder'), which lets an agent separate this from address/geo siblings like address_history or district_summary without inspecting their schemas.

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

Usage Guidelines4/5

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

The description establishes the use context (address → district lookup) and gives an exclusion ('Not a geocoder', ZIP codes ignored), which is meaningful guidance. It stops short of naming an alternative sibling for related questions (e.g., district_summary for aggregated district data), so routing is implied rather than explicit.

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