{"version":3,"sources":["jsdelivr-header.js","/npm/dynadot-mcp@1.3.1/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;OCKS,cAAiB,iDACjB,yBAA4B,mDAC5B,MAAS,aACT,eAAkB,qBAClB,kBAAqB,sCACrB,wBAA2B,2BAC3B,qBAAwB,wBACxB,yBAA4B,4BAC5B,0BAA6B,6BAC7B,0BAA6B,6BAC7B,wBAA2B,2BAC3B,yBAA4B,4BAC5B,6BAAgC,gCAChC,4BAA+B,gCAC/B,4BAA+B,yBACxC,eAAe,OACX,MAAM,EAAS,aACT,EAAS,IAAI,cAAc,EAAO,OAAQ,EAAO,SACjD,EAAS,IAAI,UAAU,CACzB,KAAM,cACN,QAAS,SACV,CACC,aAAc,CACV,MAAO,CAAC,EACR,UAAW,CAAC,EACZ,QAAS,CAAC,KAIlB,oBAAoB,EAAQ,GAC5B,iBAAiB,EAAQ,GACzB,qBAAqB,EAAQ,GAC7B,sBAAsB,EAAQ,GAC9B,sBAAsB,EAAQ,GAC9B,oBAAoB,EAAQ,GAC5B,qBAAqB,EAAQ,GAC7B,yBAAyB,EAAQ,GAEjC,wBAAwB,EAAQ,GAChC,wBAAwB,EAAQ,GAIhC,EAAO,OAAO,eAAgB,0GAA2G,CACrI,YAAa,EACR,SACA,WACA,SAAS,yEACf,EAAG,kBAAkB,CACpB,SAAU,CACN,CACI,KAAM,OACN,QAAS,CACL,KAAM,OACN,KAAM,CACF,yEACA,GACA,sBAAsB,GAAe,8BACrC,GACA,2DACA,GACA,kDACA,uHACA,qEACA,GACA,iBACA,yBACA,yBACA,uEACA,gDACA,8DACA,6DACA,2EACA,uFACA,mDACF,KAAK,aAKvB,EAAO,OAAO,kBAAmB,sHAAuH,CACpJ,OAAQ,EAAE,SAAS,SAAS,uDAC7B,EAAG,aAAa,CACf,SAAU,CACN,CACI,KAAM,OACN,QAAS,CACL,KAAM,OACN,KAAM,CACF,kCAAkC,gFAClC,GACA,gDACA,GACA,kDACA,2EACA,mFACA,0DACA,GACA,yBACA,kFACA,gEACA,GACA,wBACA,qEACA,yFACA,sEACA,GACA,+BACA,iDACA,4CACA,gEACA,GACA,2EACF,KAAK,aAMvB,MAAM,EAAY,IAAI,2BAChB,EAAO,QAAQ,GAErB,MAAM,EAAW,gBACP,EAAO,QACb,QAAQ,KAAK,EAAE,EAEnB,QAAQ,GAAG,SAAU,GACrB,QAAQ,GAAG,UAAW,GACtB,QAAQ,MAAM,iCAAiC,EAAO,QAAU,UAAY,qBAChF,CACA,OAAO,OAAO,IACV,QAAQ,MAAM,6BAA8B,GAC5C,QAAQ,KAAK,EAAE,WAGZ,SAAS,sBACZ,MAAM,EAAa,IAAI,cAAc,IAAI,GACnC,EAAU,IAAI,UAAU,CAC1B,KAAM,cACN,QAAS,SACV,CACC,aAAc,CACV,MAAO,CAAC,EACR,UAAW,CAAC,EACZ,QAAS,CAAC,KAuClB,OApCA,oBAAoB,EAAS,GAC7B,iBAAiB,EAAS,GAC1B,qBAAqB,EAAS,GAC9B,sBAAsB,EAAS,GAC/B,sBAAsB,EAAS,GAC/B,oBAAoB,EAAS,GAC7B,qBAAqB,EAAS,GAC9B,yBAAyB,EAAS,GAClC,wBAAwB,EAAS,GACjC,wBAAwB,EAAS,GACjC,EAAQ,OAAO,eAAgB,oCAAqC,CAChE,YAAa,EAAE,SAAS,WAAW,SAAS,yEAC7C,EAAG,kBAAkB,CACpB,SAAU,CACN,CACI,KAAM,OACN,QAAS,CACL,KAAM,OACN,KAAM,gEAAgE,GAAe,oBAKrG,EAAQ,OAAO,kBAAmB,qDAAsD,CACpF,OAAQ,EAAE,SAAS,SAAS,oCAC7B,EAAG,aAAa,CACf,SAAU,CACN,CACI,KAAM,OACN,QAAS,CACL,KAAM,OACN,KAAM,wBAAwB,qCAKvC,CACX","file":"/npm/dynadot-mcp@1.3.1/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/dynadot-mcp@1.3.1/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env node\n/**\n * Dynadot MCP Server\n *\n * A Model Context Protocol server for managing domains, DNS, contacts,\n * transfers, and more via the Dynadot API3.\n *\n * Usage:\n *   DYNADOT_API_KEY=your_key dynadot-mcp\n *   DYNADOT_API_KEY=your_key DYNADOT_SANDBOX=true dynadot-mcp\n */\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { z } from \"zod\";\nimport { loadConfig } from \"./config.js\";\nimport { DynadotClient } from \"./services/dynadot-client.js\";\nimport { registerDomainTools } from \"./tools/domain.js\";\nimport { registerDnsTools } from \"./tools/dns.js\";\nimport { registerContactTools } from \"./tools/contact.js\";\nimport { registerTransferTools } from \"./tools/transfer.js\";\nimport { registerSettingsTools } from \"./tools/settings.js\";\nimport { registerFolderTools } from \"./tools/folder.js\";\nimport { registerAccountTools } from \"./tools/account.js\";\nimport { registerMarketplaceTools } from \"./tools/marketplace.js\";\nimport { registerAccountResource } from \"./resources/account.js\";\nimport { registerDomainsResource } from \"./resources/domains.js\";\nasync function main() {\n    const config = loadConfig();\n    const client = new DynadotClient(config.apiKey, config.sandbox);\n    const server = new McpServer({\n        name: \"dynadot-mcp\",\n        version: \"1.3.0\",\n    }, {\n        capabilities: {\n            tools: {},\n            resources: {},\n            prompts: {},\n        },\n    });\n    // Register tools\n    registerDomainTools(server, client);\n    registerDnsTools(server, client);\n    registerContactTools(server, client);\n    registerTransferTools(server, client);\n    registerSettingsTools(server, client);\n    registerFolderTools(server, client);\n    registerAccountTools(server, client);\n    registerMarketplaceTools(server, client);\n    // Register resources\n    registerAccountResource(server, client);\n    registerDomainsResource(server, client);\n    // ════════════════════════════════════════════\n    // PROMPTS\n    // ════════════════════════════════════════════\n    server.prompt(\"domain_audit\", \"Audit all domains in the account — check expiration dates, DNS health, privacy status, and lock status.\", {\n        urgent_days: z\n            .string()\n            .optional()\n            .describe(\"Flag domains expiring within this many days as urgent (default: 30)\"),\n    }, ({ urgent_days }) => ({\n        messages: [\n            {\n                role: \"user\",\n                content: {\n                    type: \"text\",\n                    text: [\n                        \"Please run a comprehensive audit of all domains in my Dynadot account.\",\n                        \"\",\n                        `Urgency threshold: ${urgent_days ?? \"30\"} days until expiration.`,\n                        \"\",\n                        \"Use the following tools and produce a structured report:\",\n                        \"\",\n                        \"1. Call `list_domains` to retrieve all domains.\",\n                        \"2. For each domain, call `get_domain_info` to fetch expiration date, nameservers, lock status, and privacy settings.\",\n                        \"3. Call `get_account_balance` to confirm sufficient renewal funds.\",\n                        \"\",\n                        \"Report format:\",\n                        \"## Domain Audit Report\",\n                        \"- **Total domains**: N\",\n                        \"- **Expiring soon** (within threshold): list with exact expiry dates\",\n                        \"- **Already expired / in grace period**: list\",\n                        \"- **Privacy OFF**: list domains with WHOIS privacy disabled\",\n                        \"- **Unlocked domains**: list domains without transfer lock\",\n                        \"- **DNS anomalies**: domains using default Dynadot nameservers vs custom\",\n                        \"- **Account balance**: current balance and estimated renewal cost for urgent domains\",\n                        \"- **Recommendations**: prioritized action items\",\n                    ].join(\"\\n\"),\n                },\n            },\n        ],\n    }));\n    server.prompt(\"transfer_domain\", \"Guide through the full domain transfer-in process: auth code retrieval, privacy/lock checks, and status monitoring.\", {\n        domain: z.string().describe(\"The domain name to transfer in (e.g. example.com)\"),\n    }, ({ domain }) => ({\n        messages: [\n            {\n                role: \"user\",\n                content: {\n                    type: \"text\",\n                    text: [\n                        `I want to transfer the domain \"${domain}\" into my Dynadot account. Please guide me through the process step by step.`,\n                        \"\",\n                        \"Follow these steps using the available tools:\",\n                        \"\",\n                        \"**Pre-transfer checks (at current registrar):**\",\n                        \"1. Verify the domain is at least 60 days old and not in a transfer lock.\",\n                        \"2. Confirm WHOIS privacy is disabled so the transfer auth email can be received.\",\n                        \"3. Obtain the EPP/auth code from the current registrar.\",\n                        \"\",\n                        \"**Initiate transfer:**\",\n                        \"4. Call `get_account_balance` to confirm sufficient funds for the transfer fee.\",\n                        \"5. Call `transfer_domain` with the domain name and auth code.\",\n                        \"\",\n                        \"**Monitor progress:**\",\n                        \"6. Call `get_transfer_status` to check the current transfer state.\",\n                        \"7. If status is pending_owner_approval, advise the user to approve the transfer email.\",\n                        \"8. Call `check_processing` to verify no blocking operations remain.\",\n                        \"\",\n                        \"**Post-transfer hardening:**\",\n                        \"9. Call `lock_domain` to enable transfer lock.\",\n                        \"10. Call `set_privacy` with full privacy.\",\n                        \"11. Call `get_domain_info` to confirm the final domain state.\",\n                        \"\",\n                        \"Provide clear status updates and next-action instructions at each step.\",\n                    ].join(\"\\n\"),\n                },\n            },\n        ],\n    }));\n    // Connect via stdio transport\n    const transport = new StdioServerTransport();\n    await server.connect(transport);\n    // Graceful shutdown\n    const shutdown = async () => {\n        await server.close();\n        process.exit(0);\n    };\n    process.on(\"SIGINT\", shutdown);\n    process.on(\"SIGTERM\", shutdown);\n    console.error(`[dynadot-mcp] Server started (${config.sandbox ? \"sandbox\" : \"production\"} mode)`);\n}\nmain().catch((error) => {\n    console.error(\"[dynadot-mcp] Fatal error:\", error);\n    process.exit(1);\n});\n// ── Smithery Sandbox ──\nexport function createSandboxServer() {\n    const mockClient = new DynadotClient(\"\", true);\n    const sandbox = new McpServer({\n        name: \"dynadot-mcp\",\n        version: \"1.3.0\",\n    }, {\n        capabilities: {\n            tools: {},\n            resources: {},\n            prompts: {},\n        },\n    });\n    registerDomainTools(sandbox, mockClient);\n    registerDnsTools(sandbox, mockClient);\n    registerContactTools(sandbox, mockClient);\n    registerTransferTools(sandbox, mockClient);\n    registerSettingsTools(sandbox, mockClient);\n    registerFolderTools(sandbox, mockClient);\n    registerAccountTools(sandbox, mockClient);\n    registerMarketplaceTools(sandbox, mockClient);\n    registerAccountResource(sandbox, mockClient);\n    registerDomainsResource(sandbox, mockClient);\n    sandbox.prompt(\"domain_audit\", \"Audit all domains in the account.\", {\n        urgent_days: z.string().optional().describe(\"Flag domains expiring within this many days as urgent (default: 30)\"),\n    }, ({ urgent_days }) => ({\n        messages: [\n            {\n                role: \"user\",\n                content: {\n                    type: \"text\",\n                    text: `Run a comprehensive audit of all domains. Urgency threshold: ${urgent_days ?? \"30\"} days.`,\n                },\n            },\n        ],\n    }));\n    sandbox.prompt(\"transfer_domain\", \"Guide through the full domain transfer-in process.\", {\n        domain: z.string().describe(\"The domain name to transfer in\"),\n    }, ({ domain }) => ({\n        messages: [\n            {\n                role: \"user\",\n                content: {\n                    type: \"text\",\n                    text: `Transfer the domain \"${domain}\" into my Dynadot account.`,\n                },\n            },\n        ],\n    }));\n    return sandbox;\n}\n"]}