域名管理服务器

一个基于Namecheap API的MCP服务器,提供域名管理和DNS配置功能,适用于AI助手管理域名、检查可用性和配置DNS记录。

  • by cfdude
  • TypeScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 cfdude/mcp-namecheap

使用说明

MCP Namecheap服务器

一种模型上下文协议(MCP)服务器,提供与Namecheap API交互的工具。该服务器允许AI助手通过Namecheap管理域、检查可用性和配置DNS记录。

特性

  • 域管理:列出域、检查可用性、获取域信息
  • DNS管理:获取和设置DNS记录,配置自定义名称服务器
  • 安全:存储在环境变量中的API密钥
  • 灵活的:支持生产和沙箱Namecheap API
  • MCP兼容:适用于任何兼容MCP的客户端

先决条件

  • Node.js 18或更高版本
  • 已启用API访问的Namecheap帐户
  • 生产API密钥来自Namecheap(从https://ap.www.namecheap.com/settings/tools/apiaccess/)
  • 用于测试的沙盒API密钥(在注册https://www.sandbox.namecheap.com并启用API访问)

安装

来源

  1. 克隆存储库:
git clone https://github.com/yourusername/mcp-namecheap.git
cd mcp-namecheap
  1. 安装依赖项:
npm install
  1. 创建一个 .env 示例中的文件:
cp .env.example .env
  1. 编辑 .env 并添加您的Namecheap API凭据:
# Production API Key (from Namecheap account settings)
NAMECHEAP_API_KEY=your_production_api_key_here

# Sandbox API Key (from https://www.sandbox.namecheap.com)
NAMECHEAP_SANDBOX_API_KEY=your_sandbox_api_key_here

NAMECHEAP_API_USER=your_api_username_here
NAMECHEAP_CLIENT_IP=your_whitelisted_ip_here

# Set to 'true' to use sandbox API, 'false' for production
NAMECHEAP_USE_SANDBOX=true

重要:您必须在Namecheap API设置中将您的IP地址列入白名单。

  1. 构建项目:
npm run build

使用Docker

  1. 构建Docker镜像:
docker build -t mcp-namecheap .
  1. 使用环境变量运行:
docker run -i \
  -e NAMECHEAP_API_KEY=your_production_api_key \
  -e NAMECHEAP_SANDBOX_API_KEY=your_sandbox_api_key \
  -e NAMECHEAP_API_USER=your_username \
  -e NAMECHEAP_CLIENT_IP=your_ip \
  -e NAMECHEAP_USE_SANDBOX=true \
  mcp-namecheap

配置

MCP客户端配置

将服务器添加到MCP客户端配置中:

适用于克劳德桌面

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "namecheap": {
      "command": "node",
      "args": ["/path/to/mcp-namecheap/dist/index.js"],
      "env": {
        "NAMECHEAP_API_KEY": "your_production_api_key",
        "NAMECHEAP_SANDBOX_API_KEY": "your_sandbox_api_key",
        "NAMECHEAP_API_USER": "your_username",
        "NAMECHEAP_CLIENT_IP": "your_ip",
        "NAMECHEAP_USE_SANDBOX": "true"
      }
    }
  }
}

对于Smithery

服务器已配置为与Smithery安装一起工作。只需使用:

smithery install mcp-namecheap

可用工具

域管理工具

namecheap_domains_list

列出您Namecheap帐户中的所有域名。

参数:

  • listType (可选):“全部”、“到期”或“已到期”
  • searchTerm (可选):按搜索词筛选域
  • page (可选):分页页码
  • pageSize (可选):每页结果数
  • sortBy (可选):排序顺序-“名称”、“NAME_DESC”、“到期日期”、“EXPIREDATE_DESC”、“创建”、“已创建”

namecheap_domains_check

检查域是否可用于注册。 支持批量检查!

参数:

  • domainList (必填):要检查的域名数组(可以一次检查多个域名)

namecheap_domains_getinfo

获取特定域的详细信息。

