@browserstack/mcp-server 1.5.0-beta.1 → 1.5.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@
3
3
  "version": "1.0",
4
4
  "build_id": "43eba70_2026-09-02T14:26:51Z",
5
5
  "loadtesting": {
6
- "summary": "Load and performance testing: run k6, JMeter, Gatling and Locust load tests at scale. List and inspect projects and load tests; create, update, start, stop and monitor runs; read run reports, AI insights and historical trends; compare runs; and check VU-hour quota and cost estimates. Test definitions, runs and their results live here. Account plan and billing do not — only VU-hour entitlement is exposed, via quota.",
6
+ "summary": "Load and performance testing: run k6, JMeter, Gatling and Locust load tests at scale. List and inspect projects and load tests; create, update, start, stop and monitor runs; read run reports, AI insights and historical trends; compare runs; and check VU-hour quota and cost estimates. Test definitions, runs and their results live here. Account plan and billing do not — only VU-hour entitlement is exposed, via quota. There is no capability to delete a load test or schedule recurring runs — for those, point the user to the web dashboard. Each capability returns its full result in one call; reuse a result within a task rather than re-fetching the same data.",
7
7
  "base_url": "https://load-api.browserstack.com",
8
8
  "auth": {
9
9
  "type": "http",
@@ -242,7 +242,8 @@
242
242
  "intent": "Show how a project's load-test metrics trend across recent runs — use this for 'is performance getting better or worse across this project?'",
243
243
  "guidance": [
244
244
  "metrics accepts dotted names or @ aliases; @vitals / @all expand to metric sets.",
245
- "windowRuns bounds how many recent runs are aggregated."
245
+ "windowRuns bounds how many recent runs are aggregated.",
246
+ "Returns the whole windowed series across metrics in one call — request all needed metrics together; do not call once per metric or re-fetch the same window."
246
247
  ],
247
248
  "returns": [
248
249
  "metrics"
@@ -334,7 +335,8 @@
334
335
  "guidance": [
335
336
  "Returns run metadata only, not metrics — use getLoadTestRunReport for a run's KPIs.",
336
337
  "Page with cursor + limit; nextCursor is opaque.",
337
- "For a single test's history use /loadTests/{testId}/runs; for currently-live runs use /loadTests/runs/active."
338
+ "For a single test's history use /loadTests/{testId}/runs; for currently-live runs use /loadTests/runs/active.",
339
+ "One call returns the page of run history — reuse it for follow-ups and page with cursor only when more rows are needed; do not re-list the same window."
338
340
  ],
339
341
  "returns": [
340
342
  "runs",
@@ -437,7 +439,8 @@
437
439
  "guidance": [
438
440
  "jobId is the run UUID from startLoadTestRun or listLoadTestRuns.",
439
441
  "Respect pollAfterSeconds between polls instead of tight-looping.",
440
- "slaBreachFlags surfaces threshold breaches as they trip."
442
+ "slaBreachFlags surfaces threshold breaches as they trip.",
443
+ "For 'is it done?' / 'how much time is left?', this status call is sufficient — do not fetch the run report to answer a status question."
441
444
  ],
442
445
  "returns": [
443
446
  "status",
@@ -613,7 +616,9 @@
613
616
  "Only valid for a terminal run.",
614
617
  "Start with detail=aggregate; escalate to per-txn or full only when you need transaction- or network-level detail — full is large.",
615
618
  "groupBy and errorCategory narrow the payload; byteCap hard-caps the response (max 256 KB).",
616
- "metrics accepts dotted names or @ aliases; see getLoadTestMetricsManifest for what applies to this test type."
619
+ "metrics accepts dotted names or @ aliases; see getLoadTestMetricsManifest for what applies to this test type.",
620
+ "Answer a scoped question with the narrowest slice instead of the whole report: one metric → metrics=; error breakdown → errorCategory= (or slaOnly=true); a time window → sinceIso/untilIso; slowest transaction → detail=per-txn with groupBy=transaction and topN.",
621
+ "One call with the right params returns everything for that question — do not re-fetch the same run with the same params. Fetch the full report (view=full / detail=full) only when the user explicitly asks for the raw or complete report."
617
622
  ],
618
623
  "returns": [
619
624
  "runId",
@@ -748,7 +753,8 @@
748
753
  "guidance": [
749
754
  "Read-only despite being a POST — nothing is started.",
750
755
  "fitsInQuota / remainingAfterEstimate compare the estimate against current quota.",
751
- "For the same check at start time, call startLoadTestRun with dryRun:true."
756
+ "For the same check at start time, call startLoadTestRun with dryRun:true.",
757
+ "Always use this for a cost or VU-hour estimate of a hypothetical run — it models ramp-up. Do not compute VU-hours by hand from VUs × duration."
752
758
  ],
753
759
  "returns": [
754
760
  "estimatedVuHours",
@@ -830,7 +836,8 @@
830
836
  "intent": "Compare two completed runs and surface the deltas — use this for 'did this run regress vs the baseline?'",
831
837
  "guidance": [
832
838
  "baselineRunId and candidateRunId are run UUIDs and must differ; both runs must be terminal.",
833
- "regressedOnly + pctChangeMin filter to material regressions; dimensions accepts kpi, transaction, sla."
839
+ "regressedOnly + pctChangeMin filter to material regressions; dimensions accepts kpi, transaction, sla.",
840
+ "Use this to compare two runs — it returns per-KPI and per-transaction deltas directly. Do not fetch both run reports and diff them yourself."
834
841
  ],
835
842
  "returns": [
836
843
  "kpiDeltas",
@@ -1103,7 +1110,8 @@
1103
1110
  "intent": "List the execution history of a test — use this to find past runs of a specific test or to get a runId.",
1104
1111
  "guidance": [
1105
1112
  "testId is numeric; runId values returned are UUIDs.",
1106
- "Filter with status / verdict / date range; page with cursor + limit."
1113
+ "Filter with status / verdict / date range; page with cursor + limit.",
1114
+ "One call returns this test's run history — reuse it and page with cursor when needed; do not re-list the same window."
1107
1115
  ],
1108
1116
  "returns": [
1109
1117
  "runs",
@@ -1185,7 +1193,8 @@
1185
1193
  "intent": "Show how one test's metrics trend across its recent runs — use this for 'is this test getting slower over time?'",
1186
1194
  "guidance": [
1187
1195
  "metrics accepts dotted names or @ aliases; @vitals / @all expand to metric sets.",
1188
- "windowRuns bounds how many recent runs are aggregated."
1196
+ "windowRuns bounds how many recent runs are aggregated.",
1197
+ "Returns the whole windowed series across metrics in one call — request all needed metrics together; do not call once per metric or re-fetch the same window."
1189
1198
  ],
1190
1199
  "returns": [
1191
1200
  "metrics"
@@ -1361,7 +1370,8 @@
1361
1370
  "intent": "Get the full configuration of a single load test — use this to inspect a test's settings, script reference, SLA thresholds and children.",
1362
1371
  "guidance": [
1363
1372
  "testId is numeric (from listLoadTests).",
1364
- "Use include to expand config / thresholds / tags / children."
1373
+ "Use include to expand config / thresholds / tags / children.",
1374
+ "A single call returns the complete configuration — VU/ramp profile, duration, load-generator regions and SLA thresholds (expand them with include=config,thresholds). Do not call again for the same testId within a task; reuse the result."
1365
1375
  ],
1366
1376
  "returns": [
1367
1377
  "testId",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@browserstack/mcp-server",
3
- "version": "1.5.0-beta.1",
3
+ "version": "1.5.0-beta.2",
4
4
  "description": "BrowserStack's Official MCP Server",
5
5
  "mcpName": "io.github.browserstack/mcp-server",
6
6
  "main": "dist/index.js",