# Changelog All notable changes to the GDS Mock MCP Server will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.1.0] - 2026-04-08 ### Added - Initial release of GDS Mock MCP Server - **Flight Search and Booking** (User Story 1 - MVP) - `searchFlights` tool: Search for flights between airports with realistic pricing - `bookFlight` tool: Create flight bookings with passenger details - Mock data: 100+ airports, 30+ airlines, deterministic flight generation - Support for economy, business, and first class cabins - Realistic pricing ($200-$2500+ based on route and class) - **Session Management** (User Story 4) - Concurrent session support with UUID v4 session IDs - Session isolation: bookings scoped to sessions with zero data leakage - Session TTL management (1 hour default, configurable) - Activity tracking and automatic cleanup - **Remote Access** (User Story 6) - **MCP 2025-11-25 Streamable HTTP transport** (HTTP/1.1 + SSE) - Protocol version validation middleware (strict 2025-11-25) - IP-based rate limiting (100 req/min default, Valkey-backed) - CORS middleware with permissive wildcard policy - Health check endpoint (`/health`) - CLI arguments: `--remote`, `--port`, `--host`, `--verbose`, `--log-level` - Dual transport support: stdio (default) or HTTP - SSE polling pattern with Last-Event-ID resumption - Example remote client demonstrating SSE connection - Nginx reverse proxy configuration template - **Hotel Search and Bundling** (User Story 2) - `searchHotels` tool: Search hotels by city with pricing tiers - `bookHotel` tool: Create hotel bookings and bundle with flights - Mock data: 50+ properties across major cities (3-5 star ratings) - Realistic pricing: budget ($80-$150), midrange ($150-$300), luxury ($300-$800) - Multi-service bundling: combine hotels with flights under single PNR - **Car Rental Integration** (User Story 3) - `searchCars` tool: Search car rentals by pickup/dropoff location - `bookCar` tool: Create car rental bookings and bundle with flights/hotels - Mock data: 8 rental companies, 8 vehicle categories - Complete travel package support: flights + hotels + cars under one PNR - **Booking Management Tools** - `retrieveBooking` tool: Fetch booking details by PNR - `cancelBooking` tool: Cancel bookings with status validation - `listBookings` tool: List all bookings in current session - `getSessionInfo` tool: View session metadata - `clearSession` tool: Clear session data - **Infrastructure** - Valkey 8.0+ integration for session and PNR storage - Structured logging with Pino - MCP error codes and error handling - JSON schema validation - PNR generation with TEST- prefix (base32 encoding) - Docker Compose configuration for Valkey - Multi-stage Dockerfile with non-root user - ESLint and Prettier configuration ### Technical Details - **Node.js 20 LTS** with ES modules - **@modelcontextprotocol/sdk v1.0.4+** for MCP protocol - **ioredis v5.4.1** for Valkey/Redis client - **Pino v9.5.0** for structured logging - **Express v4.18+** for HTTP middleware - **express-rate-limit v7.1+** for IP-based rate limiting - **CORS v2.8+** for cross-origin support ### Security - PNRs prefixed with TEST- to prevent confusion with production - No real external API calls (100% self-contained) - Rate limiting on remote access (100 req/min per IP) - Localhost binding by default (127.0.0.1) per MCP security - Non-root Docker user - Session isolation with cryptographically secure UUIDs ### Documentation - Comprehensive README with installation and usage instructions - SAFETY_DISCLAIMER.md emphasizing testing/demo purpose only - Inline JSDoc comments for all public functions - Example remote client with SSE demonstration - Nginx configuration template for optional HTTP/2 upgrade ## [Unreleased] ### Planned - Additional search filters (airline preference, hotel amenities, car features) - Enhanced error messages with suggested corrections - Metrics and monitoring endpoints - Load testing and performance optimization - Additional mock data for global coverage --- **Note**: This is a mock server for testing and demonstration purposes only. All data is simulated. No real travel bookings are created.