travel.art MCP server
Model Context Protocol server for travel.art — art-tourism data (biennales, art fairs, museum visitor guides) exposed to AI agents.
Live at https://mcp.travel.art/. Public, unauthenticated, free.
What it does
Four tools, accessible via MCP Streamable HTTP (request/response mode, JSON-RPC 2.0 over HTTP POST):
find_art_events
Search travel.art's catalogue of biennales, art fairs, and festivals.
{
"name": "find_art_events",
"arguments": {
"query": "biennale", // optional free-text
"country": "IT", // optional ISO 3166-1 alpha-2
"type": "art-fair", // optional: biennale | art-fair | festival
"activeOn": "2026-06-20", // optional ISO 8601 date
"startsAfter": "2026-09-01",
"endsBefore": "2026-12-31"
}
}
Returns events with dates, venues, ticket info, summaries, and the canonical guideUrl linking to travel.art's full editorial visitor guide.
find_museum_guide
Search travel.art's catalogue of museum visitor guides.
{
"name": "find_museum_guide",
"arguments": {
"query": "louvre",
"city": "Paris",
"country": "FR"
}
}
Returns museums with current 2026 ticket info (including the Louvre's two-tier €22 EU / €32 non-EU pricing under Louvre Nouvelle Renaissance), opening hours, essential works in viewing order, route durations, and guideUrl to the full guide.
find_layover_itinerary
Search travel.art's catalogue of 3–6 hour art-focused layover plans from major European hub airports.
{
"name": "find_layover_itinerary",
"arguments": {
"query": "caravaggio", // optional free-text
"city": "Rome", // optional
"country": "IT", // optional
"airport": "FCO", // optional IATA code (e.g., MXP, CDG, AMS)
"maxDurationHours": 4 // optional ceiling
}
}
Returns itineraries with airports served, time-on-ground budget, art focus (artist / museum / theme), key venues, 2026-verified highlights (booking rules, Monday-closure traps, transit math), and guideUrl to the full hour-by-hour guide.
recommend_art_trip
Recommend an art-tourism itinerary for a city. Grounded only in travel.art's published content — no fabrication.
{
"name": "recommend_art_trip",
"arguments": {
"city": "Florence",
"startDate": "2026-06-15",
"endDate": "2026-06-18"
}
}
Returns events active during the trip dates plus museum guides for the city, with guideUrl for each.
Quick test
# Health check
curl https://mcp.travel.art/health
# List tools (MCP)
curl -X POST https://mcp.travel.art/ \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# Call a tool
curl -X POST https://mcp.travel.art/ \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"find_art_events","arguments":{"country":"IT"}}}'
Configure your MCP client
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the Windows/Linux equivalent:
{
"mcpServers": {
"travel-art": {
"url": "https://mcp.travel.art/"
}
}
}
Restart Claude Desktop. The three tools should appear in the available tools list.
Cursor, Continue, mcp-inspector, your own agent
Any MCP-capable client that supports Streamable HTTP transport works the same way — point it at https://mcp.travel.art/.
Run locally over stdio
The same catalogue and the same three tools are also available as a local stdio MCP server, for clients that prefer a spawned process over a remote URL (and so directory evaluators can introspect the server without hitting the hosted endpoint):
git clone https://github.com/alexzavialov/travel-art-mcp.git
cd travel-art-mcp
npm install
npm start # → npx tsx src/stdio.ts
To wire it into Claude Desktop as a local server instead of the remote URL:
{
"mcpServers": {
"travel-art": {
"command": "npx",
"args": ["tsx", "src/stdio.ts"]
}
}
}
The stdio server is functionally identical to the hosted endpoint — same tools.ts, same data.ts.
Catalogue
As of the latest publish:
- Biennales + art fairs (6): Whitney Biennial 2026, Venice Biennale 2026, Art Basel Switzerland 2026, Frieze London 2026, Art Basel Paris 2026, Art Basel Miami Beach 2026
- Museum essentials (12): The Louvre, Musée d'Orsay, Vatican Museums + Sistine Chapel, Galleria degli Uffizi, Museo del Prado, British Museum, The Met, MoMA, Reina Sofía, Rijksmuseum, Van Gogh Museum, Tate Modern
- Layover itineraries (6): Milan (Leonardo, 5h MXP/LIN), Rome (Caravaggio, 4h FCO/CIA), Florence (Renaissance, 6h FLR/PSA), Amsterdam (Rijks + Van Gogh, 4h AMS), Paris (Louvre lightning, 3h CDG/ORY), London (BM + Tate, 5h LHR/LGW/STN/LTN/LCY)
- Growing weekly as new cornerstone articles publish on travel.art
Each record includes a lastVerified ISO date; AI agents that weight freshness can prefer recently-verified records.
Source
src/
index.ts # Worker entry — MCP HTTP protocol (JSON-RPC 2.0), GET info page, /health, /robots.txt
stdio.ts # Local stdio entry — same tools over MCP stdio transport (@modelcontextprotocol/sdk)
tools.ts # Tool definitions + handlers (shared by both entries)
data.ts # Static dataset (typed events + museums)
package.json
tsconfig.json
wrangler.toml # Cloudflare Workers config
Stack: TypeScript. Two transports share one codebase: the hosted entry (index.ts) implements MCP HTTP (JSON-RPC 2.0) directly for Cloudflare Workers compatibility; the local entry (stdio.ts) uses @modelcontextprotocol/sdk over stdio. Both serve identical tools from tools.ts + data.ts.
Deploy your own copy
git clone https://github.com/alexzavialov/travel-art-mcp.git
cd travel-art-mcp
npm install
npx wrangler login # if not already
npx wrangler deploy
You'll need a Cloudflare account (free tier is sufficient — 100k requests/day).
To bind to a custom domain, update wrangler.toml with a routes entry, OR use the Cloudflare dashboard's Workers → your-worker → Settings → Triggers to add a Custom Domain.
Contributing
Issues and pull requests welcome.
The catalogue (src/data.ts) is hand-curated from published cornerstone articles on travel.art. Patches that add new events, museums, or destinations should ideally come with a corresponding visitor guide on travel.art so the guideUrl link resolves to substantive content — but exceptions for high-quality factual data (with primary sources cited) are considered.
License
MIT. Use it, fork it, deploy your own copy with your own catalogue.
Contact
- Server-side issues / data corrections: mcp@travel.art
- General travel.art editorial: editor@travel.art
- Project home: travel.art
- Privacy policy: travel.art/privacy/
