@browserstack/mcp-server 1.5.0-beta.11 → 1.5.0-beta.3
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.
- package/capability/loadtesting.capability-index.json +6 -43
- package/capability/tm.capability-index.json +8 -309
- package/dist/tools/capability-registry/index-loader.d.ts +1 -15
- package/dist/tools/capability-registry/index-loader.js +1 -56
- package/dist/tools/capability-registry/register.js +30 -72
- package/dist/tools/capability-registry/search.d.ts +3 -35
- package/dist/tools/capability-registry/search.js +8 -193
- package/dist/tools/capability-registry/types.d.ts +0 -24
- package/package.json +1 -1
|
@@ -329,17 +329,11 @@
|
|
|
329
329
|
"name": "hadSlaBreach",
|
|
330
330
|
"type": "boolean",
|
|
331
331
|
"description": "Filter to runs that did / did not breach SLA."
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
"name": "tag",
|
|
335
|
-
"type": "string",
|
|
336
|
-
"description": "Filter to runs carrying this tag (a run's own tags, or the tags it inherits from its test when it has none of its own)."
|
|
337
332
|
}
|
|
338
333
|
],
|
|
339
334
|
"intent": "List the execution history across every load test in a project — newest first, paginated. Use for 'what ran last week in this project?' or to find runs across tests to compare.",
|
|
340
335
|
"guidance": [
|
|
341
336
|
"Returns run metadata only, not metrics — use getLoadTestRunReport for a run's KPIs.",
|
|
342
|
-
"Each run carries a tags array — its own run-level tags if set (via updateLoadTest with runId), otherwise the tags inherited from its test. Filter with the tag query param.",
|
|
343
337
|
"Page with cursor + limit; nextCursor is opaque.",
|
|
344
338
|
"For a single test's history use /loadTests/{testId}/runs; for currently-live runs use /loadTests/runs/active.",
|
|
345
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."
|
|
@@ -394,18 +388,12 @@
|
|
|
394
388
|
"name": "userId",
|
|
395
389
|
"type": "integer",
|
|
396
390
|
"description": "Restrict to runs started by a user."
|
|
397
|
-
},
|
|
398
|
-
{
|
|
399
|
-
"name": "tag",
|
|
400
|
-
"type": "string",
|
|
401
|
-
"description": "Filter to runs carrying this tag (a run's own tags, or the tags it inherits from its test when it has none of its own)."
|
|
402
391
|
}
|
|
403
392
|
],
|
|
404
393
|
"intent": "List load-test runs currently executing — use this for 'what's running right now?' or to find a runId to stop or monitor.",
|
|
405
394
|
"guidance": [
|
|
406
395
|
"Returns non-terminal runs across the account.",
|
|
407
396
|
"runId here is the UUID needed by getLoadTestRunStatus and stopLoadTestRun.",
|
|
408
|
-
"Each run carries a tags array — its own run-level tags if set, otherwise the tags inherited from its test. Filter with the tag query param.",
|
|
409
397
|
"vuHoursBurnedSoFar reflects consumption at the moment of the call."
|
|
410
398
|
],
|
|
411
399
|
"returns": [
|
|
@@ -881,7 +869,6 @@
|
|
|
881
869
|
"name": "testType",
|
|
882
870
|
"type": "string",
|
|
883
871
|
"required": true,
|
|
884
|
-
"description": "plu = protocol/API load; blu = real-browser load; hybrid = BOTH in one test (one PLU leg + one BLU leg, supplied via children). These tokens are INTERNAL wire values — send them here but never show them to the user; the user-facing labels are 'API / Protocol' (plu), 'Browser' (blu) and 'Hybrid' (hybrid). All three are valid, user-selectable options — hybrid is not a rare/advanced variant, offer it alongside the other two.",
|
|
885
872
|
"values": [
|
|
886
873
|
"plu",
|
|
887
874
|
"blu",
|
|
@@ -892,17 +879,11 @@
|
|
|
892
879
|
"name": "framework",
|
|
893
880
|
"type": "string",
|
|
894
881
|
"required": true,
|
|
895
|
-
"description": "PLU (protocol) frameworks: k6, jmeter, gatling, locust. BLU (browser) frameworks: playwright, selenium, webdriverio, nightwatch, lcncnightwatch. Must match testType — a PLU framework for testType plu, a BLU framework for testType blu (the backend rejects a mismatched pair).",
|
|
896
882
|
"values": [
|
|
897
883
|
"k6",
|
|
898
884
|
"jmeter",
|
|
899
885
|
"gatling",
|
|
900
|
-
"locust"
|
|
901
|
-
"playwright",
|
|
902
|
-
"selenium",
|
|
903
|
-
"webdriverio",
|
|
904
|
-
"nightwatch",
|
|
905
|
-
"lcncnightwatch"
|
|
886
|
+
"locust"
|
|
906
887
|
]
|
|
907
888
|
},
|
|
908
889
|
{
|
|
@@ -918,12 +899,12 @@
|
|
|
918
899
|
{
|
|
919
900
|
"name": "config",
|
|
920
901
|
"type": "object",
|
|
921
|
-
"description": "Test configuration incl. scriptRef {source: s3|s3_upload|existing_zip_id
|
|
902
|
+
"description": "Test configuration incl. scriptRef {source: s3|s3_upload|existing_zip_id, value|identifier}, vuRamp, durationSec, loadGeneratorLocations, slaThresholds, envVarKeys, tags. To supply a script from a local file or URL, use the pendingScriptUpload flow, then source='s3'."
|
|
922
903
|
},
|
|
923
904
|
{
|
|
924
905
|
"name": "children",
|
|
925
906
|
"type": "array",
|
|
926
|
-
"description": "Child scenarios for
|
|
907
|
+
"description": "Child scenarios for hybrid tests."
|
|
927
908
|
},
|
|
928
909
|
{
|
|
929
910
|
"name": "idempotencyKey",
|
|
@@ -953,17 +934,12 @@
|
|
|
953
934
|
],
|
|
954
935
|
"intent": "Create a new load test in a project — use this to define a test before running it. JSON body only (no multipart).",
|
|
955
936
|
"guidance": [
|
|
956
|
-
"PRECONDITION — do NOT call this endpoint until THREE things are known: (1) testType (plu/blu/hybrid), (2) framework, (3) the script (a built-in sample or the user's own upload). These are MANDATORY and NOT defaultable — never infer or default them. If the user's request does not state one of the three, ASK the user for the missing ones and WAIT for their answer before creating. 'create a test' with no type/framework/script named means all three are missing → ask all three; do not silently pick k6/plu/sample. Only vus, duration, region and load profile are defaultable (see the DEFAULTS line) — the three above are not.",
|
|
957
|
-
"'plu' / 'blu' / 'hybrid' are INTERNAL wire values — send them in the request, but NEVER show them to the user. Do not print them in questions, option labels, confirmations, summaries, or prose (no 'Browser (BLU)', no '(plu+blu)'). User-facing labels are: plu → 'API / Protocol', blu → 'Browser', hybrid → 'Hybrid (both API and Browser)'. Frameworks (k6, jmeter, selenium, playwright, …) are real product names and ARE shown to the user.",
|
|
958
|
-
"When you ASK the user to pick testType or framework, present the FULL, exact option set — never drop, merge, or cross-contaminate options. testType: offer all THREE, using the user-facing labels above — 'API / Protocol', 'Browser', and 'Hybrid'; do not omit Hybrid. framework (ask AFTER testType is chosen, and show only that type's frameworks, each as its OWN separate option): for an API/Protocol test offer exactly k6, jmeter, gatling AND locust (all four — do not drop locust); for a Browser test offer exactly playwright, selenium, webdriverio AND nightwatch (all four — never list the API/Protocol frameworks under a Browser test, and never merge selenium and playwright into one option). For a Hybrid test, collect an API/Protocol leg (its framework + script) AND a Browser leg (its framework + script) and assemble them per the children field — Hybrid needs both legs, so it takes more than the three questions a single-type test does.",
|
|
959
937
|
"Provide exactly one of projectId or projectName; projectName creates the project if absent.",
|
|
960
938
|
"Script upload is two-phase: send pendingScriptUpload to get a presigned uploadUrl + s3Key, PUT the file, then call create again with the scriptRef source and s3Key returned in the response's nextStep.",
|
|
961
|
-
"To spin up a test from a built-in sample with NO file handling (the dashboard's 'use sample script'), pass scriptRef:{source:'sample'} — the platform's bundled sample for the given framework is used. For Selenium, also pass scriptRef.subType (testng|junit|vanillajava|python|pytest|jest|serenity-cucumber) to pick the binding. testType and framework are still needed; the load profile defaults to constant 1 VU / 30s (see below).",
|
|
962
939
|
"Pass idempotencyKey so a retried create does not duplicate the test.",
|
|
963
|
-
"
|
|
940
|
+
"testType and framework are required and are never inferred: testType is plu (protocol / API load), blu (real-browser load) or hybrid (both); framework is the load tool (k6, jmeter, gatling, locust). If the user has not stated them, ask — do not guess a default.",
|
|
964
941
|
"There is no clone capability. To duplicate a test, getLoadTest the source and copy its full config into this create — vuRamp/vus, durationSec, loadGeneratorLocations and slaThresholds included; nothing is inherited from the source, so anything you omit is dropped.",
|
|
965
|
-
"
|
|
966
|
-
"Only when the user explicitly asks for a different load shape, set config.loadProfile: 'ramping' (config.vuRamp: array of {vus, durationSec} stages; ramp up/down is inferred from adjacent VU deltas), 'iterations' (PLU only — config.iterations = fixed run count, plus config.vus), or 'throughput' (PLU and only JMeter/Gatling/locust/k6 — config.targetRps + config.maxVus + config.durationSec). A stage's own 'type' is NOT honored — every stage persists as a hold."
|
|
942
|
+
"The load profile is required too and is never defaulted: the concurrency (config.vus, or a config.vuRamp for a ramp) and the run length (config.durationSec). If the user has not given the VUs and duration, ask for them — do not assume a value."
|
|
967
943
|
],
|
|
968
944
|
"returns": [
|
|
969
945
|
"testId",
|
|
@@ -1128,17 +1104,11 @@
|
|
|
1128
1104
|
"name": "hadSlaBreach",
|
|
1129
1105
|
"type": "boolean",
|
|
1130
1106
|
"description": "Only runs that breached an SLA."
|
|
1131
|
-
},
|
|
1132
|
-
{
|
|
1133
|
-
"name": "tag",
|
|
1134
|
-
"type": "string",
|
|
1135
|
-
"description": "Filter to runs carrying this tag (a run's own tags, or the tags it inherits from the test when it has none of its own)."
|
|
1136
1107
|
}
|
|
1137
1108
|
],
|
|
1138
1109
|
"intent": "List the execution history of a test — use this to find past runs of a specific test or to get a runId.",
|
|
1139
1110
|
"guidance": [
|
|
1140
1111
|
"testId is numeric; runId values returned are UUIDs.",
|
|
1141
|
-
"Each run carries a tags array — its own run-level tags if set (via updateLoadTest with runId), otherwise the tags inherited from the test. Filter with the tag query param.",
|
|
1142
1112
|
"Filter with status / verdict / date range; page with cursor + limit.",
|
|
1143
1113
|
"One call returns this test's run history — reuse it and page with cursor when needed; do not re-list the same window."
|
|
1144
1114
|
],
|
|
@@ -1333,21 +1303,14 @@
|
|
|
1333
1303
|
"type": "string"
|
|
1334
1304
|
}
|
|
1335
1305
|
]
|
|
1336
|
-
},
|
|
1337
|
-
{
|
|
1338
|
-
"name": "runId",
|
|
1339
|
-
"type": "string",
|
|
1340
|
-
"description": "Tag a specific RUN instead of the test definition. When set, config.tags is applied to that run's own tags (the saved test is NOT changed); only config.tags may accompany runId. Omit it to edit the test."
|
|
1341
1306
|
}
|
|
1342
1307
|
],
|
|
1343
|
-
"intent": "Update an existing load test's name or configuration — use this to change tags, SLA thresholds, script or settings
|
|
1308
|
+
"intent": "Update an existing load test's name or configuration — use this to change tags, SLA thresholds, script or settings.",
|
|
1344
1309
|
"guidance": [
|
|
1345
1310
|
"Partial update: send only the fields to change.",
|
|
1346
1311
|
"Pass ifVersion for optimistic concurrency; a stale value returns 409 VERSION_CONFLICT.",
|
|
1347
1312
|
"Script replacement uses the same two-phase pendingScriptUpload flow as create.",
|
|
1348
1313
|
"config is a partial update, but each field it carries REPLACES that field wholesale — it does not merge. tags overwrites the entire tag set; it does not append. To add a tag to a test (or the same tag across several tests), getLoadTest each one first and send the union under config.tags.",
|
|
1349
|
-
"To change the load profile, send config.loadProfile plus that profile's fields (see createLoadTest's load-profile guidance for the four shapes). Switching profiles clears the previous profile's fields — e.g. ramping→throughput empties the stages and drops iterations. iterations and throughput are PLU-only.",
|
|
1350
|
-
"To tag a specific RUN rather than the test, pass runId (a run UUID from listLoadTestRuns) together with config.tags — the tags apply to that one run and the saved test is untouched. A run inherits the test's tags until you set its own; setting run tags overrides (they also replace wholesale, so send the union to add). Omit runId to tag the test itself.",
|
|
1351
1314
|
"Tags live on the load test, not on its runs — there is no per-run tagging, so do not touch runs when asked to tag a test. To tag every test in a project, list them with listLoadTests and page through with cursor until hasMore is false, then updateLoadTest each one — do not stop after the first page or a subset."
|
|
1352
1315
|
],
|
|
1353
1316
|
"returns": [
|