返回市场
MCP域名工具

MCP域名工具

作者:patrickdappollonio8 星标更新:2025-11-24

项目介绍

网络和域名工具 MCP 服务器 mcp-domaintools

GitHub 下载量

<img src="https://i.imgur.com/cai3zrG.png" width="160" align="right" /> mcp-domaintools 是一个提供全面网络和域名分析能力的 Model Context Protocol (MCP) 服务器,适用于AI助手。它使AI模型能够执行DNS查询、WHOIS查询、连通性测试、TLS证书分析、HTTP端点监控以及主机名解析。

对于本地DNS查询,它使用系统配置的DNS服务器。对于远程DNS查询,它使用Cloudflare DNS-over-HTTPS查询,并在必要时回退到Google DNS-over-HTTPS。这足以满足大多数用例需求。

对于自定义DNS-over-HTTPS服务器,您可以使用 --remote-server-address 标志。服务器端点必须实现由RFC 8484定义的HTTP响应格式。

对于自定义WHOIS服务器,您可以使用 --custom-whois-server 标志。服务器端点必须实现由RFC 3912定义的HTTP响应格式,尽管纯文本响应也受支持。

功能

  • 本地DNS查询:使用操作系统配置的DNS服务器执行DNS查询
  • 远程DNS-over-HTTPS:通过Cloudflare和Google DNS-over-HTTPS服务执行安全DNS查询
  • WHOIS查询:执行WHOIS查询以获取域名注册信息
  • 主机名解析:将主机名转换为其对应的IP地址(IPv4、IPv6或两者)
  • Ping操作:使用ICMP测试连通性和测量主机的响应时间
  • HTTP Ping操作:测试HTTP端点并测量详细的响应时间,包括DNS、连接、TLS和TTFB时间
  • TLS证书分析:检查TLS证书链的有效性、过期时间和详细证书信息
  • 多种记录类型:支持A、AAAA、CNAME、MX、NS、PTR、SOA、SRV和TXT记录类型
  • 回退机制:自动尝试多个DNS服务器以获得可靠的结果
  • SSE支持:作为HTTP服务器运行,支持Server-Sent Events (SSE),用于基于Web的集成

安装

有三种方式可以获取此MCP服务器:您可以使用Docker模式(如果您已安装Docker,将自动下载并运行MCP服务器),或者二进制选项,都可以从发布页面获取,或者通过Homebrew安装适用于macOS和Linux的版本

编辑器配置

向编辑器设置添加以下配置,以便通过二进制选项使用mcp-domaintools

{
  "mcpServers": {
    "domaintools": {
      "command": "mcp-domaintools",
      "args": [
        // 注释掉并根据需要修改:
        // "--remote-server-address=https://your-custom-doh-server.com/dns-query",
        // "--custom-whois-server=whois.yourdomain.com",
        // "--timeout=5s",
        // "--ping-timeout=5s",
        // "--ping-count=4",
        // "--http-ping-timeout=10s",
        // "--http-ping-count=1",
        // "--tls-timeout=10s"
      ],
      "env": {}
    }
  }
}

您可以直接从您的$PATH中使用mcp-domaintools,如上所示,也可以提供二进制文件的完整路径(例如,/path/to/mcp-domaintools)。

或者,您可以直接使用Docker运行mcp-domaintools,而无需安装二进制文件:

{
  "mcpServers": {
    "domaintools": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/patrickdappollonio/mcp-domaintools:latest",
        // 如需添加自定义选项:
        // "--remote-server-address=https://your-custom-doh-server.com/dns-query",
        // "--custom-whois-server=whois.yourdomain.com",
        // "--timeout=5s",
        // "--ping-timeout=5s",
        // "--ping-count=4",
        // "--http-ping-timeout=10s",
        // "--http-ping-count=1",
        // "--tls-timeout=10s"
      ],
      "env": {}
    }
  }
}

您还可以通过npm使用MCP服务器:

{
  "mcpServers": {
    "domaintools": {
      "command": "npx",
      "args": [
        "-y",
        "@patrickdappollonio/mcp-domaintools",
        // 如需添加自定义选项:
        // "--remote-server-address=https://your-custom-doh-server.com/dns-query",
        // "--custom-whois-server=whois.yourdomain.com",
        // "--timeout=5s",
        // "--ping-timeout=5s",
        // "--ping-count=4",
        // "--http-ping-timeout=10s",
        // "--http-ping-count=1",
        // "--tls-timeout=10s"
      ],
      "env": {}
    }
  }
}