参数:

  • domainName (必填):要获取信息的域名
  • hostName (可选):需要请求域信息的托管域名

namecheap_domains_getcontacts

获取域的联系人信息。

参数:

  • domainName (必填):用于获取联系人的域名

namecheap_domains_create

注册新域名。

参数:

  • domainName (必填):要注册的域名
  • years (必填):注册年数(1-10)
  • registrantFirstName (必填):注册人姓名
  • registrantLastName (必填):注册人姓氏
  • registrantAddress1 (必填):注册人地址
  • registrantCity (必填):注册城市
  • registrantStateProvince (必填):注册人所在州/省
  • registrantPostalCode (必填):注册人邮政编码
  • registrantCountry (必填):注册人国家代码(例如“美国”)
  • registrantPhone (必填):注册人电话号码
  • registrantEmailAddress (必填):注册人电子邮件地址
  • 管理员、技术人员和账单联系人的其他可选联系人字段
  • nameservers (可选):逗号分隔的名称服务器列表
  • addFreeWhoisguard (可选):“是”或“否”(默认为“是”)
  • wgEnabled (可选):启用WhoisGuard隐私保护“是”或“否”(默认:“是”)

namecheap_domains_gettldlist

获取所有支持的顶级域(TLD)的列表。

无需参数。

namecheap_domains_setcontacts

更新域的联系信息。

参数:

  • domainName (必填):要更新的域名
  • 注册人、管理员、技术人员和账单联系人的各种联系人字段(均为可选)

namecheap_domains_reactivate

重新激活过期的域。

参数:

  • domainName (必填):要重新激活的域名
  • isPremiumDomain (可选):这是否是高级域名(默认值:false)

namecheap_domains_renew

续订过期的域。

参数:

  • domainName (必填):要续订的域名
  • years (必填):续期年数(1-10)
  • isPremiumDomain (可选):这是否是高级域名(默认值:false)

namecheap_domains_getregistrarlock

获取域的注册器锁定状态。

参数:

  • domainName (必填):用于检查锁定状态的域名

namecheap_domains_setregistrarlock

设置域的注册器锁定状态。

参数:

  • domainName (必填):要锁定/解锁的域名
  • lockAction (必填):“锁定”或“解锁”

DNS管理工具

namecheap_dns_getlist

检索域的DNS主机记录。

参数:

  • sld (必填):二级域(例如,“example.com”中的“example”)
  • tld (必填):顶级域名(例如,“example.com”中的“com”)

namecheap_dns_setcustom

为域设置自定义名称服务器。

参数:

  • sld (必填):二级域名
  • tld (必填):顶级域名
  • nameservers (必填):名称服务器地址数组

namecheap_dns_sethosts

为域设置DNS主机记录。

参数:

  • sld (必填):二级域名
  • tld (必填):顶级域名
  • hosts (必填):DNS记录数组,包含:
    • hostname:子域或“@”表示根
    • recordType:“A”、“AAAA”、“CNAME”、“MX”、“TXT”、“NS”、“SRV”或“CAA”
    • address:DNS记录的值
    • mxPriority (可选):MX记录的优先级
    • ttl (可选):生存时间(秒)(默认值:1800)

发展

以开发模式运行

npm run dev

建筑

npm run build

MCP检验员测试

您可以使用MCP检查器测试服务器:

npx @modelcontextprotocol/inspector dist/index.js

安全说明

  • 永远不要承诺你的 .env 文件或公开API密钥
  • 始终对敏感数据使用环境变量
  • 仅在Namecheap中列出必要的IP地址
  • 使用沙箱API进行测试

故障排除

“错误10:未知命令”

请确保您的API访问已在Namecheap中启用,并且您正在使用正确的API端点。

“错误11:身份验证失败”

检查:

  • 您的API密钥是正确的
  • 您的用户名与API用户匹配
  • 您的IP已列入Namecheap的白名单

连接问题

确保服务器正在运行,并且您的MCP客户端已正确配置了正确的路径。

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。