Stresix
Server Details
Load test your app on a real server from your agent. Get p95, errors and what ran out first.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- DevMatei/stresix-mcp
- GitHub Stars
- 0
TDQS
Scored across 3 tools
The three tools map cleanly onto distinct lifecycle phases: start a run, poll its live status, and fetch the final report. No two tools share a purpose, and the descriptions reinforce the boundary (status vs. finished verdict).
All three names follow a strict verb_noun pattern in snake_case (start_load_test, get_test_status, get_test_report). The get_* pair is parallel and start_ cleanly signals the mutating action.
Three tools is on the lean side but each earns its place for a single-purpose load-testing service. It is defensible rather than thin, though one or two lifecycle utilities (cancel, list) would round it out.
Start, poll, and report cover the core run lifecycle end to end, including tier/credits handling. Gaps remain: no way to cancel or abort a running (credit-spending) test and no tool to list or browse past runs.
Available Tools
3 toolsget_test_reportRead a load test reportARead-onlyInspect
The report of a finished run: the verdict, how many users it held, p95 latency, error rate, what ran out first and what to change or which server size to pick. Without a test_id it reports the latest run.
| Name | Required | Description | Default |
|---|---|---|---|
| test_id | No | The run id start_load_test returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds behavior the annotations do not: that reports exist only for finished runs and that omitting test_id returns the latest run.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact fragments, front-loaded with the primary purpose and the fallback behavior last. The content list is slightly dense but each item conveys return-value information in a tool with no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so by enumerating verdict, users held, p95, error rate, bottleneck, and recommendations. The only minor gap is pagination/formatting behavior, which is unlikely to matter for a single-run report.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains test_id's origin, so baseline is 3. The description adds meaning beyond the schema by explaining the optional-parameter default (latest run when test_id is absent), which the schema does not state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource (returns the report for a finished load-test run) and enumerates what the report contains, which separates it implicitly from get_test_status (in-progress) and start_load_test (initiation). It stops short of naming those siblings, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a finished run' implies this is the tool to use once a run completes rather than during it, and the no-test_id fallback is spelled out. There is no explicit when-not guidance or direct pointer to get_test_status for still-running tests, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_statusCheck a load testARead-onlyInspect
Where a run stands: building, starting servers, running (with live users, requests per second, p95 latency and error rate) or finished. Without a test_id it reports the latest run.
| Name | Required | Description | Default |
|---|---|---|---|
| test_id | No | The run id start_load_test returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: the set of lifecycle states, the fact that live user/RPS/p95/error-rate figures are only meaningful while running, and that a missing test_id silently falls back to the latest run. It stops short of saying whether finished runs remain retrievable indefinitely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The core answer ('where a run stands') is front-loaded and the parenthetical merely enumerates the states and metrics rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read tool with no output schema and annotations covering safety, the description supplies the state model and the no-argument default, which is nearly everything needed. The only meaningful omission is routing guidance relative to get_test_report.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains the test_id format ('the run id start_load_test returned'). The description goes beyond it by documenting the omitted-parameter default (latest run), which the schema does not state, so it earns above the 3 baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (a load-test run) and its concrete states — building, starting servers, running, finished — plus the live metrics exposed while running, so the agent knows exactly what comes back. It does not, however, differentiate itself from get_test_report or start_load_test by name, so the sibling boundary is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The default-behavior rule ('Without a test_id it reports the latest run') is real usage guidance for the parameterless case. But there is no explicit statement of when to prefer this over get_test_report (e.g., polling during a run vs. fetching full results after), so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_load_testStart a load testAInspect
Load tests the user's app on a real cloud server and returns a run id. The target is a public or connected GitHub repository URL, or a Docker image. Lite is free once per GitHub account (500 users, 4 minutes). Standard (2,500 users, 10 minutes) costs 1 credit and Massive (10,000 users, 15 minutes) costs 3. A paid run is only started with confirm_spend set to true, and only after the user has agreed to the price. Without a tier it uses the free Lite run when the account still has it.
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | Environment variables the app needs to boot, such as NODE_ENV or a test database URL. Stored encrypted and wiped after the run. Never send production secrets. | |
| port | No | The port the app listens on inside its container. Read it from the code. Stresix tries 80, 3000, 5000, 8000 and 8080 when it is left out. | |
| tier | No | Run size. Leave it out to use the free Lite run when available. | |
| paths | No | GET paths the simulated users rotate through, for example ["/", "/api/products", "/search?q=shoes"]. Pick pages that hit the database. Defaults to ["/"]. | |
| branch | No | Repository branch to build. The default branch when left out. | |
| target | Yes | GitHub repository URL (https://github.com/owner/repo) or a Docker image (nginx:1.27, ghcr.io/owner/app:tag). | |
| confirm_spend | No | Set to true only after the user agreed to spend credits on this run. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, open-world, non-idempotent write, and the description adds substantial behavior beyond them: credit costs per tier, the free-tier eligibility rule, the confirm_spend gate tied to user consent, and the data-handling note that env vars are encrypted, wiped after the run, and must never hold production secrets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then covers target types, pricing, and the spend gate in four tight sentences with no filler. The tier pricing sentence is long but carries information not present elsewhere, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly discloses the run-id return and covers the cost/consent decisions an agent must resolve before calling a 7-parameter tool. It is slightly thin on runtime expectations and the fact that the run is asynchronous and must be polled via the sibling status tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description nonetheless adds meaning the schema lacks, particularly the cost/user-count/duration tradeoffs among lite, standard, and massive, and the consent semantics behind confirm_spend.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Load tests the user's app on a real cloud server and returns a run id.' The starting/mutating nature is unmistakable against the read-only siblings get_test_status and get_test_report, and the mention of the returned run id signals the handoff to those tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit preconditions: paid runs require confirm_spend=true and prior user agreement on price, and omitting tier defaults to the free Lite run when still available. It does not name the sibling tools or say when to poll for status instead, so it falls short of full alternative routing, but the when-to-use conditions are unusually concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
get_test_report - First observed
get_test_status - First observed
start_load_test
Related MCP Connectors
Load testing and synthetic monitoring platform: test with Playwright, Browser Bot, or Protocol Bots.
Load & browser performance testing — drive MaxoPerf from your AI agent with your API key.
Test the voice agents you run: scored transcripts, pass/fail verdicts, latency and WER metrics.
Agents that test your web and mobile app like real users, on every pull request.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables running k6 load tests with customizable duration and virtual users via natural language, with real-time output and LLM-powered analysis.1-

Perfscale MCPofficial
FlicenseNot gradedqualityCmaintenanceEnables local load testing with k6/locust/native tools and cloud-based test management through the perfscale platform.-- AlicenseAqualityAmaintenanceEnables LLM agents to run self-healing JMeter performance tests via natural language, from environment setup to capacity discovery and SLO verdict reporting.121MIT
- AlicenseAqualityBmaintenanceTurns natural-language API descriptions into runnable k6 load tests, executes them, and returns structured performance metrics for AI-assisted reporting.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.