measure_download_speedLABSCO SUMMARY
It tells you which edge served the test, which is usually the real question.
A bandwidth figure on its own does not explain a slow connection; knowing the bytes came from a POP in another city, on a cache MISS, does. The measurement follows the SpeedOf.Me approach — file sizes double until one sample runs long enough to be a fair reading, and that sample is the number reported rather than an average over short ones.
What it is
A Python server that runs real network measurements and reports both the numbers and the CDN server that served the test — provider, POP code, physical location and cache status.
What you get
measure_download_speedandmeasure_upload_speedin Mbps, each with the server location that handled itmeasure_latencyfrom multiple samples, reporting the minimum, andmeasure_jitterfrom the variation between themget_server_info— CDN details for any URL without running a speed test at allrun_complete_test— every metric plus server metadata in a single call- CDN identification for Fastly, Cloudflare and Amazon CloudFront, with the POP code mapped to a physical location from a table of 50+ worldwide, cache HIT or MISS, and the
x-served-by,viaandx-cacheheaders - Incremental testing that starts at 128KB and doubles up to 128MB, stopping once a sample runs at least the sustain time — configurable from 1 to 8 seconds, default 8
Requirements
Python 3.12 or higher, for the async support. pip install mcp-internet-speed-test then run mcp-internet-speed-test, or uvx mcp-internet-speed-test without installing anything. A Dockerfile is included if you would rather containerise it.
Setup effort
One command — pip install mcp-internet-speed-test
USE CASES
Working out whether it's your line or the site
Run the full test and read which CDN and POP answered, alongside the throughput numbers.
Diagnosing a call that keeps breaking up
Measure jitter from multiple latency samples rather than judging by a single ping.
Checking a specific URL's edge without a speed test
Ask for the server info alone — provider, POP, location and cache status — with no bandwidth spent.
Comparing upload against download honestly
Both directions use the same incremental method, so the two numbers are measured the same way.
6 tools
Listed in project docs. Your client may show a different list.
measure_upload_speedmeasure_latencymeasure_jitterget_server_inforun_complete_testBEFORE YOU INSTALL
What to know first
Tools you get
6 tools named in the project's documentation.
Requires
- mcp-internet-speed-test on PATH
- Python 3.12 or later
Where it runs
Both documented setups run the server on your machine.
INSTALLATION
Connect your client
Server setup
pip install mcp-internet-speed-testMCP Clients
Claude Desktop — pip
{
"mcpServers": {
"mcp-internet-speed-test": {
"command": "mcp-internet-speed-test"
}
}
}Claude Desktop — uvx
{
"mcpServers": {
"mcp-internet-speed-test": {
"command": "uvx",
"args": [
"mcp-internet-speed-test"
]
}
}
}