Model Context Protocol (MCP)
Stateless Cloudflare Worker exposing 17 travel planning tools, live WebSocket-free previews, OAuth 2.1 PKCE, and inline bundle uploads.
Turn AI agent itineraries into self-contained bundles that work completely offline with vector maps on mobile devices.
Waypack bridges modern LLM coding and planning agents with real-world travel conditions where cellular signal is intermittent or non-existent.
packages/bundle-schema) A trip plan is compiled into a static, deterministic zip archive:
manifest.json: Structured source of truth (places, coordinates, routes, schedule, day-by-day activities, emergency contacts, metadata). Validated against JSON Schema v1.index.html: Entry point of the mobile web application.assets/: Self-contained JavaScript, CSS, and imagery.packages/trip-sdk) Exposes window.Waypack to the sandboxed web view:
.pmtiles archive using MapLibre GL JS with offline glyphs and sprites.Waypack.openInMaps), .ics offline calendar exports (Waypack.addToCalendar), and GPS geolocation tracking.packages/cli) The @waypack/cli npm package provides local development workflows:
waypack init <dir>: Scaffolds a new trip bundle from starter templates.waypack preview <dir>: Launches a phone-sized local preview server with authentic Content Security Policy and live tile proxying.waypack validate <dir>: Verifies structural and schema compliance before publishing.waypack screenshot <dir> [--manifest]: Captures phone-sized screenshots of the trip into listing/ for its store-style listing in the account portal.waypack skill install: Installs the agent skill directly to Claude Code and Cursor.services/mcp) A horizontal, stateless Cloudflare Worker implementing the Model Context Protocol:
geocode, compute_route, validate_bundle, push_preview, publish_preview, upload_bundle_inline, list_trips, get_trip_status, and price tracking (record_price, get_price_history, set_booking_status, suggest_booking_timing).services/tiler) A containerized Go microservice:
bbox) from the Cloudflare Queue.apps/mobile) Built with Flutter for iOS, Android, and macOS: