mcpField
D
DNS and WHOIS query MCP server

DNS and WHOIS query MCP server

本地服务
github.com/patrickdappollonio开发工具1033 周前更新

关于 DNS and WHOIS query MCP server

mcp-netutils 是供 AI 助手使用的 MCP 服务,用于检查域名和网络端点,涵盖 DNS、WHOIS、连通性、HTTP 响应时间及 TLS 证书分析。

主要功能

  1. 01本地和远程 DNS 查询
  2. 02WHOIS 域名查询
  3. 03主机名解析为 IP
  4. 04ICMP 与 HTTP 连通性测试
  5. 05TLS 证书链分析

适用场景

  1. 01检查域名的 DNS 记录
  2. 02查询域名注册信息
  3. 03测量端点响应时间
  4. 04检查 TLS 证书有效性

MCP 相关

向 MCP 客户端提供七种网络与域名分析工具。支持 stdio,也可通过 HTTP SSE 提供相同工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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

Github 下载量

重要

本项目现名为 mcp-netutils。如果你正在升级,请更新相关引用:

  • Docker 镜像:ghcr.io/patrickdappollonio/mcp-netutils:latest
  • Homebrew:patrickdappollonio/tap/mcp-netutils
  • 配置键:在 MCP 服务配置中使用 "netutils"

有关此更改的更多详情,请参阅 issue #52。

README 配图 mcp-netutils 是一个 模型上下文协议(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 服务运行,并通过服务器发送事件(SSE)支持 Web 集成

安装

获取此 MCP 服务有两种方式:可以使用 Docker 模式(如果已安装 Docker,它会自动下载并运行 MCP 服务),也可以使用二进制文件;二进制文件可从发布页面获取,或通过 Homebrew 为 macOS 和 Linux 安装。

编辑器配置

将以下配置添加到编辑器设置中,即可通过二进制文件使用 mcp-netutils:

{
  "mcpServers": {
    "netutils": {
      "command": "mcp-netutils",
      "args": [
        // Uncomment and modify as needed:
        // "--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-netutils,也可以提供二进制文件的完整路径(例如 /path/to/mcp-netutils)。

或者,无需安装二进制文件,直接通过 Docker 运行 mcp-netutils:

{
  "mcpServers": {
    "netutils": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/patrickdappollonio/mcp-netutils:latest",
        // Add custom options if needed:
        // "--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-netutils 提供的工具的信息,请参阅“可用的 MCP 工具”。

Homebrew(macOS 和 Linux)
brew install patrickdappollonio/tap/mcp-netutils
Docker

MCP 服务以 Docker 镜像的形式提供,并使用 stdio 进行通信:

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

使用 Docker 运行 SSE 模式时,请映射 SSE 端口(默认值为 3000):

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

请参阅上述实现,了解如何配置 MCP 服务,使其在编辑器或工具中以容器形式运行。

GitHub Releases

从 GitHub Releases 页面下载适用于你平台的预构建二进制文件。

可用的 MCP 工具

共有 7 个可用工具:

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

运行模式

标准(stdio)模式

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

mcp-netutils
服务器发送事件(SSE)模式

此外,你也可以将 mcp-netutils 作为支持 SSE 的 HTTP 服务运行,以便用于基于 Web 的集成:

mcp-netutils --sse --sse-port=3000

在 SSE 模式下,服务将在指定端口(默认值:3000)上监听,并通过服务器发送事件(Server-Sent Events)在 HTTP 上提供相同的 MCP 工具。这适用于 Web 应用,或不便使用 stdio 通信的环境。

配置选项

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

常规选项
  • --timeout=DURATION:DNS 查询超时时间(默认值:5s)
  • --remote-server-address=URL:自定义 DNS-over-HTTPS 服务地址
  • --custom-whois-server=ADDRESS:自定义 WHOIS 服务地址
Ping 选项
  • --ping-timeout=DURATION:Ping 操作超时时间(默认值:5s)
  • --ping-count=NUMBER:默认发送的 ping 数据包数量(默认值:4)
HTTP Ping 选项
  • --http-ping-timeout=DURATION:HTTP ping 操作超时时间(默认值:10s)
  • --http-ping-count=NUMBER:默认发送的 HTTP ping 请求数量(默认值:1)
TLS 选项
  • --tls-timeout=DURATION:TLS 证书检查超时时间(默认值:10s)
SSE 服务选项
  • --sse:启用 SSE 服务模式
  • --sse-port=PORT:指定监听端口(默认值:3000)

工具使用文档

本地 DNS 查询

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

参数:

  • domain(必填):要查询的域名(例如,example.com)
  • record_type(必填):要查询的 DNS 记录类型,默认为 A
    • 支持的类型:A、AAAA、CNAME、MX、NS、PTR、SOA、SRV、TXT

示例:

# Query A record for example.com
{"domain": "example.com", "record_type": "A"}

# Query MX records for a domain
{"domain": "example.com", "record_type": "MX"}
远程 DNS 查询

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

参数:

  • domain(必填):要查询的域名(例如,example.com)
  • record_type(必填):要查询的 DNS 记录类型,默认为 A
    • 支持的类型:A、AAAA、CNAME、MX、NS、PTR、SOA、SRV、TXT

示例:

# Query A record using remote DNS-over-HTTPS
{"domain": "example.com", "record_type": "A"}
WHOIS 查询

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

参数:

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

示例:

# Get WHOIS information for a domain
{"domain": "example.com"}
主机名解析

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

参数:

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

示例:

# Resolve to IPv4 addresses only
{"hostname": "example.com", "ip_version": "ipv4"}

# Resolve to both IPv4 and IPv6
{"hostname": "example.com", "ip_version": "both"}
Ping

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

参数:

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

示例:

# Ping a host 4 times (default)
{"target": "example.com"}

# Ping a host 10 times
{"target": "8.8.8.8", "count": 10}
HTTP Ping

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

参数:

  • url(必需):要 ping 的 URL(例如,https://api.example.com/users)
  • method(可选):要使用的 HTTP 方法,默认为 GET
    • 支持的方法:GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH
  • 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:请求总耗时

示例:

# Single GET request
{"url": "https://httpbin.org/get"}

# Multiple POST requests
{"url": "https://httpbin.org/post", "method": "POST", "count": 3}

# Test API endpoint
{"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(服务器名称指示)的服务器名称,默认为该域名

示例:

# Check TLS certificate for domain
{"domain": "example.com"}

# Check TLS certificate on custom port
{"domain": "example.com", "port": 8443}

# Check without certificate chain details
{"domain": "example.com", "include_chain": false}

示例

基本用法示例
# Start the MCP server in stdio mode
mcp-netutils

# Start with custom DNS timeout
mcp-netutils --timeout=10s

# Start with custom HTTP ping settings
mcp-netutils --http-ping-timeout=15s --http-ping-count=3

# Start in SSE mode on port 8080
mcp-netutils --sse --sse-port=8080
高级配置示例
# Use custom DNS-over-HTTPS server
mcp-netutils --remote-server-address=https://dns.quad9.net/dns-query

# Use custom WHOIS server
mcp-netutils --custom-whois-server=whois.custom.com

# Combine multiple options
mcp-netutils \
  --timeout=10s \
  --ping-timeout=3s \
  --ping-count=3 \
  --http-ping-timeout=15s \
  --http-ping-count=2 \
  --tls-timeout=30s

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。