Load testing and synthetic monitoring platform: test with Playwright, Browser Bot, or Protocol Bots.
Connect Remote server
claude mcp add --transport http loadster-mcp https://api.loadster.com/mcp
{
"mcpServers": {
"loadster-mcp": {
"url": "https://api.loadster.com/mcp"
}
}
}
{
"servers": {
"loadster-mcp": {
"type": "http",
"url": "https://api.loadster.com/mcp"
}
}
}
Settings > Connectors > Add custom connector
URL: https://api.loadster.com/mcp
Tools 62 found in our last check
get_screenshotFetch a screenshot captured during a play as a viewable image. Use the screenshotKey from a step in get_play_status.
get_command_schemaGet the recursive schema for one command type, so you can build a valid command object. Some fields carry a 'notes' string describing accepted keys that aren't reflectable, such as element action options and locator attributes.
get_exampleGet a small, valid worked example script for a bot type to use as a starting point.
get_scripting_apiList the scripting API scopes (bot, http, browser, ...) available in code blocks, or fetch one scope's members with their signatures and docs.
get_variable_schemaGet the schema for binding a script variable to a dataset, including the accepted update and selection strategies. A variable is a named row cursor bound to one whole dataset by dataSetId: on each pull it holds an entire row, advancing per occurrence, per iteration, or per bot (…
list_command_typesList the command (step) types available for a bot type, with a description and the bot types each applies to. Use this before authoring commands.
validate_scriptStructurally validate a list of commands for a bot type before saving or playing, reporting any issues by command index. Pass the script's variables as well and it also cross-checks the bindings against the ${...} and bot.getVariable reads in the commands, warning about a read n…
append_dataset_rowsAdd rows to the end of an existing dataset, sending only the new rows — the rows already in the table stay as they are, so there is no need to read them first. Every row must have as many columns as the table already has; a row that doesn't is rejected and nothing at all is writ…
create_datasetCreate a new dataset in a project. Loadster treats every row as data and addresses columns by zero-based index — a header row would be fed to bots like any other row, so don't add one when authoring values. Unless the user explicitly asked for a dataset, confirm with them before…
delete_datasetDelete a dataset from a project.
get_datasetGet a single dataset's shape — name, row and column counts, tag names, dashboard link — plus a leading window of its rows: the first five in table order by default, more with offset and limit. Compare rowOffset and the rows returned against rowCount to see how much you are not l…
list_datasetsList the datasets in a project with their id, name, row/column counts, and tag names (without the full value table). Tags are shared across the team: to tag an item, reuse a name the list tools already report, and create a new tag only when the user asks for one.
update_datasetUpdate an existing dataset. Each of name, values, and tags is optional: a field left out keeps its stored value, so a rename leaves the table alone. Values sent become the entire table, so send the complete table including every row you want to keep; an empty table clears the ro…
list_enginesList everywhere a population can run, with the customer's own limits a scenario is written against. Each entry's id is what a population's engineId names — never invent one. Type CLOUD is a single Loadster cloud region, WILDCARD is a pattern ('north-america-*', '*') that lets Lo…
submit_feedbackOptional. Sends a note about this tool surface to the Loadster team, who read it to fix what the surface got wrong. Nothing requires it and no task depends on it. A note is about the tools themselves: what worked, what was missing or confusing, what needed a workaround. It shoul…
get_documentationList the Loadster manual's topics with their keys and URLs, or read up to 3 topics' text by key. Pass one key as topic, or up to 3 keys as topics. Omit both to list every topic.
create_monitorCreate a Monitor in a project, initially disabled. An enabled Monitor runs on its schedule, unattended. Its Cycles burn Fuel unless the account has a plan that includes monitoring, which covers them up to its limits. Enable it with enable_monitor at the "Launch" access level; be…
delete_monitorDelete a Monitor from a project. Its Incidents are deleted with it and it is removed from any status pages; the Script it played is left alone. To stop a Monitor running without losing it, use disable_monitor instead, which needs the "Launch" access level; below that level the u…
disable_monitorDisable a Monitor, stopping its scheduled Cycles and the Fuel or plan usage they bring; disabling closes the Monitor's open Incidents. Idempotent. Disabling, and enabling again with enable_monitor, both need the "Launch" access level; below that level a call is refused, and the…
enable_monitorEnable a disabled Monitor so its Cycles run on its schedule. Enabling starts a Cycle at once, and the result's startedCycleId names it; startedCycleId is absent when no Cycle started, because the Monitor was already enabled, recent Cycles reached the limit on immediate Cycles, o…
get_incidentGet a single Incident: when it opened and closed, every notification that went out with its delivery outcome, the status events recorded on it, and the ids of the Cycles that opened and closed it. To reconstruct what happened, read those Cycles with get_monitor_cycle_detail, and…
get_monitorGet a single Monitor's full configuration and dashboard link. Configuration only — a Monitor's steps are its Script's commands, so read them with get_script. To start a disabled Monitor, call enable_monitor at the "Launch" access level; below that level a call is refused, and th…
get_monitor_cycle_detailGet one Cycle in full: status, failure message, the engine it ran from, timestamps, and every metric the Monitor's thresholds judge. Its scriptRunId is a played run like any other — pass it with the project id to get_play_status for per-step results and get_step_detail for the e…
get_monitoring_summaryGet the Monitoring Summary for a project: the aggregate health picture across its Monitors over a period, defaulting to the last 7 days, with per-Monitor and per-day aggregates for trends (times in seconds; performance score 0-100). Drill down instead of asking for more: list_in…
list_incidentsList a project's Incidents — open ones first, then the most recently closed; unresolved only by default, with includeResolved for incident archaeology over a since/until window and monitorId to ask about one Monitor. An Incident opens when a Monitor's consecutive failing Cycles…
list_monitor_cyclesList a Monitor's Cycles, newest first — one row per Cycle with its status, timestamps, the engine id it ran from, and headline response times; a Cycle with no status yet is scheduled or still running. Window with since/until and limit to spot patterns — flapping around a thresho…
list_monitoring_locationsList everywhere a Monitor's Cycles can run from. Each entry's id is what a Monitor's engineIds names — never invent one. Type CLOUD is one of Loadster's shared monitoring locations, and PRIVATE is one of the customer's own Loadster Engines, the only kind that can reach a host on…
list_monitorsList the Monitors in a project. A Monitor is a scheduled, low-volume check that runs a Script on a frequency to verify health and alert on failure; each execution is a Cycle. Each row is a summary without the thresholds and engine ids; read one Monitor's full configuration with…
update_monitorUpdate an existing Monitor's exposed configuration: name, Script, frequency, engine ids, failure and recovery thresholds, tags, and the acceptable-metric thresholds. Each is optional: a field left out keeps its stored value, and a list sent replaces the whole list, never merging…
get_load_test_reportGet a finished Load Test's Test Report — aggregate totals, the error and advice picture behind the Dashboard's advice tile, per-Population outcomes, and each engine's average and peak CPU; an unfinished test answers with an error naming its status. The advice buckets and detecti…
get_load_test_statusGet a Load Test's live status, as the Dashboard's live test view shows it: stage, elapsed time, Bots started, running, peak and planned per Population, Iterations, response time percentiles, throughput, errors by type, and each engine's region, online state and, while the test r…
get_load_test_url_timingsGet a finished Load Test's response times per URL, slowest first by the total time all hits to the URL took: hits, average, minimum and maximum response time, and average time to first byte, in milliseconds. Use it to name the slow pages behind the percentiles in get_load_test_r…
list_load_testsList a project's Load Tests, a window of summary rows at a time: the ones in progress first, each with its stage, then the finished ones, newest first. A Load Test is a run of a Scenario at scale by many bots; launch_load_test launches one and stop_load_test stops one, at the "L…
stop_load_testStop a Load Test. By default the stop is graceful, as the Dashboard's Stop button does: each bot finishes the iteration it is on before it stops, so the last iterations complete and are reported in full. With immediate set to true the Load Test is killed instead: bots stop mid-i…
update_load_test_notesReplace the notes on a finished Load Test's Test Report — the only thing on a Load Test this surface edits. Ask the user before writing: notes belong to the user, and advising on a test never requires writing them. The text sent becomes the report's entire notes, so first read t…
create_scenarioCreate a scenario in a project — saving costs nothing and starts nothing. Launch it with launch_load_test at the "Launch" access level; below that level a call is refused, and the user launches it from the Dashboard at the link. The save is refused for an engineId list_engines d…
delete_scenarioDelete a scenario from a project. The scripts its populations referenced are left alone.
get_scenarioGet a single scenario including its Populations, plus a dashboard link and its launch readiness: the account's fuelBalance; launchBlockers, where an empty list means it can launch as it stands; and estimatedFuelLow and estimatedFuelHigh, the low and high ends of the Fuel estimat…
launch_load_testLaunch a saved Scenario as a Load Test, exactly as stored. Its Populations send real traffic to the user's site. Like the Dashboard's Launch button, it runs on the account's plan when get_scenario shows no Fuel estimate and runs the whole test on Fuel when it shows one. Read the…
list_scenariosList the scenarios in a project with their id, name, version, population count, peak bots, total duration in milliseconds, and tag names — without the populations, fuel estimate, and launch blockers get_scenario reports. A Scenario is a saved load test configuration: a named lis…
update_scenarioUpdate an existing scenario. Each of name, populations, and tags is optional: a field left out keeps its stored value. Populations sent replace the whole list, never merging into it, so to change one, send the others alongside it, each with the id get_scenario reported, or they…
create_projectCreate a project for the connected team and return its id, name, and dashboard link. Prefer an existing project: call list_projects first, and create a new one only if the team has none or the user explicitly asked for one. When unsure, ask the user before creating.
create_scriptCreate a new script in a project. Read the relevant get_documentation topics and use the schema tools first to build valid commands for the bot type. HTTP is a Protocol Bot script, BROWSER is a Browser Bot script, and PLAYWRIGHT is a Playwright script. "Browser script" is ambigu…
delete_scriptDelete a script from a project.
delete_script_assetDelete a file attached to a script.
duplicate_scriptDuplicate a script, optionally with a new name and into another project the token can access. Returns the copy's summary.
get_play_statusGet the current state of a play, with per-step results and log that fill in as it progresses, optionally waiting for it to finish. After play_script, call this with waitSeconds instead of sleeping between polls; the results are complete once running is false. Each step's has-fla…
get_scriptGet a single script including its full command list and variables, plus a dashboard link. The variables are the script's dataset bindings — the ${...} references in its commands resolve through them.
get_script_assetRead a script asset's content as base64.
get_script_revisionGet a specific past revision of a script, including its commands, so you can inspect or diff it.
get_step_detailRead the payloads get_play_status leaves out — response bodies, headers, captured values, console messages, network activity, page HTML, logs — for one or more steps of a play, choosing the parts per call. Ask for several steps at once: a failing request and the earlier step tha…
import_scriptImport an open-source load test (JMeter .jmx, k6 .js, or Locust .py) into an existing script, converting it to Loadster commands. An import may create script assets, datasets, and a scenario; replace=true also replaces the script's existing commands and variables. Returns action…
list_projectsList the Loadster projects the current token can access, each with its id and name. Every other tool takes one of these ids. When the team has no projects, the result says so and points at create_project. Prefer an existing project: call list_projects first, and create a new one…
list_script_assetsList the files attached to a script (request bodies, upload files, Playwright support files). Each path is the key a command references.
list_script_revisionsList a script's past revisions (newest first) with version, save time, author, and step count.
list_scriptsList the scripts in a project with their id, name, bot type, step count, current revision version, and tag names (without the full command list). Tags are shared across the team: to tag an item, reuse a name the list tools already report, and create a new tag only when the user…
play_scriptStart playing a saved script. Returns immediately with a run id and a queued status, since a play can take anywhere from a few seconds (HTTP) to several minutes (browser or Playwright); read the results with get_play_status.
put_script_assetUpload or replace a script asset from base64 content. Use the path as the key a command references — e.g. set an HTTP command's requestBody to { "key": "<path>" } to give it a request body, or list the path in a browser upload step's files.
restore_script_revisionRestore a script to a past revision, saving that revision's commands as a new revision.
stop_scriptStop a running play. Errors if the run does not exist; once the stop takes effect, get_play_status reports the run as stopped.
update_projectRename a project and return its id, name, and dashboard link. The project's scripts, scenarios and other contents stay as they are. A name that another project of the team already has is refused. Every write against a user's existing data needs their explicit confirmation first.
update_scriptUpdate an existing script. Each of name, type, commands, variables, and tags is optional: a field left out keeps its stored value, an empty list clears that list, and a non-empty list replaces the whole list, never merging into it. A script's type cannot be changed: type, if sen…
Details
| Endpoint | https://api.loadster.com/mcp (Streamable HTTP) |
| First published | 12 Nov 2026 |
| Last updated | 12 Nov 2026 |
| Registry name | com.loadster/loadster-mcp |
More developer tools servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
