MCP Namecheap Server
Provides tools for managing domains through the Namecheap API, including retrieving domain lists, checking domain availability, and configuring custom nameservers.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Namecheap Servercheck if dev-portfolio.com and my-app.io are available"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Namecheap Server
A Model Context Protocol (MCP) server that provides integration with the Namecheap API for domain management operations.
Features
I only added the functionality I use and I don't think it's a good idea to allow an agent to register domains. The complete set of Namecheap API methods can be found here.
Get Domain List: Retrieve all domains in your Namecheap account
Check Domain Availability: Check if domains are available for registration
Set Custom DNS: Configure custom nameservers for your domains
Configurable Tools: Enable/disable specific tools to control what's available in Cursor
Related MCP server: Namecheap MCP Server
Prerequisites
Before using this MCP server, you need:
Namecheap Account Requirements:
At least 20 domains under your account
$50 on your account balance
$50 spent within the last 2 years
API Access Setup:
Enable API access in your Namecheap dashboard
Obtain your API key
Whitelist your IP address
Installation
Clone this repository:
git clone <repository-url>
cd mcp-namecheapInstall dependencies:
npm installBuild the project:
npm run buildConfiguration
Create a .env file with your Namecheap credentials:
NAMECHEAP_API_USER=your_api_username
NAMECHEAP_API_KEY=your_api_key
NAMECHEAP_USERNAME=your_namecheap_username
NAMECHEAP_CLIENT_IP=your_whitelisted_ip_addressOr reference the mcp-config.json file which shows all available environment variables.
Tool Configuration
You can enable/disable specific tools by setting these environment variables:
NAMECHEAP_ENABLE_GETLIST- Enable domain list retrieval (default: true)NAMECHEAP_ENABLE_CHECK- Enable domain availability checking (default: true)NAMECHEAP_ENABLE_SETCUSTOM- Enable custom DNS configuration (default: true)
Set any of these to false to disable the corresponding tool.
Sandbox Mode
For testing, you can use Namecheap's sandbox environment:
NAMECHEAP_SANDBOX=trueUsage
Running the Server
npm startAvailable Tools
1. Get Domain List (namecheap_get_domain_list)
Returns a list of all domains in your Namecheap account with details including expiration dates, auto-renewal status, and DNS configuration.
Parameters: None
2. Check Domain Availability (namecheap_check_domain_availability)
Checks the availability of one or more domains for registration.
Parameters:
domains(array): Array of domain names to check (e.g., ["example.com", "test.org"])
3. Set Custom DNS (namecheap_set_custom_dns)
Sets custom nameservers for a domain. Note that services like URL forwarding, email forwarding, and dynamic DNS will not work with custom nameservers.
Parameters:
domain(string): The domain name (e.g., "example.com")nameservers(array): Array of nameserver addresses (1-12 nameservers)
MCP Client Configuration
To use this server with an MCP client like Cursor, add the following to your MCP configuration:
{
"mcpServers": {
"namecheap": {
"command": "node",
"args": ["path/to/mcp-namecheap/dist/index.js"],
"env": {
"NAMECHEAP_API_USER": "your_api_username",
"NAMECHEAP_API_KEY": "your_api_key",
"NAMECHEAP_USERNAME": "your_namecheap_username",
"NAMECHEAP_CLIENT_IP": "your_whitelisted_ip_address"
}
}
}
}Development
Scripts
npm run build- Build the TypeScript projectnpm run dev- Run in development mode with tsxnpm start- Run the built project
Project Structure
src/
├── index.ts # Main MCP server implementation
├── namecheap-client.ts # Namecheap API client
└── types.ts # TypeScript type definitionsAPI Reference
This server uses the following Namecheap API endpoints:
namecheap.domains.getList- Retrieve domain listnamecheap.domains.check- Check domain availabilitynamecheap.domains.dns.setCustom- Set custom nameservers
For more information, see the Namecheap API documentation.
Error Handling
The server includes comprehensive error handling for:
Missing or invalid API credentials
Network connectivity issues
Namecheap API errors
Invalid parameters
Disabled tools
Security Considerations
Store API credentials securely
Keep your IP whitelist updated
Use environment variables for sensitive configuration
Consider using the sandbox environment for testing
License
MIT
Available Tools
3 toolsnamecheap_check_domain_availabilityC
Check the availability of one or more domains
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | Array of domain names to check (e.g., ["example.com", "test.org"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action but lacks details on traits like rate limits, authentication requirements, response format (e.g., returns availability status per domain), or error handling. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain the return values (e.g., what availability data looks like), error conditions, or behavioral constraints. For a tool with minimal structured data, the description should provide more context to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'domains' fully documented in the schema as an array of domain names. The description adds no additional meaning beyond what the schema provides (e.g., no examples of valid formats beyond the schema's example). Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Check') and resource ('availability of one or more domains'), making the purpose unambiguous. It doesn't explicitly differentiate from sibling tools like 'namecheap_get_domain_list' (which likely lists owned domains) or 'namecheap_set_custom_dns' (which configures DNS), but the action is specific enough to imply distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), context for checking availability (e.g., before registration), or comparisons to siblings like 'namecheap_get_domain_list' for owned domains. Usage is implied by the action but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
namecheap_get_domain_listB
Get a list of all domains in your Namecheap account
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it's a read operation ('Get'), but doesn't mention authentication requirements, rate limits, pagination behavior, or what the returned list includes (e.g., domain status, expiration dates). This leaves significant gaps for a tool that presumably accesses account data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states what the tool does without any unnecessary words. It's appropriately sized and front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description provides the minimum viable information about what the tool does. However, without annotations or output details, it doesn't fully address behavioral aspects like authentication needs or return format, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the input structure. The description appropriately doesn't add parameter information, maintaining focus on the tool's purpose. A baseline of 4 is appropriate for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('list of all domains in your Namecheap account'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'namecheap_check_domain_availability' or 'namecheap_set_custom_dns', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, limitations, or relationships to sibling tools, leaving the agent to infer usage context independently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
namecheap_set_custom_dnsC
Set custom DNS nameservers for a domain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain name (e.g., "example.com") | |
| nameservers | Yes | Array of nameserver addresses (e.g., ["ns1.example.com", "ns2.example.com"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a 'Set' operation (implying mutation), but doesn't clarify permissions required, whether changes are immediate or propagate over time, if there are rate limits, or what happens on success/failure. This leaves critical behavioral aspects undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns, error conditions, or important behavioral constraints. The 100% schema coverage helps with inputs, but overall context for safe and effective use is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are well-documented in the schema itself. The description adds no additional parameter context beyond what's already in the schema (domain format, nameserver array structure). This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set') and resource ('custom DNS nameservers for a domain'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like domain checking or listing, but the verb 'Set' implies a configuration change distinct from those read-only operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives or prerequisites. It doesn't mention if this should be used instead of default DNS settings, what happens to existing nameservers, or any dependencies like domain ownership verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
namecheap_check_domain_availability - First observed
namecheap_get_domain_list - First observed
namecheap_set_custom_dns
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose with no overlap: checking domain availability, listing owned domains, and setting DNS nameservers. The descriptions clearly differentiate these three separate operations in the domain management workflow.
All three tools follow a perfect namecheap_verb_noun pattern with consistent snake_case formatting. The naming convention is predictable and readable throughout the entire tool set.
With only 3 tools, this server feels somewhat thin for a comprehensive domain management system. While the tools cover core operations, typical domain management would include additional functionality like domain registration, renewal, transfer, or contact management.
There are significant gaps in the domain management lifecycle. The server lacks essential operations like registering a domain after checking availability, renewing domains, transferring domains, or managing domain contacts/settings beyond DNS. This creates dead ends in typical domain management workflows.
Maintenance
Related MCP Connectors
MCP server for DNSimple — domains, DNS zone records, availability, pricing and contacts.
Custom domains for SaaS and AI agents: search, register, connect DNS, and issue HTTPS over MCP.
Domain availability search, WHOIS lookup, TLD pricing and registry rules from name.ai. Read-only.
Domains MCP — domain registration lookup + availability search over live
Related MCP Servers
- AlicenseAqualityDmaintenanceComprehensive MCP server for the Namecheap API, enabling domain management, DNS record control, nameserver settings, and domain registration from any MCP client.1039 npmMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for managing DNS records and domains via the Namecheap API. Works with Claude.ai and other MCP clients.4 npmMIT
- FlicenseAqualityCmaintenanceA Model Context Protocol server that wraps the Namecheap API, enabling AI assistants to manage domains, DNS records, SSL certificates, and account information.218 npm-
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Namecheap domains, DNS, contacts, registrar locks, and view SSL certificates and pricing through safe read and configuration tools.1629 npmMIT