NYCfoodie
by tireniajilore · remote · no sign-in to list tools · v1.0.0 · published by GitHub user tireniajilore
Editorial NYC restaurant recommendations for AI agents: search, compare, guides, ratings.
8 tools: 2 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http nycfoodie https://nycfoodie-production.up.railway.app/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Changes things 2Claude Code: ask
guide_consensusRank restaurants by how many distinct guides feature them, optionally filtered by theme.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Rank restaurants by how many distinct guides feature them, optionally filtered by theme. Use for 'where can't I go wrong' or safest-bet picks. Differs from find_guides: this returns ranked restaurants, not the guides themselves. Each row carries guide_appearance_count (a number); get_restaurant's guide_appearances is the full entry list.
Annotations the server declares
- readOnlyHint: true
submit_feedbackRecord feedback on a tool result: a 1–5 rating, a comment, or both (at least one is required).No findings
Why it is in this group
- The name "submit_feedback" says "submit": a word for a change.
Description, as the server wrote it Record feedback on a tool result: a 1–5 rating, a comment, or both (at least one is required). Use after showing the user a recommendation to log what was good or wrong. Each call stores a new feedback entry; it changes nothing the user sees.
Annotations the server declares
- readOnlyHint: false
- idempotentHint: false
Only reads 6Claude Code: allow
compare_restaurantsCompare 2–5 named restaurants head-to-head as structured data (rating, price, tags, review summary).No findings
Why it is in this group
- The name "compare_restaurants" says "compare": a word for reading.
Description, as the server wrote it Compare 2–5 named restaurants head-to-head as structured data (rating, price, tags, review summary). Use when the user asks to choose between specific places, e.g. 'should I go to X or Y?' or to compare four options on a budget.
Annotations the server declares
- readOnlyHint: true
find_guidesFind curated editorial guides (ranked lists) matching a theme, e.g.No findings
Why it is in this group
- The name "find_guides" says "find": a word for reading.
Description, as the server wrote it Find curated editorial guides (ranked lists) matching a theme, e.g. 'best ramen'. Returns each guide with its ranked entries, blurbs and linked restaurants. Use when the user wants the editorial lists themselves rather than individual restaurant picks. Set include_entries=false to list guide titles and metadata without pulling every entry blurb.
Annotations the server declares
- readOnlyHint: true
find_similarFind restaurants similar to a named one, scored by shared cuisine, occasion and neighbourhood tags, price-tier proximity and guide co-occurrence.No findings
Why it is in this group
- The name "find_similar" says "find": a word for reading.
Description, as the server wrote it Find restaurants similar to a named one, scored by shared cuisine, occasion and neighbourhood tags, price-tier proximity and guide co-occurrence. Use for 'like X' or 'alternatives to X' requests.
Annotations the server declares
- readOnlyHint: true
get_restaurantGet the full picture for one restaurant in one call: Infatuation rating (0–10), price tier, address, reservation link, booking intel, review summary, tags and every guide it appear…No findings
Why it is in this group
- The name "get_restaurant" says "get": a word for reading.
Description, as the server wrote it Get the full picture for one restaurant in one call: Infatuation rating (0–10), price tier, address, reservation link, booking intel, review summary, tags and every guide it appears in. Use when the user names a specific restaurant. editorial_blurbs carries verbatim Eater guide excerpts (guide title, URL, position, blurb, captured_at) for any venue with Eater guide entries — Eater-only venues have no rating or price, only this prose plus tags. Full review prose is opt-in via include_prose (default: headline and summary only). review.headline is the source's actual headline when one exists, otherwise null — use review.summary for the descriptive text. match_type is 'exact' when the id or name matched verbatim, 'fuzzy' when it was resolved from a partial/typo'd name — never present a fuzzy match as the venue the user named without saying so. booking is null when the source has no booking intel (not the same as walk-in-only); a reservation link alone never implies a booking policy. data_as_of is the dataset vintage and crawled_at is when this venue was last crawled — caveat fast-decaying claims (closures especially) when these are old.
Annotations the server declares
- readOnlyHint: true
search_restaurantsSearch restaurants by free text, cuisine, neighbourhood, occasion or price, optionally near a point.No findings
Why it is in this group
- The name "search_restaurants" says "search": a word for reading.
Description, as the server wrote it Search restaurants by free text, cuisine, neighbourhood, occasion or price, optionally near a point. Use when the user describes what they want (e.g. 'Italian date night in the West Village', 'ramen near me') rather than naming a specific restaurant. Free text matches names, tags, review prose and guide blurbs (e.g. 'cacio e pepe'). Returns compact matches with Infatuation rating (0–10), price tier, address_line and tags. Cards carry guide_appearance_count (a number); get_restaurant's guide_appearances is the full entry list. Known-closed venues are excluded by default. Coverage for city='new-york' is the five boroughs plus the immediate metro (within 30 km of Manhattan). With no query or filters, returns the highest-rated venues.
Annotations the server declares
- readOnlyHint: true
top_ratedList the highest-rated restaurants (Infatuation 0–10 scale), with optional cuisine, neighbourhood and price filters.No findings
Why it is in this group
- The description's first verb is "list": a word for reading.
Description, as the server wrote it List the highest-rated restaurants (Infatuation 0–10 scale), with optional cuisine, neighbourhood and price filters. Use for 'best in the city' requests. Differs from search_restaurants: no free-text query, strictly rating-ordered.
Annotations the server declares
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http nycfoodie https://nycfoodie-production.up.railway.app/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__nycfoodie__search_restaurants",
"mcp__nycfoodie__get_restaurant",
"mcp__nycfoodie__compare_restaurants",
"mcp__nycfoodie__find_guides",
"mcp__nycfoodie__find_similar",
"mcp__nycfoodie__top_rated"
],
"ask": [
"mcp__nycfoodie__guide_consensus",
"mcp__nycfoodie__submit_feedback"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as nycfoodie. Review it before you use it.
