NYC 311 MCP1.2

Every tool

nyc-311-mcp has 21 tools. You don't need to know their names. Ask your question in plain English and your AI assistant picks the tool. Below is what each one does, a few things to try, and a replay of a real question and answer.

If this is an emergency, or if you think this is an emergency, call 911. Every answer from every tool ends with that line. Danger detection is a best effort and it will miss some emergencies.

The demos are real answers, captured November 9, 2026, with BoardStat data as of November 9, 2026, with 311 requests through November 8. We shortened them to fit, and left out home addresses. Your numbers will be newer.

  1. Help reporting a problem (3)
  2. Your community district or Council district (11)
  3. The Local Law 47 reports (3)
  4. Today in the city (2)
  5. Look up a 311 request (2)

Help reporting a problem

Tell it what's wrong in your own words. It finds the City's own 311 article for that problem, the agency that handles it, and every way to report it. It can also write a short report for you to paste in. It never files anything. You do that yourself.

how_to_report

New in 1.2.0Needs a free 311 API key

Describe the problem the way you'd tell a neighbor. It searches the City's 311 articles and gives back the best match: the article title and link on 311 Online, the agency, the 311 problem type, what the City says happens next, and every way to report it. Give it your district and it also tells you how often people there reported the same thing. If your description sounds dangerous, the first line tells you to call 911. It catches a lot, but it will miss some emergencies, so don't count on it for that.

Try asking:

  • “There's a pothole on my block that keeps getting bigger. How do I report it?”
  • “My upstairs neighbor plays loud music every night.”
  • “No heat in my apartment.”
  • “Overflowing trash can and a broken bench in the park.”
A real question and answer, November 9, 2026. Answer shortened.

There's a pothole on my block that keeps getting bigger. How do I report it? I'm in Brooklyn Community District 6.

The assistant calls how_to_report(description="there's a pothole on my block that keeps getting bigger", borough="Brooklyn", community_district=306)

"first_line": "Best match: \"Pothole or Cave-In on Street\" (KA-01093), handled by the Department of Transportation, 311 problem type \"Street Condition\". Confidence strong. Article text as of 2026-11-09."
"portal_url": "https://portal.311.nyc.gov/article/?kanumber=KA-01093"
"call_911": "Call 911 to report an unprotected street opening that could cause an accident."
…
"label": "the last 365 days of data (2025-11-09 to 2026-11-08)"
"requests": 1448
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
It found the City's pothole article, the agency, and the City's own warning about open holes. It also counted 1,448 street-condition reports in Brooklyn 6 over the past year.
A real question and answer, November 9, 2026. Answer shortened.

Smoke pouring out of the apartment next door

The assistant calls how_to_report(description="smoke pouring out of the apartment next door")

"first_line": "Call 911 to report smoke or fumes."
"source": "311 article KA-02220 (\"Smoke or Fumes\"), https://portal.311.nyc.gov/article/?kanumber=KA-02220"
"confidence": "strong: the City's own article for the danger detected; call 911 first"
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
When a description sounds dangerous, the first line says to call 911, in the City's own words when the City has an article for it.

draft_311_report

New in 1.2.0Needs a free 311 API key

Writes a short report you can paste into 311 Online: the problem, where, when, and what you saw. It doesn't fill in anything you didn't tell it. If something is missing, it marks the gap and asks you. It links the right 311 page, lists the City's Problem Detail options (from a 2024 City list, so they may be out of date), and says what happens after you report. It won't write a draft when it sees danger. It tells you to call 911 instead. It doesn't send anything or fill in any form.

Try asking:

  • “Help me write a 311 report about a pothole at 7th Avenue and 9th Street in Brooklyn. It's been there since last week.”
  • “Draft a 311 report about a broken streetlight on my corner.”
A real question and answer, November 9, 2026. Answer shortened.

Help me write a 311 report about a pothole at 7th Avenue and 9th Street in Brooklyn. It's been there since last week.

The assistant calls draft_311_report(description="pothole", location="7th Avenue and 9th Street", borough="Brooklyn", when="since last week")

"first_line": "Draft ready for \"Pothole or Cave-In on Street\" (KA-01093). The City does not publish each form's exact fields, so the form may ask for things this draft doesn't cover."
"paste_text": "Problem: Pothole or Cave-In on Street (311 problem type: Street Condition)\nWhere: 7th Avenue and 9th Street, Brooklyn\nWhen: since last week\nWhat I saw: pothole"
…
"not_sent": "This draft is not sent anywhere and the server files nothing. The person reports the problem themselves, on 311 Online, in the NYC311 app, by phone or by text."
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
A draft to paste in yourself, the page to paste it on, and a reminder that nothing was sent.

