Files
gds-mock-mcp/CHANGELOG.md

4.3 KiB

Changelog

All notable changes to the GDS Mock MCP Server will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[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.