参见"可用的MCP工具"了解mcp-domaintools提供的工具信息。

Homebrew (macOS 和 Linux)

brew install patrickdappollonio/tap/mcp-domaintools

Docker

MCP服务器可以通过stdio进行通信的Docker镜像获取:

docker pull ghcr.io/patrickdappollonio/mcp-domaintools:latest
docker run --rm ghcr.io/patrickdappollonio/mcp-domaintools:latest

对于Docker中的SSE模式,暴露SSE端口(默认3000):

docker run --rm -p 3000:3000 ghcr.io/patrickdappollonio/mcp-domaintools:latest --sse --sse-port 3000

查看上述实现了解如何配置MCP服务器以在编辑器或工具中作为容器运行。

npm

MCP服务器也可通过npm获取:

npm install @patrickdappollonio/mcp-domaintools@latest

或者使用npx

npx -y @patrickdappollonio/mcp-domaintools@latest

这将以stdio模式运行MCP服务器(确保运行npx的是AI工具)!

Cursor

您可以在Cursor中一键安装(注意这将使用Docker版本的MCP服务器,因为它不需要本地二进制安装):

安装MCP服务器

GitHub 发布

GitHub 发布页面下载适用于您平台的预构建二进制文件。

可用的MCP工具

7个工具可用:

  • local_dns_query:对本地DNS解析器执行DNS查询,该解析器由操作系统配置
  • remote_dns_query:对远程DNS-over-HTTPS服务器执行DNS查询(Cloudflare/Google)
  • whois_query:执行WHOIS查询以获取域名注册信息
  • resolve_hostname:将主机名转换为其对应的IP地址(IPv4、IPv6或两者)
  • ping:执行ICMP ping操作以测试连通性和测量主机的响应时间
  • http_ping:执行HTTP ping操作以测试HTTP端点并测量详细的响应时间
  • tls_certificate_check:检查域名的TLS证书链以分析证书的有效性、过期时间和链结构

运行模式

标准(stdio)模式

默认情况下,mcp-domaintools 在 stdio 模式下运行,适合与通过标准输入/输出通信的编辑器和其他工具集成。

mcp-domaintools

Server-Sent Events (SSE) 模式

或者,您可以将mcp-domaintools作为支持SSE的HTTP服务器运行,用于基于Web的集成:

mcp-domaintools --sse --sse-port=3000

在SSE模式下,服务器将在指定端口(默认:3000)监听,并通过HTTP使用Server-Sent Events提供相同的MCP工具。这对于Web应用程序或无法使用stdio通信的环境非常有用。

配置选项

以下命令行标志可用于配置MCP服务器:

通用选项

  • --timeout=DURATION:DNS查询超时(默认:5秒)
  • --remote-server-address=URL:自定义DNS-over-HTTPS服务器地址
  • --custom-whois-server=ADDRESS:自定义WHOIS服务器地址

Ping选项

  • --ping-timeout=DURATION:ping操作超时(默认:5秒)
  • --ping-count=NUMBER:默认发送的ping数据包数量(默认:4)

HTTP Ping选项

  • --http-ping-timeout=DURATION:HTTP ping操作超时(默认:10秒)
  • --http-ping-count=NUMBER:默认发送的HTTP ping请求数量(默认:1)

TLS选项

  • --tls-timeout=DURATION:TLS证书检查超时(默认:10秒)

SSE服务器选项

  • --sse:启用SSE服务器模式
  • --sse-port=PORT:指定监听端口(默认:3000)

工具使用文档

本地DNS查询

使用本地操作系统定义的DNS服务器执行DNS查询。

