Skip to main content

Network diagnostics MCP server — ping, DNS, traceroute, SSL, port scanning, and more.

Project description

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.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sounding_mcp-0.2.0.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sounding_mcp-0.2.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file sounding_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: sounding_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for sounding_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 27463e99e77cb14488853f8e22b58b72b9a51f7af8288f907913d7f29f1cf2d8
MD5 8d9b0673cbbb1f9f979163167e583daa
BLAKE2b-256 55f3b73079ad9392b3d8298ff58bf573212f690682a59b2171be63cab0d1765e

See more details on using hashes here.

File details

Details for the file sounding_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: sounding_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for sounding_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 08ca9c482b60d31cfc7da6e2fde7d8553e87241621a2d4a2fe3578365d2938ea
MD5 f6a56a44004a9e4a5d367a1e184ac584
BLAKE2b-256 ce0b7d00300b7cba57df42b79ce50b6b304cda85db627c126a36eba186c83650

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page