UNPKG

payload-cms-mcp

Version:

Payload CMS 3.0 MCP Server - A specialized Model Context Protocol server for Payload CMS

67 lines (53 loc) 2.12 kB
#!/usr/bin/env node const { createClient } = require('redis'); const dotenv = require('dotenv'); // Load environment variables dotenv.config(); // Clean the Redis URL if it contains variable name or quotes const cleanRedisUrl = (url) => { if (!url) return undefined; // If the URL contains KV_URL= or REDIS_URL=, extract just the URL part if (url.includes('KV_URL=') || url.includes('REDIS_URL=')) { const match = url.match(/(?:KV_URL=|REDIS_URL=)["']?(rediss?:\/\/[^"']+)["']?/); return match ? match[1] : url; } // Remove any surrounding quotes return url.replace(/^["'](.+)["']$/, '$1'); }; const redisUrl = cleanRedisUrl(process.env.REDIS_URL) || cleanRedisUrl(process.env.KV_URL); if (!redisUrl) { console.error('\x1b[31m%s\x1b[0m', 'Error: REDIS_URL or KV_URL environment variable is not set'); console.log('\x1b[33m%s\x1b[0m', 'Please set up your environment variables:'); console.log('1. Copy .env.example to .env: cp .env.example .env'); console.log('2. Edit .env file with your Redis connection details'); process.exit(1); } async function checkRedisConnection() { console.log(`Checking Redis connection at ${redisUrl}...`); const client = createClient({ url: redisUrl, socket: { connectTimeout: 5000, } }); client.on('error', (err) => { console.error('\x1b[31m%s\x1b[0m', 'Redis connection error:', err.message); if (err.message.includes('ECONNREFUSED')) { console.log('\x1b[33m%s\x1b[0m', '\nRedis server is not running. You can:'); console.log('1. Start Redis with Docker: docker run -p 6379:6379 redis:alpine'); console.log('2. Use docker-compose: npm run docker:up'); console.log('3. Install and run Redis locally: https://redis.io/download'); } process.exit(1); }); try { await client.connect(); console.log('\x1b[32m%s\x1b[0m', 'Successfully connected to Redis!'); await client.quit(); process.exit(0); } catch (err) { console.error('\x1b[31m%s\x1b[0m', 'Failed to connect to Redis:', err.message); process.exit(1); } } checkRedisConnection();