list_311_categories

New in 1.2.0Needs a free 311 API key

Browse 311's own topics, the same ones on 311 Online, when a match looks wrong or you just want to see what 311 covers. Pick a topic to list its articles, 20 at a time.

Try asking:

  • “What kinds of things can I report to 311?”
  • “Show me 311's noise articles.”
A real question and answer, November 9, 2026. Answer shortened.

What kinds of things can I report to 311?

The assistant calls list_311_categories()

"name": "Benefits & Support"
"description": "Affordable housing, homelessness, SNAP (food stamps), cash assistance, child care, volunteering, donating."
"name": "Businesses & Consumers"
…
"count": 115
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
311's 115 categories, with the City's own descriptions.

Your community district or Council district

These read the files BoardStat builds every night from NYC Open Data, with 311 requests from 2020 on. Every answer links to the BoardStat page with the same district, dates and problems, so you can check the numbers yourself. No API key needed.

find_district

New in 1.2.0No key needed

Type an address the way you normally would. It tells you the community district and the Council district, and how many 311 requests have been made there since 2020.

Try asking:

  • “What community board and Council district is 250 Broadway in?”
A real question and answer, November 9, 2026. Answer shortened.

What community board and Council district is 250 Broadway in?

The assistant calls find_district(address="250 Broadway", borough="Manhattan")

"message": "Found as 250 BROADWAY."
"label": "Manhattan CD 1"
"label": "Council District 1"
"requests_at_this_address": 148
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
250 Broadway is in Manhattan Community District 1 and Council District 1.

district_summary

New in 1.2.0No key needed

The big picture for one district: how many requests, how many aren't closed, how long they take to close, and the top problems. For each top problem, it compares the district's share with the borough's and the city's.

Try asking:

  • “Give me a summary of 311 in Brooklyn Community Board 6.”
  • “What does 311 look like in Council District 7 this fiscal year?”
A real question and answer, November 9, 2026. Answer shortened.

Give me a summary of 311 in Brooklyn Community Board 6.

The assistant calls district_summary(community_district=306, limit=5)

"label": "2025-11-01 to 2026-11-08"
"requests": 59922
"not_closed": 3580
"median_days_to_close": 0.2
…
"problem": "Illegal Parking"
"district_share": 0.2836
"borough_share": 0.2011
"city_share": 0.1588
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
59,922 requests in a year. Illegal parking is 28% of Brooklyn 6's requests, compared with 20% in Brooklyn and 16% citywide.

top_problems

New in 1.2.0No key needed

The most-reported problems in a district for any period, next to the same days a year earlier.

Try asking:

  • “What were the top 311 complaints in Brooklyn 6 in the last 30 days?”
  • “Top problems in Council District 39 last fiscal year?”
A real question and answer, November 9, 2026. Answer shortened.

What were the top 311 complaints in Brooklyn 6 in the last 30 days?

The assistant calls top_problems(community_district=306, last_days=30, limit=5)

"label": "the last 30 days of data (2026-10-10 to 2026-11-08)"
"problem": "Illegal Parking"
"requests": 2313
"same_days_a_year_earlier": 1297
"change_pct": 78.3
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
Illegal parking reports were up 78.3% from the same 30 days a year earlier.

problem_trend

New in 1.2.0No key needed

One problem, month by month, in one district, with the same days a year earlier next to each month.

Try asking:

  • “How has residential noise in Brooklyn 6 changed month to month this year?”
A real question and answer, November 9, 2026. Answer shortened.

How has residential noise in Brooklyn 6 changed month to month this year?

The assistant calls problem_trend(community_district=306, problem="Noise - Residential", last_days=365)

"problem": "Noise - Residential"
"requests": 2676
"month": "2025-12"
"requests": 184
"same_days_a_year_earlier": 152
…
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
2,676 residential noise reports in a year, with every month next to the year before.

agency_response

New in 1.2.0No key needed

For each agency: how many requests, how many are closed, and the median and average days to close. Remember that closed doesn't mean fixed.

Try asking:

  • “How fast do agencies close requests in Council District 39?”
  • “Which agency is slowest in Bronx 1 this fiscal year?”
A real question and answer, November 9, 2026. Answer shortened.

How fast do agencies close requests in Council District 39?

The assistant calls agency_response(council_district=39, last_days=90, limit=5)

"agency_name": "Department of Housing Preservation and Development"
"requests": 2067
"not_closed": 467
"median_days_to_close": 6
"average_days_to_close": 10.3
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
Over the last 90 days, HPD took a median of 6 days to close a request in Council District 39.