参数:

  • domain(必需):要查询的域名(例如,example.com
  • record_type(必需):要查询的DNS记录类型,默认为A
    • 支持的类型:AAAAACNAMEMXNSPTRSOASRVTXT

示例:

# 查询example.com的A记录
{"domain": "example.com", "record_type": "A"}

# 查询example.com的MX记录
{"domain": "example.com", "record_type": "MX"}

远程DNS查询

使用远程DNS-over-HTTPS服务器执行DNS查询(Cloudflare为主,Google为备用)。

参数:

  • domain(必需):要查询的域名(例如,example.com
  • record_type(必需):要查询的DNS记录类型,默认为A
    • 支持的类型:AAAAACNAMEMXNSPTRSOASRVTXT

示例:

# 使用远程DNS-over-HTTPS查询A记录
{"domain": "example.com", "record_type": "A"}

WHOIS查询

执行WHOIS查询以获取域名注册信息。

参数:

  • domain(必需):要查询的域名(例如,example.com

示例:

# 获取example.com的WHOIS信息
{"domain": "example.com"}

主机名解析

使用系统解析器将主机名转换为其对应的IP地址。

参数:

  • hostname(必需):要解析的主机名(例如,example.com
  • ip_version(可选):要解析的IP版本,默认为ipv4
    • 选项:ipv4ipv6both

示例:

# 解析为IPv4地址
{"hostname": "example.com", "ip_version": "ipv4"}

# 解析为IPv4和IPv6地址
{"hostname": "example.com", "ip_version": "both"}

Ping

执行ICMP ping操作以测试连通性和测量主机的响应时间。

参数:

  • target(必需):要ping的目标主机名或IP地址(例如,example.com8.8.8.8
  • count(可选):要发送的ping数据包数量,默认为4

示例:

# 对目标主机ping 4次(默认)
{"target": "example.com"}

# 对目标主机ping 10次
{"target": "8.8.8.8", "count": 10}

HTTP Ping

执行HTTP ping操作以测试HTTP端点并测量详细的响应时间。

参数:

  • url(必需):要ping的URL(例如,https://api.example.com/users
  • method(可选):要使用的HTTP方法,默认为GET
    • 支持的方法:GETPOSTPUTDELETEHEADOPTIONSPATCH
  • count(可选):要发送的HTTP请求数量,默认为1

响应格式: 工具返回详细的计时信息,格式如下:

GET https://api.example.com/users 200 OK | dns=42ms conn=156ms tls=298ms ttfb=567ms total=623ms

计时测量:

  • dns:DNS解析时间
  • conn:TCP连接建立时间
  • tls:TLS握手时间(仅针对HTTPS URL)
  • ttfb:首字节时间(服务器响应时间)
  • total:总请求时间

示例:

# 单个GET请求
{"url": "https://httpbin.org/get"}

# 多个POST请求
{"url": "https://httpbin.org/post", "method": "POST", "count": 3}

# 测试API端点
{"url": "https://api.github.com/users/octocat"}

TLS证书检查

检查域名的TLS证书链以分析证书的有效性、过期时间和链结构。

参数:

  • domain(必需):要检查TLS证书的域名(例如,example.com
  • port(可选):用于TLS检查的端口,默认为443
  • include_chain(可选):是否在响应中包含完整的证书链,默认为true
  • check_expiry(可选):是否检查证书过期并提供警告,默认为true
  • server_name(可选):用于SNI(服务器名称指示)的服务器名称,默认为域名

示例:

# 检查example.com的TLS证书
{"domain": "example.com"}

# 检查example.com在自定义端口上的TLS证书
{"domain": "example.com", "port": 8443}

# 不包含证书链详情的检查
{"domain": "example.com", "include_chain": false}

示例

基本使用示例

# 以stdio模式启动MCP服务器
mcp-domaintools

# 启动时自定义DNS超时
mcp-domaintools --timeout=10s

# 启动时自定义HTTP ping设置
mcp-domaintools --http-ping-timeout=15s --http-ping-count=3

# 在端口8080上启动SSE模式
mcp-domaintools --sse --sse-port=8080

高级配置示例

# 使用自定义DNS-over-HTTPS服务器
mcp-domaintools --remote-server-address=https://dns.quad9.net/dns-query

# 使用自定义WHOIS服务器
mcp-domaintools --custom-whois-server=whois.custom.com

# 结合多个选项
mcp-domaintools \
  --timeout=10s \
  --ping-timeout=3s \
  --ping-count=3 \
  --http-ping-timeout=15s \
  --http-ping-count=2 \
  --tls-timeout=30s