TableJourney food travel

Verified restaurants, markets and street food in 200+ cities with provenance and hours, food festivals with resolved dates, bookable tours and stays. Public remote MCP server, no key.

Hosted MCP Server

npx add-mcp 'https://tablejourney.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

TableJourney for AI agents: MCP server and REST API

How to use TableJourney's verified food-travel data from an AI agent: a public MCP server, a REST API with OpenAPI docs, attribution and limits.

Canonical: https://tablejourney.com/agents/

TableJourney is built for people, and the same data is open to the agents that help them: 52,504 editorially verified venues across 233 cities, 1,658 festivals with resolved dates, and 212,017 bookable products. Every place has a page on this site to cite, with the source we checked, when we checked it, and whether it is still open.

Both doors are public. No key is needed. Without one, answers carry the essentials (name, kind, cuisine, price tier, a one-line summary, festival dates), the page to send the reader to and every booking link, up to 20 results a call; the page has the address, opening hours and the full write-up. A key adds the full record and gives your agent its own attribution tag and rate limit; ask through the contact page.

MCP server

Streamable HTTP at https://tablejourney.com/mcp. Add it to Claude Desktop, Claude Code, Cursor or any MCP client:

{ "mcpServers": { "tablejourney": { "type": "streamable-http", "url": "https://tablejourney.com/mcp" } } }

Claude Code: claude mcp add --transport http tablejourney https://tablejourney.com/mcp. Manifest: /.well-known/mcp.json. Listed in the official MCP registry.

Tools

Tool

Arguments

What it returns

search_places

query, country, city, kind, cuisine, dietary, price_tier, open_at, near, radius_km, limit, offset

Verified venues. kind is a topic or a group (eat, drink, bake, do); dietary is vegan, halal...; open_at is 'now', 'sunday 10:00' or an ISO datetime; near is 'lat,lng'.

place

id

One venue in full, with open_now and three nearby venues, by the id search_places returned.

plan_day

country, city, neighborhood, dietary, price_tier, date

A composed food day: breakfast to drinks, every stop open on the date, plus a bookable experience.

festivals

country, city, date_from, date_to, query, limit

Festivals with their next dates.

experiences

city, country, query, food_only, limit

Bookable tours, classes, tastings and tickets.

stays

country, city, limit

Hotels and stay partners with booking links.

car_hire

country, city

Car hire partners that verifiably cover the city.

tickets

country, city

Attraction tickets, city passes and tour partners covering the city.

things_to_do

country, city, date_from, date_to

Start here for "what can I do in this city": tours, tickets, festivals, places to eat, stays and car hire with booking links, in one call.

dishes

country, city, query, limit

Signature dishes and where to eat them, with links.

itineraries

country, city

Editorial day-by-day plans, each venue linked to its page.

cities

country

Every city covered, with slugs to use in the other tools.

City and country accept names or slugs (rome, italy); an unknown city answers with did_you_mean. Ids look like italy/rome/restaurants/ and go straight into place.

Connect your assistant

The server URL is the same everywhere: https://tablejourney.com/mcp. Menu names change from release to release; the steps below were right when this page was built.

  • Claude (web and desktop): Settings, Connectors, Add custom connector, then paste the URL.
  • ChatGPT: : Settings, Apps and Connectors, Advanced settings, turn on Developer mode, then Create a connector with the URL and no authentication.
  • Le Chat (Mistral): Connectors, Add connector, Custom MCP connector, then paste the URL.
  • Copilot Studio: : in your agent, Tools, Add a tool, Model Context Protocol, with the URL as the server and no authentication.

One-click install: VS Code, Cursor, LM Studio, goose.

Coding tools take a small config file:

Claude Code claude mcp add --transport http tablejourney https://tablejourney.com/mcp # VS Code (agent mode): .vscode/mcp.json { "servers": { "tablejourney": { "type": "http", "url": "https://tablejourney.com/mcp" } } } # Cursor: ~/.cursor/mcp.json { "mcpServers": { "tablejourney": { "url": "https://tablejourney.com/mcp" } } } # Gemini CLI: ~/.gemini/settings.json { "mcpServers": { "tablejourney": { "httpUrl": "https://tablejourney.com/mcp" } } } # Codex: ~/.codex/config.toml [mcp_servers.tablejourney] url = "https://tablejourney.com/mcp"

