MCP server for searching and browsing NYC Restaurant Week Summer 2026 restaurants. Provides tools to search 300+ participating restaurants by cuisine, price, neighborhood, date, and curated collections, with menus, websites, and OpenTable reservation links.
Four well-named, read-only tools with strong descriptions (avg 180 chars) and comprehensive Zod schemas. All parameters are typed and described. search_restaurants has excellent pagination support (limit, offset, total count). Schemas are visible and properly constrained (enums, regex patterns, min/max). Error handling is present but minimal, no recovery guidance or actionable error messages. Output structure is JSON but not formally documented in tool descriptions. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only and idempotent.
Check whether a date (YYYY-MM-DD) falls within NYC Restaurant Week Summer 2026 and what the rules are that day (which program week, Saturday exclusion, Sunday limitations), plus how many restaurants participate that day.
Get full details for one participating restaurant by slug or name: description, all prix-fixe offers, participating weeks, Restaurant Week menu PDF, website, and OpenTable reservation link.
List every available filter value with participant counts: cuisines, boroughs, neighborhoods, price tiers, meals, curated collections, and the seven program weeks with their dates. Useful before searching, or to summarize the program.
Search the 300 restaurants participating in NYC Restaurant Week Summer 2026 (Jul 20 – Sep 6). All filters are optional and combinable. Prix-fixe tiers are $30 / $45 / $60 for lunch, brunch, or dinner. Saturdays are excluded program-wide; Sunday participation varies. Returns a paginated list with total count — use get_restaurant with a slug for menus, reservation and website links.
No tool annotations despite all tools being read-only and idempotent. Missing readOnlyHint and idempotentHint metadata.
Error handling lacks recovery guidance. get_restaurant returns bare error object without suggesting search_restaurants as fallback.
Output schemas not formally documented in tool descriptions. LLMs cannot infer response structure from descriptions alone.
check_date returns different response structures (in_program: false vs true) without documenting the union type.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
list_filters has empty input schema but no description explaining what it returns or when to call it.