url-builder-mcp
Version:
URL Builder MCP Server - Professional URL construction with intelligent parameter handling for Claude Desktop
50 lines (43 loc) • 1.68 kB
text/typescript
/**
* URL Builder MCP Types
*
* Types for URL construction following project-specific rules
*/
export interface UrlParams {
checkIn: string; // YYYY-MM-DD (required)
checkOut: string; // YYYY-MM-DD (required)
adults?: number; // Number of adults (optional, default: 2)
children?: number; // Number of children (optional, default: 0)
roomType?: string; // Room type name (optional) - e.g., 'garden-deluxe', 'standard', 'suite'
guestName?: string; // Guest name (optional)
guestEmail?: string; // Guest email (optional)
guestPhone?: string; // Guest phone (optional)
}
export interface BookingUrlParams extends UrlParams {
guestName: string; // Guest name (required for booking URLs)
guestPhone: string; // Guest phone (required for booking URLs)
}
export interface ValidationResult {
valid: boolean;
errors: string[];
}
export interface UrlBuilderConfig {
/** Base domain/URL for all URL generation. Replaces both BOOKING_URL_BASE and BASE_DOMAIN */
bookingUrlBase: string;
/** Default currency for booking URLs */
defaultCurrency: string;
/** Base domain for complete URLs (same as bookingUrlBase for consistency) */
baseDomain: string;
}
export interface UtmParams {
utm_source?: string; // Traffic source (e.g., 'claude-desktop', 'mcp-server')
utm_medium?: string; // Marketing medium (e.g., 'ai-assistant', 'mcp')
utm_campaign?: string; // Campaign name (e.g., 'url-builder-mcp')
utm_term?: string; // Paid search keywords (optional)
utm_content?: string; // Content differentiation (optional)
}
export interface UrlOptions {
useBaseDomain?: boolean;
addUtmTracking?: boolean;
customUtm?: Partial<UtmParams>;
}