Skip to main content
Glama
klappe-pm

Real Estate MCP Server

by klappe-pm
index.ts1.94 kB
import { config } from 'dotenv'; import { z } from 'zod'; // Load environment variables config(); // Configuration schema with validation const configSchema = z.object({ // API Keys rapidApiKey: z.string().min(1, 'RAPIDAPI_KEY is required'), rapidApiHostZillow: z.string().default('zillow-com1.p.rapidapi.com'), rentcastApiKey: z.string().optional(), rentcastBaseUrl: z.string().url().default('https://api.rentcast.io'), // Application settings nodeEnv: z.enum(['development', 'production', 'test']).default('development'), logLevel: z.enum(['debug', 'info', 'warn', 'error']).default('info'), apiTimeout: z.coerce.number().default(10000), cacheTtl: z.coerce.number().default(3600), // Rate limiting zillowRateLimit: z.coerce.number().default(60), rentcastRateLimit: z.coerce.number().default(100), }); // Parse and validate configuration const parseConfig = () => { try { return configSchema.parse({ rapidApiKey: process.env.RAPIDAPI_KEY, rapidApiHostZillow: process.env.RAPIDAPI_HOST_ZILLOW, rentcastApiKey: process.env.RENTCAST_API_KEY, rentcastBaseUrl: process.env.RENTCAST_BASE_URL, nodeEnv: process.env.NODE_ENV, logLevel: process.env.LOG_LEVEL, apiTimeout: process.env.API_TIMEOUT, cacheTtl: process.env.CACHE_TTL, zillowRateLimit: process.env.ZILLOW_RATE_LIMIT, rentcastRateLimit: process.env.RENTCAST_RATE_LIMIT, }); } catch (error) { if (error instanceof z.ZodError) { console.error('Configuration validation failed:'); error.issues.forEach(issue => { console.error(`- ${issue.path.join('.')}: ${issue.message}`); }); console.error('\nPlease check your .env file and ensure all required variables are set.'); console.error('See .env.example for reference.'); } process.exit(1); } }; export const appConfig = parseConfig(); export type AppConfig = typeof appConfig;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/klappe-pm/Real-Estate-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server