fixing jsonSchema validation by using zod
This commit is contained in:
102
CHANGELOG.md
Normal file
102
CHANGELOG.md
Normal file
@@ -0,0 +1,102 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user