TableJourney is built for people, and the same data is open to the agents that help them: 47,611 editorially verified venues across 226 cities, 1,622 festivals with resolved dates, and 208,552 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

ToolArgumentsWhat it returns
search_placesquery, country, city, kind, cuisine, dietary, price_tier, open_at, near, radius_km, limit, offsetVerified 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'.
placeidOne venue in full, with open_now and three nearby venues, by the id search_places returned.
plan_daycountry, city, neighborhood, dietary, price_tier, dateA composed food day: breakfast to drinks, every stop open on the date, plus a bookable experience.
festivalscountry, city, date_from, date_to, query, limitFestivals with their next dates.
experiencescity, country, query, food_only, limitBookable tours, classes, tastings and tickets.
stayscountry, city, limitHotels and stay partners with booking links.
car_hirecountry, cityCar hire partners that verifiably cover the city.
ticketscountry, cityAttraction tickets, city passes and tour partners covering the city.
things_to_docountry, city, date_from, date_toStart 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.
dishescountry, city, query, limitSignature dishes and where to eat them, with links.
itinerariescountry, cityEditorial day-by-day plans, each venue linked to its page.
citiescountryEvery 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/<slug> 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