Network diagnostics MCP server — ping, DNS, traceroute, SSL, port scanning, and more.
Project description
Sounding
Network Diagnostics MCP Server
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 12 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 | -- |
Installation
From PyPI:
pip install sounding
Or isolated with pipx:
pipx install sounding
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_checkresolves 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_scanenforces a minimum 1-second interval between scans to prevent abuse. - Subnet restriction --
subnet_scanonly allows RFC 1918 private subnets and caps at /20 (4096 addresses) with concurrency limiting. - No shell injection -- Subprocess calls (
traceroute,whois) useexec-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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sounding_mcp-0.1.0.tar.gz.
File metadata
- Download URL: sounding_mcp-0.1.0.tar.gz
- Upload date:
- Size: 17.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dafe504ab901820981571962453a7e2c791890aa6789ddbe9005cab74473f22e
|
|
| MD5 |
31b864bde99cf8d468974e3d3ee4ea80
|
|
| BLAKE2b-256 |
35edb3e2527c3001eababfdc5061fc4c839836057d085105a04d7df30b199f79
|
File details
Details for the file sounding_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sounding_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd7c778150f1572293f8981799e9f1d8ee2394ebccd96f75e6365099fdfba7ab
|
|
| MD5 |
590540704c9274a21098402f6f16a5ab
|
|
| BLAKE2b-256 |
ff228c92cd24f41d2ecc9124839f075dd5c83324815590daf56fd42cab2d9339
|