UNPKG

@thelord/mcp-cloudflare

Version:

A Model Context Protocol server implementation for Cloudflare DNS that enables AI agents to manage DNS records for your domains

37 lines (36 loc) 1.51 kB
#!/usr/bin/env node import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import createServer from './index.js'; import dotenv from 'dotenv'; // Load environment variables dotenv.config(); // Get config from environment variables const config = { cloudflareApiToken: process.env.CLOUDFLARE_API_TOKEN || '', cloudflareZoneId: process.env.CLOUDFLARE_ZONE_ID || '', cloudflareEmail: process.env.CLOUDFLARE_EMAIL || '' }; // Validate required config if (!config.cloudflareApiToken || !config.cloudflareZoneId) { console.error('❌ Missing required environment variables:'); console.error(' CLOUDFLARE_API_TOKEN, CLOUDFLARE_ZONE_ID'); console.error(''); console.error('📝 Create a .env file with:'); console.error(' CLOUDFLARE_API_TOKEN=your-api-token'); console.error(' CLOUDFLARE_ZONE_ID=your-zone-id'); console.error(' CLOUDFLARE_EMAIL=your-email@example.com # Optional'); console.error(''); console.error('🔑 Get your API token at: https://dash.cloudflare.com/profile/api-tokens'); console.error('🆔 Find your Zone ID in the Cloudflare dashboard for your domain'); process.exit(1); } const server = createServer({ config }); async function main() { const transport = new StdioServerTransport(); await server.connect(transport); console.error('🚀 Cloudflare MCP Server running locally'); } main().catch((error) => { console.error('❌ Failed to start server:', error); process.exit(1); });