Vercel AI SDK

The tablejourney-ai-sdk package gives an AI SDK agent seven tools that call this server: thingsToDo, searchPlaces, festivals, experiences, stays, dishes and cities. No key is needed.

npm install tablejourney-ai-sdk ai zod import { generateText, isStepCount } from 'ai'; import { tablejourneyTools } from 'tablejourney-ai-sdk'; const { text } = await generateText({ model: 'openai/gpt-5-mini', tools: tablejourneyTools(), stopWhen: isStepCount(5), prompt: 'Plan a food day in Lisbon on Saturday, with one food tour.', });

Booking links come back as affiliate links: pass them on as returned and say so once. To earn on the bookings, set TABLEJOURNEY_API_KEY to your partner key (or pass tablejourneyTools({ apiKey })); see Earn with us.

LangChain

The langchain-tablejourney package is a LangChain toolkit with the same seven tools (tablejourney_things_to_do, tablejourney_search_places, tablejourney_festivals, tablejourney_experiences, tablejourney_stays, tablejourney_dishes, tablejourney_cities). No key is needed.

pip install langchain-tablejourney from langchain.agents import create_agent from langchain_tablejourney import TableJourneyToolkit agent = create_agent("openai:gpt-5-mini", TableJourneyToolkit().get_tools()) result = agent.invoke({"messages": [{"role": "user", "content": "Plan a food day in Lisbon on Saturday, with one food tour."}]})

Booking links come back as affiliate links: pass them on as returned and say so once. To earn on the bookings, set TABLEJOURNEY_API_KEY to your partner key (or TableJourneyToolkit.from_api_key("...")); see Earn with us.

REST API

The same functions as JSON under https://tablejourney.com/api/v1/: interactive docs at /api/v1/docs, the OpenAPI description at /api/v1/openapi.json.

curl "https://tablejourney.com/api/v1/places?q=pasta&city=rome&kind=eat&limit=5" curl "https://tablejourney.com/api/v1/places?near=41.8902,12.4922&radius_km=1" curl "https://tablejourney.com/api/v1/festivals?country=italy&from=2026-11-01&to=2026-11-30" curl "https://tablejourney.com/api/v1/experiences?city=rome&q=cooking+class"

Earn with us: the partner program

Agents can earn from the recommendations they make. Join the partner program free, and every booking link your credential receives from this server carries your referral code; you earn a share of the commission we are paid on the bookings it brings (see the terms; the guide to earning from an agent explains how it works). Everything works without a browser:

partner_join(accept_terms=true) # MCP or POST /api/v1/partners/signup: no email needed, # returns your API key and referral code partner_add_email(email) # before your first payout; then partner_confirm(email, code) partner_link(url) # any https://tablejourney.com page with your code partner_stats(days) # visits, clicks, earnings partner_payout_method(type, ...) # PayPal, crypto (USDC, ETH, SOL, BTC) or bank; confirmed by email

Clients that sign people in can use OAuth 2.1 instead (discovery at /.well-known/oauth-authorization-server, details in auth.md). Agent-to-agent: our A2A agent card answers food questions from our verified data.

Terms of use

The data and the compute are free, with no key, no quota to buy and no sign-up. This is what we ask in return:

  • Keep booking links whole. book and booking URLs are https://tablejourney.com/go/ links that forward to the partner with our affiliate id. Give them to the user as they are; do not resolve them, strip parameters or replace them with a plain partner URL. This is how free data and compute get paid for.
  • Say they are affiliate links. A one-line disclosure ("booking link, TableJourney may earn a commission") keeps the user informed and keeps you compliant.
  • Cite the page URL as the source of what you quote, and send the user to it for the address, opening hours and the date we checked.
  • No bulk copying. Answer the user's question from the results; do not mirror the catalogue.

Every book or booking URL is a https://tablejourney.com/go/ link. It records the click and forwards to the partner with our affiliate id, so a recommendation your agent makes is attributed and the venue checks keep getting paid for. The same terms are in the MCP server's instructions and in llms.txt.

Limits

60 requests per 10 seconds per IP at the edge, 120 a minute in the service. Results are capped at 100 per call; use offset to page.

Also for agents