103 lines
4.3 KiB
Markdown
103 lines
4.3 KiB
Markdown
# 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.
|