网络和域实用程序MCP服务器 mcp-netutils
](https://github.com/patrickdappollonio/mcp-netutils/releases)
\[!重要\] 这个项目现在被称为mcp-netutils。如果您要升级,请更新您的参考资料: - Docker镜像:ghcr.io/patrickdappollonio/mcp-netutils:latest- 家酿:patrickdappollonio/tap/mcp-netutils- 配置键:使用"netutils"在MCP服务器配置中 有关此更改的更多详细信息,请参阅 问题#52.
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 旗帜。服务器终结点必须实现由定义的HTTP响应格式 RFC 8484.
对于自定义WHOIS服务器,您可以使用 --custom-whois-server 旗帜。服务器终结点必须实现由定义的HTTP响应格式 RFC 3912,尽管也支持纯文本响应。
特性
- 本地DNS查询:使用操作系统配置的DNS服务器执行DNS查找
- 基于HTTPS的远程DNS:通过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支持:使用服务器发送事件(SSE)作为HTTP服务器运行,以进行基于web的集成
安装
编辑器配置
将以下配置添加到编辑器的设置中以供使用 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": {}
}
}
}您可以使用 mcp-netutils 直接从你的 $PATH 或者提供二进制文件的完整路径(例如。, /path/to/mcp-netutils).
或者,您可以跑步 mcp-netutils 直接使用Docker,无需安装二进制文件:
{
"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工具” 有关以下工具的信息 mcp-netutils.
Homebrew(macOS和Linux)
brew install patrickdappollonio/tap/mcp-netutils码头工人
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发布
从下载适用于您平台的预构建二进制文件 .
可用的MCP工具
有 7工具 可用:
local_dns_query:根据操作系统配置,对本地DNS解析器执行DNS查询remote_dns_query:通过HTTPS服务器(Cloudflare/Google)对远程DNS执行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),并使用服务器发送事件通过HTTP提供相同的MCP工具。这对于不能进行stdio通信的web应用程序或环境非常有用。
配置选项
以下命令行标志可用于配置MCP服务器:
常规选项
--timeout=DURATION:DNS查询超时(默认值:5秒)--remote-server-address=URL:自定义HTTPS DNS服务器地址--custom-whois-server=ADDRESS:自定义WHOIS服务器地址
Ping选项
--ping-timeout=DURATION:ping操作超时(默认值:5s)--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
- 支持的类型: 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查询
使用HTTPS服务器上的远程DNS执行DNS查询(Cloudflare为主,Google为后备)。
论据:
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"}拼
执行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检查的连接端口-默认为443include_chain(可选):是否在响应中包含完整的证书链-默认为truecheck_expiry(可选):是否检查证书过期并提供警告-默认为trueserver_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
