SpeedOf.Me Speed Test MCP

Official SpeedOf.Me server for AI agents - accurate speed tests via 129 global edge servers with analytics dashboard.

@speedofme/mcp

SpeedOf.Me MCP Server - Run accurate internet speed tests from AI agents. Also works as CLI and SDK.

Quick Start

Run speed test (no install)

SOM_API_SECRET=SOM_SECRET_xxx npx -y @speedofme/mcp --progress

JSON output (for scripts)

SOM_API_SECRET=SOM_SECRET_xxx npx -y @speedofme/mcp --json

Or install globally

npm i -g @speedofme/mcp SOM_API_SECRET=SOM_SECRET_xxx speedofme --progress

Windows

set SOM_API_SECRET=SOM_SECRET_xxx && npx -y @speedofme/mcp --progress

Get your free API secret: Register here

Features

  • MCP Server: Model Context Protocol server for AI agent integration (Claude, etc.)
  • CLI: Command-line tool for quick speed tests
  • SDK: Promise-based API for running speed tests programmatically
  • Local History: Stores test results in ~/.speedofme/history.json
  • Analytics Dashboard: View detailed usage reports with device and geo breakdowns at speedof.me/api/portal

Requirements

  • Node.js 18+
  • SpeedOf.Me API account with API Secret

Getting Your API Secret

Log in → API Settings → Generate Secret

Don't have an account? Register here

MCP Server Setup

Add to your MCP client config (Claude Code, Claude Desktop, Cursor, Windsurf, etc.):

{ "mcpServers": { "speedofme": { "type": "stdio", "command": "npx", "args": ["-y", "@speedofme/mcp"], "env": { "SOM_API_SECRET": "SOM_SECRET_xxx" } } } }

Restart your MCP client, then ask the AI to run a speed test!

Available MCP Tools

ToolDescription
run_speed_testRun speed test with optional params
get_test_historyGet historical test results

run_speed_test Parameters

ParameterTypeDefaultDescription
testsstring[]allTests to run: download, upload, latency
sustainTimenumber6Seconds per sample (1-8)

Example Response

{ "testId": "abc123", "download": 150.5, "upload": 45.2, "latency": 12, "jitter": 2.3, "testServer": "San Jose", "timestamp": "2025-01-15T10:30:00Z" }

Available MCP Resources

ResourceDescription
speedofme://historyRecent test results (JSON)
speedofme://configSDK configuration and status

CLI Usage

Run speed tests from the command line.

  • npx: npx -y @speedofme/mcp [options]
  • Global install: speedofme [options]

Set your API secret

export SOM_API_SECRET=SOM_SECRET_xxx

Run speed test with progress

npx -y @speedofme/mcp --progress

Run specific tests only

npx -y @speedofme/mcp --tests download,latency

Adjust sustain time (1-8 seconds, default: 6)

npx -y @speedofme/mcp --sustain 4

View test history

npx -y @speedofme/mcp history npx -y @speedofme/mcp history --limit 5

Clear history

npx -y @speedofme/mcp history --clear

Help and version

npx -y @speedofme/mcp --help npx -y @speedofme/mcp --version

CLI Options

OptionDescription
--secret API secret (or set SOM_API_SECRET env var)
-p, --progressShow progress during test
-j, --jsonOutput results as JSON
--tests Tests to run: download,upload,latency (default: all)
--sustain Sustain time per sample 1-8 seconds (default: 6). Maps to sustainTime in SDK/MCP.
-h, --helpShow help
-v, --versionShow version

History Subcommand Options

OptionDescription
--limit Number of results to show (default: 10)
--clearClear all history

SDK Usage

const { SpeedTest } = require('@speedofme/mcp');

const test = new SpeedTest({ apiSecret: process.env.SOM_API_SECRET, sustainTime: 6 // optional, 1-8 seconds });

// Progress callback (optional) test.onProgress = (progress) => { console.log(progress); };

// Run full test const result = await test.run(); console.log(result); // { // testId: 'uuid', // download: 150.5, // Mbps // upload: 45.2, // Mbps // latency: 12, // ms // jitter: 2.3, // ms // testServer: 'San Jose', // timestamp: '2025-01-15T10:30:00Z' // }

// Run specific tests only const downloadOnly = await test.run({ tests: ['download'] });

// Run latency-only test (fastest) const latencyOnly = await test.run({ tests: ['latency'] });

Installation (Optional)

Install globally for frequent use:

npm install -g @speedofme/mcp

Or add to your project:

npm install @speedofme/mcp

History Management

const { getHistory, clearHistory } = require('@speedofme/mcp');

// Get recent results const history = getHistory({ limit: 10 });

// Get results from last 7 days const recent = getHistory({ since: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString() });

// Clear all history clearHistory();

History is stored in ~/.speedofme/history.json with a 1MB cap (~2,600 results).

Configuration Options

OptionTypeDefaultDescription
apiSecretstring(required)API secret from portal
sustainTimenumber6Seconds to sustain each sample (1-8). Lower = faster, higher = more accurate
supportGbTestbooleanfalseEnable gigabit test mode
maxTestPassnumber0Max download passes (0 = no limit)
saveHistorybooleantrueSave results to local history

Analytics Dashboard

All test results are automatically sent to your SpeedOf.Me dashboard where you can:

  • View usage statistics over time
  • See geographic distribution of tests
  • Analyze device and platform breakdowns
  • Monitor API usage against your plan limits

Visit speedof.me/api/portal to access your dashboard.

Links

License

This package is proprietary software. Unauthorized use, copying, or distribution is prohibited.

Related Servers