About NYCfoodie
NYCfoodie provides AI agents with structured, editorial restaurant recommendations, normalising curated guides and reviews into a queryable dataset. Its current MVP focuses on New York, while the city is designed to be configurable.
Key features
- 01Search restaurant recommendations
- 02Retrieve restaurant details
- 03Compare restaurants
- 04Find guides and similar venues
- 05View guide consensus and top ratings
- 06Submit feedback
Use cases
- 01Find restaurants matching a request
- 02Compare options for a meal
- 03Explore editorial dining guides
- 04Review consensus or highly rated venues
MCP support
NYCfoodie exposes restaurant search, details, comparisons, guides, similarity, ratings, and feedback tools over MCP. Clients can connect to its hosted Streamable HTTP endpoint or run the stdio server locally.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://nycfoodie-production.up.railway.app/mcpclaude mcp add --transport http tireniajilore-nycfoodie https://nycfoodie-production.up.railway.app/mcp{"mcpServers":{"tireniajilore-nycfoodie":{"type":"http","url":"https://nycfoodie-production.up.railway.app/mcp"}}}Open in Cursor{"servers":{"tireniajilore-nycfoodie":{"type":"http","url":"https://nycfoodie-production.up.railway.app/mcp"}}}Open in VS Code{"mcpServers":{"tireniajilore-nycfoodie":{"type":"http","url":"https://nycfoodie-production.up.railway.app/mcp"}}}{"mcpServers":{"tireniajilore-nycfoodie":{"serverUrl":"https://nycfoodie-production.up.railway.app/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
8| Parameter | Type | Required | Description |
|---|---|---|---|
| lat | number | No | Latitude for proximity search. Must be given together with lng; radius_km defaults to 5 km when omitted. A location outside the NYC coverage area is rejected with an error. |
| lng | number | No | Longitude for proximity search. Must be given together with lat; radius_km defaults to 5 km when omitted. |
| city | string | Yes | City slug, always required. Currently 'new-york', covering the five boroughs plus the immediate metro (within 30 km of Manhattan). |
| sort | enum | No | Sort by rating (default) or guide appearancesrating | guides |
| limit | integer | No | Max results (default 10) |
| query | string | No | Free text, e.g. 'date-night Italian' |
| cuisine | string | No | e.g. 'Italian', 'ramen' |
| occasion | string | No | Occasion tag. Allowed: 'Date Nights', 'Happy Hours', 'Pre-Theater', 'See & Be Seen', 'Serious Takeout Operation', 'Unique Dining Experiences', 'Wasting Your Time & Money'. Hyphens, spaces and underscores are flexible ('date-night' works); unambiguous prefixes resolve to the full value. Unknown or ambiguous values are rejected with an error. |
| radius_km | number | No | Search radius in kilometres (default 5 when lat/lng are given without it). Requires lat and lng. |
| min_rating | number | No | Minimum Infatuation rating |
| price_tier | integer | No | 1 ($) to 4 ($$$$) |
| neighborhood | string | No | e.g. 'West Village', or a borough like 'Brooklyn' |
| include_closed | boolean | No | Include known-closed venues (default false) |
Details
From the project READMENYCfoodie
The data layer for restaurant taste: structured, editorial restaurant recommendations served to AI agents over MCP. Not another review scraper — curated guides and reviews normalised into one schema, queryable by tools.
MVP city: New York. The city is a parameter everywhere; nothing NYC-specific is hardcoded.
Use it
Hosted endpoint (Streamable HTTP): https://nycfoodie-production.up.railway.app/mcp
- Cursor — one-click install
- Claude Code —
claude mcp add --transport http nycfoodie https://nycfoodie-production.up.railway.app/mcp - Windsurf / Cline / Roo Code / Zed / VS Code — add to your MCP config:
{
"mcpServers": {
"nycfoodie": {
"url": "https://nycfoodie-production.up.railway.app/mcp"
}
}
}
- Claude (app) — Settings → Connectors → Add custom connector → paste the URL.
- Any MCP client — add the URL above as a remote server (Streamable HTTP). No auth, no install.
Tools
search_restaurants · get_restaurant · compare_restaurants · find_guides · find_similar · guide_consensus · top_rated · submit_feedback
Layout
db/— SQLite storage (better-sqlite3) with numbered SQL migrations written in Postgres-compatible DDL. The migration runner is dialect-agnostic by convention, so a Postgres adapter can replace better-sqlite3 later without touching the migrations.crawler/— source adapters (starting with The Infatuation) that normalise into the db schema. Endpoint/field mapping:docs/infatuation-data-surface.md(step 2).mcp/— stdio MCP server (@modelcontextprotocol/sdk) exposing search, detail, comparison and guide tools.
Quickstart
npm install
npm run typecheck
npm run build
node db/dist/migrate.js ./nycfoodie.db # creates/opens the SQLite db, applies migrations
node mcp/dist/index.js # starts the MCP server on stdio
Roadmap
- Scaffold (done) — repo, packages, migration runner, stub MCP tools.
- Map The Infatuation's data surface — Next.js pages + GraphQL endpoints →
docs/infatuation-data-surface.md. - Database schema proposal — shown for approval before any crawler code is written.
- Crawler — only after schema sign-off.
Conventions
- British English in docs and user-facing text.
- Migrations: numbered
NNN_name.sql, applied once in order; seedb/migrations/README.mdfor the Postgres-compatibility rules. - Never commit
*.dbfiles or credentials.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.