still_open

New in 1.2.0No key needed

Requests that aren't closed yet, oldest first, with how many days each has been open and a count by agency. The City doesn't define its statuses, so we explain each one and label the explanation as ours.

Try asking:

  • “What 311 requests in Brooklyn 6 are still open?”
  • “Which agency has the most open requests in Queens 1?”
A real question and answer, November 9, 2026. Answer shortened.

What 311 requests in Brooklyn 6 are still open?

The assistant calls still_open(community_district=306, limit=5)

"not_closed": 9372
"agency_name": "Department of Parks and Recreation"
"not_closed": 2238
…
"problem": "New Tree Request"
"status": "In Progress"
"days_open": 2503.4
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
9,372 requests aren't closed. The oldest, a request for a new tree, has been open for over 2,500 days.

top_addresses

New in 1.2.0No key needed

The addresses with the most requests in a district, with each one's most common problem. You can narrow it to one problem.

Try asking:

  • “Which addresses in Brooklyn 6 get the most 311 requests?”
  • “Where are the most heat complaints in Bronx 5?”
A real question and answer, November 9, 2026. Answer shortened.

Which addresses in Brooklyn 6 get the most 311 requests?

The assistant calls top_addresses(community_district=306, last_days=90, limit=5)

"label": "the last 90 days of data (2026-08-11 to 2026-11-08)"
"requests": 15637
…
"requests": 921
"most_common_problem": "Illegal Parking"
…
"address_count": 5521
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
The busiest address had 921 requests in 90 days, mostly illegal parking. (We left the addresses out of this page.)

address_history

New in 1.2.0No key needed

Every request at one address since 2020, newest first, with the status explained and the agency's own resolution text. It's the closest thing to looking up a request when you don't have its number.

Try asking:

  • “What's been reported at 1 Centre Street?”
  • “Any open requests at City Hall?”
A real question and answer, November 9, 2026. Answer shortened.

What's been reported at 1 Centre Street?

The assistant calls address_history(address="1 Centre Street", borough="Manhattan", limit=5)

"requests": 358
"not_closed": 9
…
"problem": "Graffiti"
"status": "Closed"
"resolution": "The City has removed the graffiti from this property."
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
358 requests at the Municipal Building since 2020, with what the agency said about each one.

find_requests

New in 1.2.0No key needed

Every request in a district, newest first, a page at a time. Filter by problem, agency, or status, including the City's own statuses like Pending.

Try asking:

  • “Show me the newest street-condition requests in Brooklyn 6.”
  • “List DOT requests in Manhattan 3 that are Pending.”
A real question and answer, November 9, 2026. Answer shortened.

Show me the newest street-condition requests in Brooklyn 6.

The assistant calls find_requests(community_district=306, problems=["Street Condition"], limit=5)

"requests": 1464
"status": "Closed"
"requests": 1373
…
"description": "Cave-in"
"agency": "DOT"
"status": "In Progress"
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
1,464 street-condition requests in a year, by status, newest first.

boardstat_status

New in 1.2.0No key needed

How fresh BoardStat's data is, and whether last night's build ran late. Ask this when a number looks off.

Try asking:

  • “How fresh is BoardStat's data?”
A real question and answer, November 9, 2026. Answer shortened.

How fresh is BoardStat's data?

The assistant calls boardstat_status()

"built_at": "2026-11-10T00:37:17Z"
"nightly_run_late": false
"newest_request": "2026-11-08 02:06:22"
"total": 23080603
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
Over 23 million requests, and whether last night's build ran late. If it had, the tool would say so.

The Local Law 47 reports

In 2005, Local Law 47 (Gale A. Brewer) required monthly 311 reports from the City, written into Charter § 1075. Two of those reports were repealed in 2023. We rebuilt all three from NYC Open Data. They are BetaNYC rebuilds, not the City's official reports, and every answer says so. No API key needed.

ll47_service_request_report

New in 1.2.0No key needed

Rebuilds the monthly report on requests for service, formerly Charter § 1075(b): totals by category, agency, and status, and the average and median days to close, for a month and for the fiscal year to date. Citywide, by borough, or for one district.

Try asking:

  • “Rebuild the Local Law 47 monthly 311 report for Brooklyn 6.”
  • “Run the § 1075(b) report for Queens for October.”
A real question and answer, November 9, 2026. Answer shortened.

Rebuild the Local Law 47 monthly 311 report for Brooklyn 6.

The assistant calls ll47_service_request_report(community_district=306, limit=5)

