{"id":29550442,"url":"https://github.com/cfdude/mcp-namecheap","last_synced_at":"2025-07-18T02:42:34.799Z","repository":{"id":304017227,"uuid":"1017500844","full_name":"cfdude/mcp-namecheap","owner":"cfdude","description":"MCP server for interacting with Namecheap API","archived":false,"fork":false,"pushed_at":"2025-07-10T17:06:57.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-10T23:04:25.930Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cfdude.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-10T16:19:24.000Z","updated_at":"2025-07-10T16:57:53.000Z","dependencies_parsed_at":"2025-07-10T23:04:30.782Z","dependency_job_id":"6ba30ea9-a36c-457d-ac1a-b419f8742913","html_url":"https://github.com/cfdude/mcp-namecheap","commit_stats":null,"previous_names":["cfdude/mcp-namecheap"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/cfdude/mcp-namecheap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfdude%2Fmcp-namecheap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfdude%2Fmcp-namecheap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfdude%2Fmcp-namecheap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfdude%2Fmcp-namecheap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cfdude","download_url":"https://codeload.github.com/cfdude/mcp-namecheap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfdude%2Fmcp-namecheap/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265692807,"owners_count":23812207,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-18T02:42:26.298Z","updated_at":"2025-07-18T02:42:34.781Z","avatar_url":"https://github.com/cfdude.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MCP Namecheap Server\n\nA Model Context Protocol (MCP) server that provides tools for interacting with the Namecheap API. This server allows AI assistants to manage domains, check availability, and configure DNS records through Namecheap.\n\n## Features\n\n- **Domain Management**: List domains, check availability, get domain information\n- **DNS Management**: Get and set DNS records, configure custom nameservers\n- **Secure**: API keys stored in environment variables\n- **Flexible**: Supports both production and sandbox Namecheap APIs\n- **MCP Compatible**: Works with any MCP-compatible client\n\n## Prerequisites\n\n- Node.js 18 or higher\n- Namecheap account with API access enabled\n- Production API key from Namecheap (get it from https://ap.www.namecheap.com/settings/tools/apiaccess/)\n- Sandbox API key for testing (register at https://www.sandbox.namecheap.com and enable API access)\n\n## Installation\n\n### From Source\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/mcp-namecheap.git\ncd mcp-namecheap\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Create a `.env` file from the example:\n```bash\ncp .env.example .env\n```\n\n4. Edit `.env` and add your Namecheap API credentials:\n```env\n# Production API Key (from Namecheap account settings)\nNAMECHEAP_API_KEY=your_production_api_key_here\n\n# Sandbox API Key (from https://www.sandbox.namecheap.com)\nNAMECHEAP_SANDBOX_API_KEY=your_sandbox_api_key_here\n\nNAMECHEAP_API_USER=your_api_username_here\nNAMECHEAP_CLIENT_IP=your_whitelisted_ip_here\n\n# Set to 'true' to use sandbox API, 'false' for production\nNAMECHEAP_USE_SANDBOX=true\n```\n\n**Important**: You must whitelist your IP address in the Namecheap API settings.\n\n5. Build the project:\n```bash\nnpm run build\n```\n\n### Using Docker\n\n1. Build the Docker image:\n```bash\ndocker build -t mcp-namecheap .\n```\n\n2. Run with environment variables:\n```bash\ndocker run -i \\\n  -e NAMECHEAP_API_KEY=your_production_api_key \\\n  -e NAMECHEAP_SANDBOX_API_KEY=your_sandbox_api_key \\\n  -e NAMECHEAP_API_USER=your_username \\\n  -e NAMECHEAP_CLIENT_IP=your_ip \\\n  -e NAMECHEAP_USE_SANDBOX=true \\\n  mcp-namecheap\n```\n\n## Configuration\n\n### MCP Client Configuration\n\nAdd the server to your MCP client configuration:\n\n#### For Claude Desktop\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"namecheap\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/mcp-namecheap/dist/index.js\"],\n      \"env\": {\n        \"NAMECHEAP_API_KEY\": \"your_production_api_key\",\n        \"NAMECHEAP_SANDBOX_API_KEY\": \"your_sandbox_api_key\",\n        \"NAMECHEAP_API_USER\": \"your_username\",\n        \"NAMECHEAP_CLIENT_IP\": \"your_ip\",\n        \"NAMECHEAP_USE_SANDBOX\": \"true\"\n      }\n    }\n  }\n}\n```\n\n#### For Smithery\n\nThe server is configured to work with Smithery installation. Simply use:\n\n```bash\nsmithery install mcp-namecheap\n```\n\n## Available Tools\n\n### Domain Management Tools\n\n#### `namecheap_domains_list`\nLists all domains in your Namecheap account.\n\nParameters:\n- `listType` (optional): \"ALL\", \"EXPIRING\", or \"EXPIRED\"\n- `searchTerm` (optional): Filter domains by search term\n- `page` (optional): Page number for pagination\n- `pageSize` (optional): Number of results per page\n- `sortBy` (optional): Sort order - \"NAME\", \"NAME_DESC\", \"EXPIREDATE\", \"EXPIREDATE_DESC\", \"CREATEDATE\", \"CREATEDATE_DESC\"\n\n#### `namecheap_domains_check`\nChecks if domains are available for registration. **Supports bulk checking!**\n\nParameters:\n- `domainList` (required): Array of domain names to check (can check multiple domains at once)\n\n#### `namecheap_domains_getinfo`\nGets detailed information about a specific domain.\n\nParameters:\n- `domainName` (required): Domain name to get information for\n- `hostName` (optional): Hosted domain name for which domain information needs to be requested\n\n#### `namecheap_domains_getcontacts`\nGets contact information for a domain.\n\nParameters:\n- `domainName` (required): Domain name to get contacts for\n\n#### `namecheap_domains_create`\nRegisters a new domain name.\n\nParameters:\n- `domainName` (required): Domain name to register\n- `years` (required): Number of years to register (1-10)\n- `registrantFirstName` (required): Registrant first name\n- `registrantLastName` (required): Registrant last name\n- `registrantAddress1` (required): Registrant address\n- `registrantCity` (required): Registrant city\n- `registrantStateProvince` (required): Registrant state/province\n- `registrantPostalCode` (required): Registrant postal code\n- `registrantCountry` (required): Registrant country code (e.g., \"US\")\n- `registrantPhone` (required): Registrant phone number\n- `registrantEmailAddress` (required): Registrant email address\n- Additional optional contact fields for admin, tech, and billing contacts\n- `nameservers` (optional): Comma-separated list of nameservers\n- `addFreeWhoisguard` (optional): \"yes\" or \"no\" (default: \"yes\")\n- `wgEnabled` (optional): Enable WhoisGuard privacy protection \"yes\" or \"no\" (default: \"yes\")\n\n#### `namecheap_domains_gettldlist`\nGets a list of all supported TLDs (Top Level Domains).\n\nNo parameters required.\n\n#### `namecheap_domains_setcontacts`\nUpdates contact information for a domain.\n\nParameters:\n- `domainName` (required): Domain name to update\n- Various contact fields (all optional) for registrant, admin, tech, and billing contacts\n\n#### `namecheap_domains_reactivate`\nReactivates an expired domain.\n\nParameters:\n- `domainName` (required): Domain name to reactivate\n- `isPremiumDomain` (optional): Whether this is a premium domain (default: false)\n\n#### `namecheap_domains_renew`\nRenews an expiring domain.\n\nParameters:\n- `domainName` (required): Domain name to renew\n- `years` (required): Number of years to renew (1-10)\n- `isPremiumDomain` (optional): Whether this is a premium domain (default: false)\n\n#### `namecheap_domains_getregistrarlock`\nGets the registrar lock status of a domain.\n\nParameters:\n- `domainName` (required): Domain name to check lock status\n\n#### `namecheap_domains_setregistrarlock`\nSets the registrar lock status for a domain.\n\nParameters:\n- `domainName` (required): Domain name to lock/unlock\n- `lockAction` (required): \"LOCK\" or \"UNLOCK\"\n\n### DNS Management Tools\n\n#### `namecheap_dns_getlist`\nRetrieves DNS host records for a domain.\n\nParameters:\n- `sld` (required): Second level domain (e.g., \"example\" from \"example.com\")\n- `tld` (required): Top level domain (e.g., \"com\" from \"example.com\")\n\n#### `namecheap_dns_setcustom`\nSets custom nameservers for a domain.\n\nParameters:\n- `sld` (required): Second level domain\n- `tld` (required): Top level domain\n- `nameservers` (required): Array of nameserver addresses\n\n#### `namecheap_dns_sethosts`\nSets DNS host records for a domain.\n\nParameters:\n- `sld` (required): Second level domain\n- `tld` (required): Top level domain\n- `hosts` (required): Array of DNS records with:\n  - `hostname`: Subdomain or \"@\" for root\n  - `recordType`: \"A\", \"AAAA\", \"CNAME\", \"MX\", \"TXT\", \"NS\", \"SRV\", or \"CAA\"\n  - `address`: Value for the DNS record\n  - `mxPriority` (optional): Priority for MX records\n  - `ttl` (optional): Time to live in seconds (default: 1800)\n\n## Development\n\n### Running in Development Mode\n\n```bash\nnpm run dev\n```\n\n### Building\n\n```bash\nnpm run build\n```\n\n### Testing with MCP Inspector\n\nYou can test the server using the MCP Inspector:\n\n```bash\nnpx @modelcontextprotocol/inspector dist/index.js\n```\n\n## Security Notes\n\n- Never commit your `.env` file or expose your API keys\n- Always use environment variables for sensitive data\n- Whitelist only necessary IP addresses in Namecheap\n- Use the sandbox API for testing\n\n## Troubleshooting\n\n### \"Error 10: Unknown command\" \nMake sure your API access is enabled in Namecheap and you're using the correct API endpoint.\n\n### \"Error 11: Authentication failed\"\nCheck that:\n- Your API key is correct\n- Your username matches the API user\n- Your IP is whitelisted in Namecheap\n\n### Connection Issues\nEnsure the server is running and your MCP client is properly configured with the correct path.\n\n## License\n\nMIT\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfdude%2Fmcp-namecheap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcfdude%2Fmcp-namecheap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfdude%2Fmcp-namecheap/lists"}