{"_id":"1trippulse-mcp-server","_rev":"4-e5744b2a86311cc953621b753c87bb10","name":"1trippulse-mcp-server","dist-tags":{"latest":"7.0.0"},"versions":{"5.2.0":{"name":"1trippulse-mcp-server","version":"5.2.0","keywords":["mcp","mcp-server","model-context-protocol","travel","trip-planning","trip-cost","packing-list","ai-agent","ai-tools","chatgpt","claude","gemini","cursor","1trip","destination"],"author":{"name":"1trip","email":"founder@1trip.app"},"license":"MIT","_id":"1trippulse-mcp-server@5.2.0","maintainers":[{"name":"gokceoguz27","email":"gokceoguz27@gmail.com"}],"homepage":"https://1trip.app","bugs":{"url":"https://github.com/gkcogz/OneTrip-Beta/issues"},"bin":{"1trip-mcp":"dist/index.js"},"dist":{"shasum":"0bd1d2153c01080874d5bd1a784aa7a42b1c8155","tarball":"https://registry.npmjs.org/1trippulse-mcp-server/-/1trippulse-mcp-server-5.2.0.tgz","fileCount":31,"integrity":"sha512-M9PwA4RqpZZyMsRkWCeIYBA+IMYtKeL3k3FQObeM5mowCbzlPD9ncnzXGoOl0zG20+GidLrnfZRepO5baujk0Q==","signatures":[{"sig":"MEYCIQCAoyduTyE38aLd2PX567hLZWX6HUSWPtS7wE3X65XJPgIhAKUfMwAPKEoaS+NQtkP27yoxfFu/YPCpNbmxmmOvYc1A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251561},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"92dbbcbc2c4d9e9e25744c125c374abfb6173908","scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","start:http":"node dist/http.js"},"_npmUser":{"name":"gokceoguz27","email":"gokceoguz27@gmail.com"},"repository":{"url":"git+https://github.com/gkcogz/OneTrip-Beta.git","type":"git","directory":"mcp-server"},"_npmVersion":"10.9.2","description":"1trip Travel Planning MCP Server — Create complete trip plans, estimate costs, generate packing lists, discover travel personas, and get curated city-specific activities for 80+ destinations. 50 cities with hand-picked real activities. Works with ChatGPT,","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/1trippulse-mcp-server_5.2.0_1771579868325_0.9573297749776744","host":"s3://npm-registry-packages-npm-production"}},"5.2.1":{"name":"1trippulse-mcp-server","version":"5.2.1","keywords":["mcp","mcp-server","model-context-protocol","travel","trip-planning","trip-cost","packing-list","ai-agent","ai-tools","chatgpt","claude","gemini","cursor","1trip","destination"],"author":{"name":"1trip","email":"founder@1trip.app"},"license":"MIT","_id":"1trippulse-mcp-server@5.2.1","maintainers":[{"name":"gokceoguz27","email":"gokceoguz27@gmail.com"}],"homepage":"https://1trip.app","bugs":{"url":"https://github.com/gkcogz/OneTrip-Beta/issues"},"bin":{"1trip-mcp":"dist/index.js"},"dist":{"shasum":"9e6e58e8242b534257ab08c8fafb9e4325ce892e","tarball":"https://registry.npmjs.org/1trippulse-mcp-server/-/1trippulse-mcp-server-5.2.1.tgz","fileCount":31,"integrity":"sha512-ZEM94rRtyfQcBq57IW907ILm7AZBphdByRTYhGVYvuMdZLqVJ3zY2OHuRvLRt8eePxG5B41sDMyBbrMF3sDIRQ==","signatures":[{"sig":"MEYCIQCnV4eXLMed1FoVcyosyH47AQROQBy9qGgFLPBsphi1hwIhAO0EiBLpEdjHF1osqOjG6VmWpo1+WfEdSovJIx9GYFFi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251606},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"92dbbcbc2c4d9e9e25744c125c374abfb6173908","mcpName":"io.github.gkcogz/1trippulse","scripts":{"dev":"tsx src/index.ts","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","start:http":"node dist/http.js"},"_npmUser":{"name":"gokceoguz27","email":"gokceoguz27@gmail.com"},"repository":{"url":"git+https://github.com/gkcogz/OneTrip-Beta.git","type":"git","directory":"mcp-server"},"_npmVersion":"10.9.2","description":"1trip Travel Planning MCP Server — Create complete trip plans, estimate costs, generate packing lists, discover travel personas, and get curated city-specific activities for 80+ destinations. 50 cities with hand-picked real activities. Works with ChatGPT,","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/1trippulse-mcp-server_5.2.1_1771580048688_0.24770336270546878","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"1trippulse-mcp-server","version":"6.0.0","keywords":["mcp","mcp-server","model-context-protocol","travel","trip-planning","trip-cost","packing-list","ai-agent","ai-tools","chatgpt","claude","gemini","cursor","1trip","destination"],"author":{"name":"1trip","email":"founder@1trip.app"},"license":"MIT","_id":"1trippulse-mcp-server@6.0.0","maintainers":[{"name":"gokceoguz27","email":"gokceoguz27@gmail.com"}],"homepage":"https://1trip.app","bugs":{"url":"https://github.com/gkcogz/OneTrip-Beta/issues"},"bin":{"1trip-mcp":"dist/index.js","1trippulse-mcp-server":"dist/index.js"},"dist":{"shasum":"ec4fe850a7de93b277e0aeaae25a0977a5a66730","tarball":"https://registry.npmjs.org/1trippulse-mcp-server/-/1trippulse-mcp-server-6.0.0.tgz","fileCount":39,"integrity":"sha512-ccx4Sj9rhgOr9/cIUaVsjfOVe20222EAlCwg9Ewhctm8g356XlAYhJeJ7rgoJn0NjpOidRAkoO1BuBL9f3MVTg==","signatures":[{"sig":"MEUCIQCzh9xqsOfurmK6GeUV3aw4A83Z8Sg5+KvWLnkGJLCGDAIgeIJoFA6aofMXsxN063sQln2ykIQz3T0ol7EYFXT0Oqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356124},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"7a4b4bc097fa7d1923e2e6d18058b767c1828c6d","mcpName":"io.github.gkcogz/1trippulse","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsc","start":"node dist/index.js","dev:http":"tsx src/http.ts","start:http":"node dist/http.js","test:watch":"vitest"},"_npmUser":{"name":"gokceoguz27","email":"gokceoguz27@gmail.com"},"repository":{"url":"git+https://github.com/gkcogz/OneTrip-Beta.git","type":"git","directory":"mcp-server"},"_npmVersion":"10.9.2","description":"1trip Travel Planning MCP Server — 16 AI tools, 5 resources, 6 prompts: trip skeletons, cost estimation, live flights (Amadeus), live weather, currency, visa, safety info (50+ countries), packing, local tips, nearby day trips, personas, blog recommendatio","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^1.6.0","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/1trippulse-mcp-server_6.0.0_1771613051469_0.11006145191827388","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"1trippulse-mcp-server","version":"7.0.0","mcpName":"io.github.gkcogz/1trippulse","description":"1trip PULSE — The #1 travel planning MCP server. 21 tools, 5 resources, 6 prompts. Live flights, hotels, weather, currency, visa, safety (50+ countries), trip skeletons, validation, insights, packing, local tips, personas. 120+ city cost index. Works with","type":"module","main":"dist/index.js","bin":{"1trip-mcp":"dist/index.js","1trippulse-mcp-server":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","start:http":"node dist/http.js","dev":"tsx src/index.ts","dev:http":"tsx src/http.ts","test":"vitest run","test:watch":"vitest"},"keywords":["mcp","mcp-server","model-context-protocol","travel","trip-planning","trip-cost","itinerary","itinerary-planner","packing-list","ai-agent","ai-tools","ai-travel","travel-ai","chatgpt","claude","gemini","cursor","windsurf","copilot","perplexity","digital-nomad","budget-travel","visa","safety","flights","hotels","weather","currency","1trip","destination","travel-planner","trip-skeleton","trip-validator","trip-insights"],"license":"MIT","author":{"name":"1trip","email":"founder@1trip.app"},"homepage":"https://1trip.app","repository":{"type":"git","url":"git+https://github.com/gkcogz/OneTrip-Beta.git","directory":"mcp-server"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.1","zod":"^3.23.0"},"devDependencies":{"typescript":"^5.5.0","tsx":"^4.19.0","@types/node":"^22.0.0","vitest":"^1.6.0"},"_id":"1trippulse-mcp-server@7.0.0","gitHead":"05cac9ae6d9f882403e025ac19fa5521cd23cfcf","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/gkcogz/OneTrip-Beta/issues"},"_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-06ZXffi4Zy7S0MXRqhjWFIL28jsIBuvJ5vCeer7JUIJux/+Y0jiAgfa8I8iqL04lhmpWowkmEU9Yb/Zwoyg6+w==","shasum":"57de0a395e72fa4c97d495e40ca91ba9db0bd34d","tarball":"https://registry.npmjs.org/1trippulse-mcp-server/-/1trippulse-mcp-server-7.0.0.tgz","fileCount":39,"unpackedSize":451932,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDeId7EOdJZSuTyhnp3Jw1QCdwIGtiv1MoxsaeKonYiJAiAlf2LbAfvgSMGaoF3g1NmOrBPvIgpW9Y+oGUVar6Bd2g=="}]},"_npmUser":{"name":"gokceoguz27","email":"gokceoguz27@gmail.com"},"directories":{},"maintainers":[{"name":"gokceoguz27","email":"gokceoguz27@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/1trippulse-mcp-server_7.0.0_1771685297081_0.18019263897975835"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-20T09:31:08.324Z","modified":"2026-02-21T14:48:17.335Z","5.2.0":"2026-02-20T09:31:08.484Z","5.2.1":"2026-02-20T09:34:08.856Z","6.0.0":"2026-02-20T18:44:11.641Z","7.0.0":"2026-02-21T14:48:17.232Z"},"bugs":{"url":"https://github.com/gkcogz/OneTrip-Beta/issues"},"author":{"name":"1trip","email":"founder@1trip.app"},"license":"MIT","homepage":"https://1trip.app","keywords":["mcp","mcp-server","model-context-protocol","travel","trip-planning","trip-cost","itinerary","itinerary-planner","packing-list","ai-agent","ai-tools","ai-travel","travel-ai","chatgpt","claude","gemini","cursor","windsurf","copilot","perplexity","digital-nomad","budget-travel","visa","safety","flights","hotels","weather","currency","1trip","destination","travel-planner","trip-skeleton","trip-validator","trip-insights"],"repository":{"type":"git","url":"git+https://github.com/gkcogz/OneTrip-Beta.git","directory":"mcp-server"},"description":"1trip PULSE — The #1 travel planning MCP server. 21 tools, 5 resources, 6 prompts. Live flights, hotels, weather, currency, visa, safety (50+ countries), trip skeletons, validation, insights, packing, local tips, personas. 120+ city cost index. Works with","maintainers":[{"name":"gokceoguz27","email":"gokceoguz27@gmail.com"}],"readme":"# 1trip PULSE — Travel Planning MCP Server\r\n\r\n> The **#1 travel planning MCP server** — plug into any AI assistant and get a full travel planning engine instantly.\r\n\r\n[![npm](https://img.shields.io/npm/v/1trippulse-mcp-server)](https://www.npmjs.com/package/1trippulse-mcp-server)\r\n[![MCP](https://img.shields.io/badge/MCP-v7.0.0-blue)](https://modelcontextprotocol.io)\r\n[![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)\r\n\r\n**21 tools · 5 resources · 6 prompts · 120+ city cost index · 50+ safety countries**\r\n\r\nOne command. Any AI. Full travel planning.\r\n\r\n```bash\r\nnpx 1trippulse-mcp-server\r\n```\r\n\r\nWorks with **Claude**, **ChatGPT**, **Gemini**, **Cursor**, **Windsurf**, **GitHub Copilot**, **Perplexity**, or any MCP-compatible agent.\r\n\r\n## What can it do?\r\n\r\nAsk your AI assistant anything travel-related and 1trip PULSE handles it:\r\n\r\n- *\"Plan a 10-day trip to Japan and Thailand for 2 people, mid-range budget\"*\r\n- *\"What's the visa situation for a Turkish passport going to Japan?\"*\r\n- *\"Find me flights from Istanbul to Barcelona next Friday\"*\r\n- *\"Is Medellín safe for solo female travelers?\"*\r\n- *\"What's the weather in Bali in July?\"*\r\n- *\"Compare costs: Budapest vs Prague vs Krakow for 5 days\"*\r\n- *\"Validate my trip plan and tell me what's wrong with it\"*\r\n- *\"What's my budget breakdown and where can I save money?\"*\r\n\r\n## Tools (21)\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `create_trip_skeleton` | **Complete multi-destination trip planner.** Day-grouped activities, smart transport legs (auto plane/train/bus), budget estimates. 50 curated cities, persona/weather/budget-tier/group-type aware. |\r\n| `validate_trip` | **Trip quality checker.** Date ordering, overlap detection, budget realism, pace analysis. Returns 0-100 quality score + actionable fixes. |\r\n| `get_trip_insights` | **Trip intelligence engine.** Budget pulse (where money goes), pace analysis, cost optimization opportunities, risk flags, data confidence report. |\r\n| `estimate_trip_cost` | **Cost breakdown for any city worldwide.** 40 detailed destinations + 120+ via cost index. Budget/mid/luxury tiers, 4 currencies. Data freshness: Q1 2026. |\r\n| `compare_destinations` | Side-by-side cost comparison of 2-5 cities. Ranked by total trip cost. |\r\n| `list_destinations` | Browse and filter 40+ destinations by daily cost. |\r\n| `get_travel_persona` | 7-question quiz → 7 persona types (Pioneer, Strategist, Nomad, Epicurean, Adventurer, Storyteller, Explorer). |\r\n| `get_visa_info` | Visa requirements: 10 passport nationalities × 30+ destinations. Processing time, cost, max stay. |\r\n| `get_local_tips` | Insider tips for 20+ cities: transport, SIM cards, tipping, safety, power plugs, neighborhoods, language, currency. |\r\n| `suggest_itinerary_nearby` | Day trips and weekend extensions from 18+ hub cities. Distance, transport options, highlights, costs. |\r\n| `get_weather_forecast` | **Live** weather via Open-Meteo (free, no API key). 80+ cities + Nominatim geocoding fallback. Up to 16 days ahead. |\r\n| `convert_currency` | **Live** 150+ currencies via ExchangeRate API. Static fallback included. |\r\n| `search_flights` | **Live** flight search via Amadeus. 80+ city pairs, prices in EUR. |\r\n| `search_hotels` | **Live** hotel search via Amadeus. Budget/mid/luxury estimates. |\r\n| `get_events` | Curated events, festivals, concerts, markets for 12+ cities. Filter by month. |\r\n| `suggest_restaurants` | Curated restaurant picks for 8+ cities. Filter by cuisine and budget. |\r\n| `get_safety_info` | Travel safety for **50+ countries**: risk score 1-10, emergency numbers, scams, LGBTQ+/solo female safety, tap water. |\r\n| `get_blog_recommendations` | Search 1trip travel articles by topic/destination. Returns titles, excerpts, links. |\r\n| `generate_packing_list` | Personalized packing checklist by season and activities. |\r\n| `save_trip` | Save a trip plan to 1trip platform. Returns edit link. |\r\n| `get_community_routes` | Browse community-submitted routes by category (romantic, adventure, budget, nomad, culinary, historical). |\r\n\r\n## Resources (5)\r\n\r\n| Resource | URI | Description |\r\n|----------|-----|-------------|\r\n| Destinations | `onetrip://destinations` | Full destination catalog with costs (Q1 2026) |\r\n| Packing Templates | `onetrip://packing-templates` | Available seasons and activity types |\r\n| About 1trip | `onetrip://about` | Platform description and tool links |\r\n| Blog Articles | `onetrip://blog-articles` | Latest travel articles with categories and tags |\r\n| Affiliate Partners | `onetrip://affiliate-partners` | Travel service partners with tracking links |\r\n\r\n## Prompts (6)\r\n\r\n| Prompt | Trigger phrase | Description |\r\n|--------|---------------|-------------|\r\n| `plan-trip` | \"Plan a trip to...\" | Guided trip planning: costs, packing, destination discovery |\r\n| `weekend-getaway` | \"Weekend trip from...\" | 2-3 day escape planner with nearby destinations |\r\n| `budget-optimizer` | \"Best destination for $X\" | Find best destination within a specific budget |\r\n| `group-trip` | \"Group trip for N people\" | Group travel with split costs and group-friendly activities |\r\n| `honeymoon-planner` | \"Honeymoon in...\" | Romantic trip with couple-friendly suggestions |\r\n| `digital-nomad` | \"Work remotely in...\" | Work-travel planning: WiFi, coworking, visa, time zones |\r\n\r\n---\r\n\r\n## Quick Start — Pick Your AI\r\n\r\n### Claude Desktop\r\n\r\nAdd to `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows) or `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"1trip-pulse\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"1trippulse-mcp-server\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nThen restart Claude Desktop and ask: *\"Plan a 7-day trip to Japan\"*\r\n\r\n### Cursor\r\n\r\nAdd to `.cursor/mcp.json`:\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"1trip-pulse\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"1trippulse-mcp-server\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### Windsurf\r\n\r\nAdd to `~/.codeium/windsurf/mcp_config.json`:\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"1trip-pulse\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"1trippulse-mcp-server\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### VS Code (GitHub Copilot)\r\n\r\nAdd to `.vscode/mcp.json` in your workspace:\r\n\r\n```json\r\n{\r\n  \"servers\": {\r\n    \"1trip-pulse\": {\r\n      \"type\": \"stdio\",\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"1trippulse-mcp-server\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### ChatGPT / Gemini / Perplexity (HTTP Remote)\r\n\r\nUse our hosted endpoint — no install required:\r\n\r\n```\r\nhttps://mcp.1trip.app/mcp\r\n```\r\n\r\nOr self-host:\r\n\r\n```bash\r\nnpm install 1trippulse-mcp-server\r\nnpx 1trippulse-mcp-server --http   # starts on http://localhost:3100/mcp\r\n```\r\n\r\n**ChatGPT GPT Actions:** Import `https://mcp.1trip.app/openapi.json` as a custom action schema.\r\n\r\n### Any MCP Client (generic)\r\n\r\n```bash\r\nnpx -y 1trippulse-mcp-server\r\n```\r\n\r\n---\r\n\r\n## HTTP Endpoints (self-hosted)\r\n\r\n| Endpoint | Description |\r\n|----------|-------------|\r\n| `POST /mcp` | MCP JSON-RPC (Streamable HTTP transport) |\r\n| `GET /mcp` | SSE stream for server-to-client messages |\r\n| `GET /health` | Health check with server stats |\r\n| `GET /api/analytics` | Tool usage analytics |\r\n| `GET /api/safety?destination=Japan` | REST safety info |\r\n| `GET /api/blog?query=budget` | REST blog search |\r\n| `GET /openapi.json` | OpenAPI 3.1 spec (for GPT Actions) |\r\n| `/go/:slug` | Affiliate tracking redirects |\r\n\r\n---\r\n\r\n## Coverage\r\n\r\n**120+ cities in cost index** (Numbeo Q1 2026):\r\n\r\nWestern Europe · Eastern Europe · Turkey & Middle East · Africa · Asia Pacific · Americas\r\n\r\n**50 cities with curated activities:**\r\nAmsterdam, Athens, Bali, Bangkok, Barcelona, Beirut, Berlin, Budapest, Buenos Aires, Cairo, Cancun, Cape Town, Copenhagen, Doha, Dubrovnik, Dublin, Edinburgh, Florence, Hanoi, Hong Kong, Istanbul, Kuala Lumpur, Kyoto, Lisbon, London, Marrakech, Mexico City, Miami, Milan, Munich, Nairobi, New York, Nice, Osaka, Paris, Porto, Prague, Reykjavik, Rome, San Francisco, Santorini, Seoul, Seville, Singapore, Split, Sydney, Taipei, Tbilisi, Tirana, Tokyo, Vienna, Warsaw\r\n\r\n**50+ countries with safety data** · **10 passport nationalities** for visa checks\r\n\r\n---\r\n\r\n## Architecture\r\n\r\n```\r\nsrc/\r\n  server.ts              # 21 tools, 5 resources, 6 prompts\r\n  index.ts               # stdio entry (Claude Desktop, Cursor, Windsurf)\r\n  http.ts                # HTTP entry (ChatGPT, Gemini, remote agents)\r\n  data/\r\n    destinations.ts      # 40 destinations, Q1 2026 costs, DATA_FRESHNESS\r\n    tripIntelligence.ts  # 120+ city cost index, CITY_ALIASES, smart transport\r\n    liveApis.ts          # Open-Meteo + Nominatim geocoding + ExchangeRate + Amadeus\r\n    cityActivities.ts    # 50 cities with curated real activities\r\n    visaData.ts          # 10 passports × 30+ destinations\r\n    localTips.ts         # 20+ cities insider tips\r\n    safetyData.ts        # 50+ countries safety data\r\n    nearbyDestinations.ts # 18+ hub cities day trips\r\n    seasonalData.ts      # 25+ cities seasonal data\r\n    packing.ts           # Packing templates\r\n    personas.ts          # 7 travel personas + quiz\r\n    affiliates.ts        # 13 affiliate partners\r\n    supabaseClient.ts    # Supabase REST client\r\n```\r\n\r\n## Environment Variables (all optional)\r\n\r\n| Variable | Description |\r\n|----------|-------------|\r\n| `EXCHANGERATE_API_KEY` | Live exchange rates (exchangerate-api.com). Falls back to static. |\r\n| `AMADEUS_API_KEY` | Live flight + hotel search. Free test environment available. |\r\n| `AMADEUS_API_SECRET` | Amadeus OAuth2 secret. |\r\n| `PORT` | HTTP port (default: 3100) |\r\n| `ALLOWED_ORIGINS` | CORS origins (default: `*`) |\r\n| `SUPABASE_URL` | For save_trip and community_routes tools. |\r\n| `SUPABASE_SERVICE_KEY` | Supabase service role key. |\r\n| `API_KEYS` | Rate limiting: `key1:free,key2:pro,key3:unlimited` |\r\n\r\n## License\r\n\r\nMIT — [1trip.app](https://1trip.app) · [npm](https://www.npmjs.com/package/1trippulse-mcp-server) · [MCP Registry](https://registry.modelcontextprotocol.io)\r\n","readmeFilename":"README.md"}