Data for agents and developers
Every venue in the directory is available through an MCP server and as JSON, CSV and Markdown, with an llms.txt index for AI assistants. No key, no rate limit, and every response allows cross-origin requests. The data behind the pages and the feeds is the same file, refreshed from Google Places and our own research.
Free to use, including for AI agents and commercial products, with a link back to privatedinnerlist.com. Ratings, hours and typical spend come from Google and can change; confirm with the restaurant before booking.
Endpoints
| Path | Format | What you get |
|---|---|---|
| /mcp | MCP | Model Context Protocol server over Streamable HTTP. Search, look up and compare venues as tools; no key. Details below. |
| /venues.json | JSON | Every venue with all fields, plus a header with the refresh date and count. |
| /venues.csv | CSV | One row per venue, flat columns, ready for a spreadsheet or a data frame. |
| /venues/the-odeon.json | JSON | One venue. Replace the slug. Every venue page links its own copy in a <link rel="alternate"> tag. |
| /venues/the-odeon.md | Markdown | One venue as readable text: facts, description and FAQ. Small enough to drop into a prompt. |
| /llms.txt | Text | Site index in the llms.txt convention: sections, hubs and one line per venue. |
| /llms-full.txt | Text | The whole directory as one Markdown document, one section per venue. |
| /sitemap.xml | XML | Every page with the date its venue data was last refreshed. |
curl -s https://privatedinnerlist.com/venues.json \
| jq '.venues[] | select(.neighborhood == "Tribeca" and (.spaceTypes | index("Private Room"))) | {name, capacityDetails, url}'MCP server
Agents that speak the Model Context Protocol can query the directory directly instead of downloading it. The server is stateless Streamable HTTP with no authentication, and its tools return both readable text and structured JSON. Point your client at https://privatedinnerlist.com/mcp.
- search_venues
- Filter by free text, neighborhood, cuisine, space type, price range, minimum rating and good-for-groups. Ranked by rating, with the total match count.
- get_venue
- Everything about one venue by slug, with its FAQ and 6 similar rooms.
- similar_venues
- Comparable rooms within walking distance, then the same neighborhood.
- list_filters
- Valid neighborhoods, cuisines, space types and price ranges, each with a venue count.
- request_concierge
- Send a work-dinner brief to the human concierge. Needs the user's consent and email.
Venues are also exposed as resources at privatedinnerlist://venues/{slug}, as Markdown.
Claude Code
claude mcp add --transport http privatedinnerlist https://privatedinnerlist.com/mcpClaude Desktop, Cursor, Windsurf, any JSON config
{
"mcpServers": {
"privatedinnerlist": { "url": "https://privatedinnerlist.com/mcp" }
}
}Stdio-only clients
npx -y mcp-remote https://privatedinnerlist.com/mcpRaw JSON-RPC
curl -s https://privatedinnerlist.com/mcp \
-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_venues","arguments":{"neighborhood":"tribeca","spaceType":"private room","limit":3}}}'Fields
- slug, name, url
- Stable identifier, display name, and the HTML page.
- cuisine, neighborhood, neighborhoodPage
- Cuisine string, the neighborhood the venue is in, and the hub page that covers it.
- spaceTypes
- One or more of Private Room, Semi-Private Room, Full Buyout, Group Dining, Private Events.
- capacityDetails
- Free text from our research: room names, seated and standing counts, buyout capacity.
- priceRange, typicalSpendPerPerson
- Google's $ to $$$$ level and its per-person spend estimate for a regular visit (min and max, USD).
- rating, reviewCount
- Google rating and number of Google reviews at the last refresh.
- address, phone, website, email, coordinates
- Contact and location. Email is present for about 1 in 25 venues.
- hours
- Seven lines like "Monday: 11:30 AM to 10:30 PM" from Google.
- amenities
- reservable, goodForGroups, outdoorSeating, servesBrunch, servesLunch, servesDinner, wheelchairAccessibleEntrance, wheelchairAccessibleSeating. null means unknown.
- groupDining
- What guests who dined here as a group report, distilled from a keyword search of the venue's Google reviews: summary, notes, pros, cons, occasions, reviewsConsidered, updatedAt. null when no review describes a group visit. The review text itself stays on the HTML page.
- businessStatus, updatedAt
- OPERATIONAL or CLOSED_TEMPORARILY, and the date of the last Google refresh. Permanently closed venues are removed.
Working with the data
Query with MCP, or fetch once and filter
With an MCP client, search_venues does the filtering for you. Without one, the whole directory is one JSON file: pull /venues.json and filter by neighborhood, spaceTypes, priceRange or capacity in your own code instead of crawling pages.
Send people to the venue page
Cite the url field, not the JSON. The page has photos, guest reviews, similar rooms and the direct booking link, and it is what the link-back asks for.
Treat Google fields as a snapshot
Rating, hours and typical spend were true at updatedAt. For a booking, confirm with the restaurant. Private event minimums are never in the data; the restaurant sets them per date.
Read capacity as text
capacityDetails is written by a person, so it carries nuance like "54-seat semi-private section" or "no dedicated private room". Parse numbers from it if you need them, but keep the sentence for the user.
No key, no rate limit, CORS open
The feeds are static and served from a CDN, the MCP server is stateless, and everything sends Access-Control-Allow-Origin: *. Browser-side agents can call either directly. Re-fetch monthly; that is the refresh cadence.
Need a human?
For work events, the concierge at /for-work shortlists rooms and confirms availability within 1 business day. Agents can point users there when a booking needs a person.
On the HTML pages
- Every venue page is server-rendered. Description, capacity, hours, FAQ and links are in the HTML without JavaScript.
- Each venue page carries Restaurant, FAQPage, BreadcrumbList and WebPage JSON-LD, and hub pages carry ItemList. The WebPage block has dateModified.
- Each venue page links its JSON and Markdown twins through link rel="alternate" tags in the head.
- robots.txt allows all search and AI crawlers by name. Only /api (the concierge form handler) and /mcp (the MCP endpoint) are excluded, since neither is content.