"label": "2026-10 (2026-10-01 to 2026-10-31)"
"requests": 6108
"closed": 5227
…
"status": "repealed"
"note": "This is a BetaNYC rebuild from NYC Open Data, not the City's official report. Only the City can meet § 1075."
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
October's report for Brooklyn 6, with the law it rebuilds and a plain note that the law was repealed.

cb_monthly_list

New in 1.2.0No key needed

The list that Charter § 1075(d), still law, says community boards should get: one district's requests for a month, every older request still unresolved, and the ones closed since. Comes in pages, or as a CSV.

Try asking:

  • “Give Brooklyn Community Board 6 its monthly list of 311 requests for October.”
  • “Same list for Staten Island 1, as a CSV.”
A real question and answer, November 9, 2026. Answer shortened.

Give Brooklyn Community Board 6 its monthly list of 311 requests for October.

The assistant calls cb_monthly_list(community_district=306, limit=5)

"new_this_month": 6108
"unresolved_from_prior_months": 8167
"unresolved_at_month_end_now_closed": 29
"rows": 14304
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
6,108 new requests in October, and 8,167 older ones still unresolved.

ll47_directory_assistance_report

New in 1.2.0No key needed

Calls answered by 311 agents, by topic, for a month and the fiscal year to date, formerly Charter § 1075(c). This one is limited, and the answer says so: the open data can't separate out directory-assistance calls, and its agency column is blank. NYC Open Data can be slow here, so the first full-year answer may take a few tries.

Try asking:

  • “How many calls did 311 agents answer in October, by topic?”
A real question and answer, November 9, 2026. Answer shortened.

How many calls did 311 agents answer in fiscal year 2026, by topic?

The assistant calls ll47_directory_assistance_report(fiscal_year=2026, limit=5)

"limited": true
"note": "Some months are still loading from NYC Open Data, so the full total is not ready yet. The others keep loading and are saved when done. Ask again in a minute."
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
When NYC Open Data is slow, it says what's missing and keeps loading. It doesn't guess.

Today in the city

The City's own 311 calendar and status alerts. These were in 1.1.0, too.

get_calendar

Same as 1.1.0Needs a free 311 API key

Alternate side parking, trash and recycling collection, and schools, for a day or up to 90 days.

Try asking:

  • “Is alternate side parking in effect today?”
  • “Is trash pickup on schedule the week of Thanksgiving?”
A real question and answer, November 9, 2026. Answer shortened.

Is alternate side parking in effect today?

The assistant calls get_calendar()

"details": "Alternate side parking and meters are in effect."
"details": "Trash, recycling, and compost collections are on schedule."
"details": "Public schools are open."
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
The City's calendar for today.

get_status

Improved in 1.2.0Needs a free 311 API key

Whether Code Blue, a fire hydrant emergency, snow or ice, or an emergency management alert is in effect right now. The answer now says it in words.

Try asking:

  • “Is there a Code Blue tonight?”
  • “Is there a snow emergency on the streets?”
A real question and answer, November 9, 2026. Answer shortened.

Is there a Code Blue tonight?

The assistant calls get_status(type="CodeBlue")

"answer": "No: the City's 311 API says Code Blue is not in effect right now. That is as of when it was asked; it can change later today, so ask again for a later answer."
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
A yes or no, and when it was true.

Look up a 311 request

Have a 311 number, like 311-12345678? These tell you where it stands, in words. The City sends a status code, and we translate it.

get_service_request

Improved in 1.2.0Needs a free 311 API key

Look up a request by its 311 number. You get the agency, the problem, the status in words, and the agency's own note about what it did. ZIP codes are removed.

Try asking:

  • “What happened with 311 request 311-17323508?”
A real question and answer, November 9, 2026. Answer shortened.

What happened with 311 request 311-17323508?

The assistant calls get_service_request(sr_number="311-17323508")

"Agency": "Department of Sanitation"
"Problem": "Snow or Ice"
"ResolutionAction": "The Department of Sanitation investigated this complaint and issued a Notice of Violation."
"status": "Closed"
For informational purposes only. BetaNYC builds these answers from City data; they may contain errors. Check the City's 311 page before you report. If this is an emergency, or if you think this is an emergency, call 911.
The City sends status code 614110003. The tool says Closed. (We left the address out of this page.)

get_service_request_list

Improved in 1.2.0Needs a free 311 API key

Several 311 numbers at once. Any number the City can't find is listed, so nothing quietly goes missing.

Try asking:

  • “Check these three 311 numbers for me: …”

Want to try it?

Install it