Enables DNS-over-HTTPS queries using Cloudflare's DNS service as one of the primary remote DNS resolvers.
Offers containerized deployment via Docker, allowing the MCP server to run in isolated environments with preconfigured settings.
Distributes pre-built binaries through GitHub Releases for various platforms.
Provides DNS-over-HTTPS capabilities through Google's DNS service as a fallback resolver when Cloudflare queries fail.
Supports installation via Homebrew package manager for macOS and Linux systems.
Offers support for Linux environments, including DNS resolution using the operating system's configured resolvers.
Provides native support for macOS, allowing DNS lookups using the system's configured DNS servers.
Click on "Install 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., "@Domain Tools (WHOIS + DNS)look up WHOIS information for example.com"
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.
Network and domain utils MCP server mcp-netutils
This project is now called mcp-netutils. If you're upgrading, please update your references:
Docker images:
ghcr.io/patrickdappollonio/mcp-netutils:latestHomebrew:
patrickdappollonio/tap/mcp-netutilsConfiguration key: Use
"netutils"in your MCP server configuration
For more details about this change, see issue #52.
mcp-netutils is a Model Context Protocol (MCP) server providing comprehensive network and domain analysis capabilities for AI assistants. It enables AI models to perform DNS lookups, WHOIS queries, connectivity testing, TLS certificate analysis, HTTP endpoint monitoring, and hostname resolution.
For local DNS queries, it uses the system's configured DNS servers. For remote DNS queries, it uses Cloudflare DNS-over-HTTPS queries with a fallback to Google DNS-over-HTTPS. This is more than enough for most use cases.
For custom DNS-over-HTTPS servers, you can use the --remote-server-address flag. The server endpoint must implement the HTTP response format as defined by RFC 8484.
For custom WHOIS servers, you can use the --custom-whois-server flag. The server endpoint must implement the HTTP response format as defined by RFC 3912, although plain text responses are also supported.
Features
Local DNS Queries: Perform DNS lookups using the OS-configured DNS servers
Remote DNS-over-HTTPS: Perform secure DNS queries via Cloudflare and Google DNS-over-HTTPS services
WHOIS Lookups: Perform WHOIS queries to get domain registration information
Hostname Resolution: Convert hostnames to their corresponding IP addresses (IPv4, IPv6, or both)
Ping Operations: Test connectivity and measure response times to hosts using ICMP
HTTP Ping Operations: Test HTTP endpoints and measure detailed response times including DNS, connection, TLS, and TTFB timing
TLS Certificate Analysis: Check TLS certificate chains for validity, expiration, and detailed certificate information
Multiple Record Types: Support for A, AAAA, CNAME, MX, NS, PTR, SOA, SRV, and TXT record types
Fallback Mechanism: Automatically tries multiple DNS servers for reliable results
SSE Support: Run as an HTTP server with Server-Sent Events (SSE) for web-based integrations
Related MCP server: Google Toolbox
Installation
There are two ways to get this MCP server: you can use the Docker mode (which, if you have Docker installed, will automatically download and run the MCP server) or the binary options, both by getting one from the releases page or by installing it with Homebrew for macOS and Linux.
Editor Configuration
Add the following configuration to your editor's settings to use mcp-netutils via the binary option:
You can use mcp-netutils directly from your $PATH as shown above, or provide the full path to the binary (e.g., /path/to/mcp-netutils).
Alternatively, you can run mcp-netutils directly with Docker without installing the binary:
See "Available MCP Tools" for information on the tools exposed by mcp-netutils.
Homebrew (macOS and Linux)
Docker
The MCP server is available as a Docker image using stdio to communicate:
For SSE mode with Docker, expose the SSE port (default 3000):
Check the implementation above on how to configure the MCP server to run as a container in your editor or tool.
GitHub Releases
Download the pre-built binaries for your platform from the GitHub Releases page.
Available MCP Tools
There are 7 tools available:
local_dns_query: Perform DNS queries against the local DNS resolver as configured by the OSremote_dns_query: Perform DNS queries against a remote DNS-over-HTTPS server (Cloudflare/Google)whois_query: Perform WHOIS lookups to get domain registration informationresolve_hostname: Convert a hostname to its corresponding IP addresses (IPv4, IPv6, or both)ping: Perform ICMP ping operations to test connectivity and measure response times to hostshttp_ping: Perform HTTP ping operations to test HTTP endpoints and measure detailed response timestls_certificate_check: Check TLS certificate chain for a domain to analyze certificate validity, expiration, and chain structure
Running Modes
Standard (stdio) Mode
By default, mcp-netutils runs in stdio mode, which is suitable for integration with editors and other tools that communicate via standard input/output.
Server-Sent Events (SSE) Mode
Alternatively, you can run mcp-netutils as an HTTP server with SSE support for web-based integrations:
In SSE mode, the server will listen on the specified port (default: 3000) and provide the same MCP tools over HTTP using Server-Sent Events. This is useful for web applications or environments where stdio communication isn't practical.
Configuration Options
The following command-line flags are available to configure the MCP server:
General Options
--timeout=DURATION: Timeout for DNS queries (default: 5s)--remote-server-address=URL: Custom DNS-over-HTTPS server address--custom-whois-server=ADDRESS: Custom WHOIS server address
Ping Options
--ping-timeout=DURATION: Timeout for ping operations (default: 5s)--ping-count=NUMBER: Default number of ping packets to send (default: 4)
HTTP Ping Options
--http-ping-timeout=DURATION: Timeout for HTTP ping operations (default: 10s)--http-ping-count=NUMBER: Default number of HTTP ping requests to send (default: 1)
TLS Options
--tls-timeout=DURATION: Timeout for TLS certificate checks (default: 10s)
SSE Server Options
--sse: Enable SSE server mode--sse-port=PORT: Specify the port to listen on (default: 3000)
Tool Usage Documentation
Local DNS Query
Performs DNS queries using local OS-defined DNS servers.
Arguments:
domain(required): The domain name to query (e.g.,example.com)record_type(required): Type of DNS record to query - defaults toASupported types:
A,AAAA,CNAME,MX,NS,PTR,SOA,SRV,TXT
Example:
Remote DNS Query
Performs DNS queries using remote DNS-over-HTTPS servers (Cloudflare as primary, Google as fallback).
Arguments:
domain(required): The domain name to query (e.g.,example.com)record_type(required): Type of DNS record to query - defaults toASupported types:
A,AAAA,CNAME,MX,NS,PTR,SOA,SRV,TXT
Example:
WHOIS Query
Performs WHOIS lookups to get domain registration information.
Arguments:
domain(required): The domain name to query (e.g.,example.com)
Example:
Hostname Resolution
Converts a hostname to its corresponding IP addresses using the system resolver.
Arguments:
hostname(required): The hostname to resolve (e.g.,example.com)ip_version(optional): IP version to resolve - defaults toipv4Options:
ipv4,ipv6,both
Example:
Ping
Performs ICMP ping operations to test connectivity and measure response times to hosts.
Arguments:
target(required): The hostname or IP address to ping (e.g.,example.comor8.8.8.8)count(optional): Number of ping packets to send - defaults to4
Example:
HTTP Ping
Performs HTTP ping operations to test HTTP endpoints and measure detailed response times.
Arguments:
url(required): The URL to ping (e.g.,https://api.example.com/users)method(optional): HTTP method to use - defaults toGETSupported methods:
GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH
count(optional): Number of HTTP requests to send - defaults to1
Response Format: The tool returns detailed timing information in a one-liner format:
Timing Measurements:
dns: DNS resolution timeconn: TCP connection establishment timetls: TLS handshake time (only for HTTPS URLs)ttfb: Time to first byte (server response time)total: Total request time
Example:
TLS Certificate Check
Checks TLS certificate chain for a domain to analyze certificate validity, expiration, and chain structure.
Arguments:
domain(required): The domain name to check TLS certificate for (e.g.,example.com)port(optional): Port to connect to for TLS check - defaults to443include_chain(optional): Whether to include the full certificate chain in the response - defaults totruecheck_expiry(optional): Whether to check certificate expiration and provide warnings - defaults totrueserver_name(optional): Server name for SNI (Server Name Indication) - defaults to the domain name
Example: