get_sessions
List current webrtcperf sessions (id and stats for each running session).
Start a load test against a WebRTC service — many headless browsers joining a real call — and read the audio and video statistics back while it runs.
LABSCO SUMMARY
Because the clients are real Chromium instances, the numbers come from the RTC peer connections themselves — packet loss, round trip time, jitter buffer delay, quality limitation — rather than from a synthetic traffic generator, and the throttle rules can degrade one participant's uplink at a set moment to see what the service does about it. Two things shape where you run it: throttling needs Linux, and the machine hosting the sessions has to have the CPU and bandwidth for every client you start, or you end up measuring your own laptop.
The MCP mode of WebRtcPerf, a load-testing tool that spawns Puppeteer-driven Chromium sessions against a WebRTC service and collects the statistics its peer connections report. Four tools start, stop, list and reset sessions; everything else is the config object you hand to start_session.
No account for the tool itself — you need whatever the service under test needs. Node.js with Chromium available, FFmpeg installed on the same machine, and it runs as npx -y @vpalmisano/webrtcperf@latest --mcp; a prebuilt Docker image and a global npm install are the other two routes. Linux is the recommended platform, and the network throttling specifically depends on the Linux Traffic Controller framework. Concurrent sessions consume CPU, memory and bandwidth in proportion to the number of clients you start. AGPL.
One command — npx -y @vpalmisano/webrtcperf@latest --mcp
USE CASES
Start a session with the participant count you want, watch the aggregated bitrate, loss and round trip time as it runs, and stop it when the picture is clear.
Throttle that session's uplink — bandwidth, delay, loss — and compare its sent resolution and frame rate against the unthrottled participants.
Schedule throttle rules to tighten and relax at set points in the run, and watch whether the sender climbs back to its original bitrate.
Read system and per-page CPU and memory next to the quality limitation counters, which say directly whether the sender was held back by CPU or bandwidth.
Clear the collected statistics, let the running sessions settle, and read the numbers that follow rather than an average polluted by the earlier state.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
get_sessionsList current webrtcperf sessions (id and stats for each running session).
reset_statsReset the collected webrtcperf stats.
start_sessionStart a new webrtcperf session in-process. Config is the session config object (url, tabsPerSession, throttleConfig, etc.). Returns the created session id.
stop_sessionStop a webrtcperf session by id.
BEFORE YOU INSTALL
4 tools when we connected. The four tools drive a load-testing CLI; what each session does is set by the config passed to start_session (sessions, runDuration, url, throttleConfig), not by extra tools.
npx on PATH
Both documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 4 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y @vpalmisano/webrtcperf@latest --mcp{
"mcpServers": {
"webrtcperf": {
"command": "npx",
"args": [
"-y",
"@vpalmisano/webrtcperf@latest",
"--mcp"
]
}
}
}{
"servers": {
"webrtcperf": {
"command": "npx",
"args": [
"-y",
"@vpalmisano/webrtcperf@latest",
"--mcp"
]
}
}
}