Skip to main content
Glama
Keel

Keel

by seayniclabs

Sounding

Network Diagnostics MCP Server

License: MIT

Probing what lies beneath the surface -- network diagnostics for AI tools.


What It Does

Sounding is a Model Context Protocol (MCP) server that gives AI assistants 14 network diagnostic tools. It handles the things you'd normally reach for ping, dig, nmap, or openssl to do -- but exposed as structured, validated MCP tool calls.

Related MCP server: netops-mcp

Tools

Tool

Description

Key Parameters

health

Server version and status check

--

ping

TCP connect ping (port 80) with latency stats

host, count (1--100), timeout

traceroute

Trace network route to a host

host, max_hops (1--64)

dns_lookup

Resolve DNS records (A, AAAA, MX, CNAME, TXT, NS)

domain, record_type, nameserver

reverse_dns

Reverse DNS lookup for an IP address

ip

port_check

Check if a single TCP port is open

host, port, timeout

port_scan

Scan common TCP ports (rate-limited, max 100)

host, ports

check_ssl_cert

Inspect SSL/TLS certificate details and expiry

host, port

whois_lookup

WHOIS domain registration lookup

domain

http_check

HTTP request with status, timing, headers, size

url

subnet_scan

Discover live hosts on a local subnet (RFC 1918 only)

subnet (CIDR, max /20)

get_public_ip

Get the machine's public IP address

--

speed_test

Measure download speed (Mbps) and latency

--

dns_propagation

Check DNS propagation across public resolvers

domain, record_type

Installation

From PyPI:

pip install sounding-mcp

Or isolated with pipx:

pipx install sounding-mcp

Usage

Run the server directly (stdio transport):

sounding

Claude Code

Register as a local MCP server:

claude mcp add sounding -- sounding

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "sounding": {
      "command": "sounding",
      "args": []
    }
  }
}

If installed in a virtual environment, use the full path to the binary:

{
  "mcpServers": {
    "sounding": {
      "command": "/path/to/.venv/bin/sounding",
      "args": []
    }
  }
}

Security

Sounding is designed to be safe for AI-driven use:

  • SSRF protection -- http_check resolves hostnames and blocks requests to internal, private, loopback, and link-local IP addresses (including IPv4-mapped IPv6). Cloud metadata endpoints (169.254.x.x) are blocked.

  • Input validation -- All inputs pass through validators that reject shell metacharacters, malformed hostnames, and invalid ports before reaching any network call or subprocess.

  • Rate limiting -- port_scan enforces a minimum 1-second interval between scans to prevent abuse.

  • Subnet restriction -- subnet_scan only allows RFC 1918 private subnets and caps at /20 (4096 addresses) with concurrency limiting.

  • No shell injection -- Subprocess calls (traceroute, whois) use exec-style invocation, never shell interpolation.

Development

git clone https://github.com/seayniclabs/sounding.git
cd sounding
python -m venv .venv
source .venv/bin/activate
pip install -e ".[test]"
python -m pytest tests/ -q

License

MIT

Available Tools

14 tools
check_ssl_certA

Inspect the SSL/TLS certificate on a host.

Returns issuer, subject, expiry, SANs, and days until expiry.

Inputs: host (required), port.

dns_lookupC

Resolve DNS records for a domain using dnspython.

Supported record types: A, AAAA, MX, CNAME, TXT, NS.

Inputs: domain (required), record_type, nameserver.

dns_propagationA

Check DNS propagation across multiple public resolvers.

Queries Google (8.8.8.8), Cloudflare (1.1.1.1), OpenDNS (208.67.222.222), Quad9 (9.9.9.9), and the system default resolver in parallel, then highlights any inconsistencies between them.

Supported record types: A, AAAA, CNAME, MX, TXT.

Inputs: domain (required), record_type.

get_public_ipB

Get the public IP address of this machine.

Inputs: no named parameters.

healthA

Return server version and status.

Inputs: no named parameters.

http_checkB

Perform an HTTP request and return timing breakdown.

Returns status code, timing (DNS, connect, TLS, TTFB, total), response size, and headers.

Inputs: url (required).

pingA

Ping a host using TCP connect (port 80) as a non-root ICMP alternative.

Returns min/avg/max/jitter latency in milliseconds.

Inputs: host (required), count, timeout.

port_checkC

Check whether a single TCP port is open on a host.

Inputs: host (required), port (required), timeout.

port_scanC

Scan common TCP ports on a host.

Safety limits: max 100 ports, rate-limited to one scan per second.

Inputs: host (required), ports.

reverse_dnsC

Perform a reverse DNS lookup for an IP address.

Inputs: ip (required).

speed_testA

Measure network download speed and latency.

Downloads a 10 MB test payload from Cloudflare and measures throughput. Also measures latency with multiple TCP connect pings. Returns download speed in Mbps and latency stats in milliseconds.

Inputs: no named parameters.

subnet_scanA

Discover live hosts on a local subnet by probing common ports.

Only allows RFC 1918 private subnets for safety. Probes TCP ports 22, 80, and 443 on each host.

Inputs: subnet (required).

tracerouteC

Trace the network route to a host.

Wraps the system traceroute command and parses output.

Inputs: host (required), max_hops.

whois_lookupB

WHOIS lookup for a domain using the system whois command.

Inputs: domain (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 14 tools

    Disambiguation5/5

    All 14 tools have clearly distinct purposes, from SSL certificate checks to DNS lookups, WHOIS, and network diagnostics. There is no overlap or ambiguity between tool descriptions.

    Naming Consistency4/5

    Most tools follow a verb_noun snake_case pattern (e.g., dns_lookup, port_scan), though 'ping', 'traceroute', and 'health' break the pattern. Overall consistent and readable.

    Tool Count5/5

    14 tools is well-scoped for a network diagnostics server, covering essential functionalities without being excessive or sparse.

    Completeness4/5

    The tool set covers a wide range of network diagnostic tasks (DNS, SSL, HTTP, ports, traceroute, WHOIS, speed test, subnet scan). Minor gaps (e.g., HTTP method selection, ICMP ping) exist but do not hinder core workflows.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    Appeared in Searches