# Stresix

> Load test your app on a real server from your agent. Get p95, errors and what ran out first.

- name: com.stresix/stresix
- version: 1.0.0
- connection class: R1 (autonomous)
- trust: 96/100
- quality: 85/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.stresix%2Fstresix
- tools: https://api.protogrid.dev/v1/servers/com.stresix%2Fstresix/tools

**An agent can connect on its own if it already holds `STRESIX_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "stresix": {
      "type": "http",
      "url": "https://stresix.com/mcp",
      "headers": {
        "Authorization": "Bearer ${STRESIX_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${STRESIX_TOKEN}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-5d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 14 of 14 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 7 of 14 tools declare all four hints; missing: get_test_report (destructiveHint, idempotentHint); list_github_repos (destructiveHint, idempotentHint); get_account (destructiveHint, idempotentHint); …
- pass `tools.token_cost`: about 2,643 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 4 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 14, about 2,643 tokens to load them all
- tool set hash: db3d1e53448b78d4e118f98230f5dd88
- tools last changed: 2026-10-16T21:53:02.961Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.stresix/stresix.svg)](https://protogrid.dev/servers/com.stresix/stresix)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-16 `redeem_code` added
  - Adds the credits of a promo code to the account. Only use a code the user gave you.
- 2026-10-16 `buy_credits` added
  - Makes a checkout link for a credit pack: Starter is 5 credits for $10, Pro is 25 credits for $40. Nothing is charged by this tool. The user opens the link and pays in their browser, and the credits arrive a minute later. Only call it when the user asked to buy credits.
- 2026-10-16 `get_account` added
  - The account's credits, whether the free Lite run is still available, whether GitHub is connected, what each run size costs and the credit packs on sale.
- 2026-10-16 `list_github_repos` added
  - The GitHub repositories the user gave Stresix access to, including private ones. Public repositories work without connecting GitHub.
- 2026-10-16 `inspect_target` added
  - Reads a repository before testing it: the port it listens on, the environment variables the code reads, the framework, whether it needs a database, and its branches. For a Docker image it only checks the reference. Use it before start_load_test.
- 2026-10-16 `send_feedback` added
  - Tells Stresix whether a finished run's report was useful, with an optional note. Only send what the user actually said. Sending again replaces the earlier answer.
- 2026-10-16 `set_current_server` added
  - Tells a run which server the user already hosts the app on, so the report says whether that server is enough, how close to the limit it would be and what to change. Or set recommend to true to go back to a recommended size. The report is recomputed from the stored measurements, no new run needed.
- 2026-10-16 `delete_load_test` added
  - Deletes a run and its report and measurements for good. A running run has to be stopped first. Ask the user first.
- 2026-10-16 `stop_load_test` added
  - Stops a run that is waiting or running and deletes its servers. A run stopped before its servers were up uses no credit. A run stopped while the load is going is not refunded, and its report covers what was measured until then. Ask the user first.
- 2026-10-16 `list_load_tests` added
  - The account's runs, newest first: id, status, size, target, requests, when it ran and why it failed if it did.

Full history: https://api.protogrid.dev/v1/servers/com.stresix%2Fstresix/changes

## Remotes

- https://stresix.com/mcp (streamable-http, auth api_key ${STRESIX_TOKEN}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (14)

- `buy_credits`: Makes a checkout link for a credit pack: Starter is 5 credits for $10, Pro is 25 credits for $40. Nothing is charged by this tool. The user opens the link and pays in their browser, and the credits arrive a minute later. Only call it when the user asked to buy credits.
- `delete_load_test`: Deletes a run and its report and measurements for good. A running run has to be stopped first. Ask the user first.
- `get_account`: The account's credits, whether the free Lite run is still available, whether GitHub is connected, what each run size costs and the credit packs on sale.
- `get_test_report`: The full report of a finished run: the verdict, users held, requests per second, p95 latency and errors at each load level, what ran out first, CPU, busiest thread and memory on the server and per service, connections to the database and other dependencies, what the responses were, and which server size to pick or whether the user's own server is enough.
- `get_test_status`: Where a run stands: building, starting servers, running (with live users, requests per second, p95 latency and error rate) or finished.
- `get_test_timeline`: How a run moved over time: users, requests per second, p95 latency and error rate, averaged into a fixed number of points. Works while a run is going and after it ends.
- `inspect_target`: Reads a repository before testing it: the port it listens on, the environment variables the code reads, the framework, whether it needs a database, and its branches. For a Docker image it only checks the reference. Use it before start_load_test.
- `list_github_repos`: The GitHub repositories the user gave Stresix access to, including private ones. Public repositories work without connecting GitHub.
- `list_load_tests`: The account's runs, newest first: id, status, size, target, requests, when it ran and why it failed if it did.
- `redeem_code`: Adds the credits of a promo code to the account. Only use a code the user gave you.
- `send_feedback`: Tells Stresix whether a finished run's report was useful, with an optional note. Only send what the user actually said. Sending again replaces the earlier answer.
- `set_current_server`: Tells a run which server the user already hosts the app on, so the report says whether that server is enough, how close to the limit it would be and what to change. Or set recommend to true to go back to a recommended size. The report is recomputed from the stored measurements, no new run needed.
- `start_load_test`: 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 person (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.
- `stop_load_test`: Stops a run that is waiting or running and deletes its servers. A run stopped before its servers were up uses no credit. A run stopped while the load is going is not refunded, and its report covers what was measured until then. Ask the user first.
