4.3 KiB
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)
searchFlightstool: Search for flights between airports with realistic pricingbookFlighttool: 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)
searchHotelstool: Search hotels by city with pricing tiersbookHoteltool: 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)
searchCarstool: Search car rentals by pickup/dropoff locationbookCartool: 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
retrieveBookingtool: Fetch booking details by PNRcancelBookingtool: Cancel bookings with status validationlistBookingstool: List all bookings in current sessiongetSessionInfotool: View session metadataclearSessiontool: 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.