Keel
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 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: ProbeOps MCP Server
Tools
Tool | Description | Key Parameters |
| Server version and status check | -- |
| TCP connect ping (port 80) with latency stats |
|
| Trace network route to a host |
|
| Resolve DNS records (A, AAAA, MX, CNAME, TXT, NS) |
|
| Reverse DNS lookup for an IP address |
|
| Check if a single TCP port is open |
|
| Scan common TCP ports (rate-limited, max 100) |
|
| Inspect SSL/TLS certificate details and expiry |
|
| WHOIS domain registration lookup |
|
| HTTP request with status, timing, headers, size |
|
| Discover live hosts on a local subnet (RFC 1918 only) |
|
| Get the machine's public IP address | -- |
| Measure download speed (Mbps) and latency | -- |
| Check DNS propagation across public resolvers |
|
Installation
From PyPI:
pip install sounding-mcpOr isolated with pipx:
pipx install sounding-mcpUsage
Run the server directly (stdio transport):
soundingClaude Code
Register as a local MCP server:
claude mcp add sounding -- soundingClaude 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/ -qLicense
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/seayniclabs/sounding'
If you have feedback or need assistance with the MCP directory API, please join our Discord server