Jmeter MCP Server by juliodelimas
Stdio MCP server to build, run and read reports for JMeter test plans
Jmeter MCP Server is an open-source mcp server by juliodelimas, written mainly in TypeScript, with 94 GitHub stars and the MIT license. Its code was last updated Sep 22, 2026.
Scan summary: scanned Nov 5, 2026 at commit 6a9192b. Seen able to run shell commands. Scan policy
6a9192b · Nov 5, 2026Findings (10)
- highHigh. Something risky that needs a close look before you install.dependencies issueDetails are available to the maintainer after claiming this listing.
- mediumMedium. Worth checking, often a vulnerable dependency or a setup problem.@modelcontextprotocol/sdk@1.30.0: 6 known vulnerabilitiesGHSA-22jm-h49p-29qw, GHSA-46jr-4wx8-v453, GHSA-6prh-2h8m-c8cw, GHSA-6qxp-vccf-f47h, GHSA-f897-62hf-6gxq +1 more
package-lock.json - mediumMedium. Worth checking, often a vulnerable dependency or a setup problem.body-parser@2.3.0: 1 known vulnerabilityGHSA-27r3-jxmh-p828
package-lock.json - mediumMedium. Worth checking, often a vulnerable dependency or a setup problem.fast-uri@3.1.6: 7 known vulnerabilitiesGHSA-333x-w4r6-6crp, GHSA-58mr-gqgx-xq4g, GHSA-hrr3-gc8f-f4qj, GHSA-qw65-cvwx-89v3, GHSA-w74x-v6f9-j3xg +2 more
package-lock.json - mediumMedium. Worth checking, often a vulnerable dependency or a setup problem.zod@4.4.3: 1 known vulnerabilityGHSA-mrhx-c7xc-m3w5
package-lock.json - lowLow. Minor, or common in normal tools. Shown for information.@hono/node-server@2.1.1: 1 known vulnerabilityGHSA-rmxm-3fg6-px4f
package-lock.json - lowLow. Minor, or common in normal tools. Shown for information.hono@4.13.5: 2 known vulnerabilitiesGHSA-5r4p-p66f-jhc7, GHSA-hxh3-vqpv-xpqv
package-lock.json - lowLow. Minor, or common in normal tools. Shown for information.ip-address@10.5.0: 5 known vulnerabilitiesGHSA-2vr4-cq9g-pvrc, GHSA-h3mg-xc3c-68pw, GHSA-j6r3-76f7-8jcv, GHSA-rpw4-54j3-4h4q, GHSA-rxp7-6hxx-x8q5
package-lock.json - lowLow. Minor, or common in normal tools. Shown for information.qs@6.15.3: 3 known vulnerabilitiesGHSA-4mjr-xmp4-gh2g, GHSA-6pq8-jhm2-2vcw, GHSA-x5fp-wj9c-mxmx
package-lock.json - lowLow. Minor, or common in normal tools. Shown for information.No manifest declaring network access and environment variables (agent.json)
Network activity
Tools exposed (56)
create_test_planCreate a new JMeter test plan. Returns the planId and the id of its root TestPlan node, which you'll use as parentId for the first thread group.
list_test_plansList all test plans in the workspace.
get_test_planGet the full element tree of a test plan, including every node's id (needed as parentId for add_* tools) and type.
add_thread_groupAdd a Thread Group (virtual users) under the given parent node (usually the TestPlan root).
add_http_samplerAdd an HTTP Request sampler under the given parent node (usually a Thread Group). To inherit protocol, domain or port from an HTTP Request Defaults config element in scope (add_http_request_defaults), leave that argument out of the call - do not pass an empty string or a placeholder, because those f
add_json_extractorAdd a JSON Extractor post-processor under an HTTP sampler, to save a value from the JSON response into a variable.
add_header_managerAdd an HTTP Header Manager under an HTTP sampler (or a Thread Group, to apply to every sampler in it).
add_response_assertionAdd a Response Assertion under an HTTP sampler, to fail the sample if the response doesn't match.
add_aggregate_report_listenerAdd an Aggregate Report listener under the given parent (Thread Group or TestPlan). Its output is what get_execution_report reads after a run.
add_summary_report_listenerAdd a Summary Report listener under the given parent (Thread Group or TestPlan). Its output is what get_execution_report reads after a run.
add_csv_data_setAdd a CSV Data Set Config under the given parent (a Thread Group to feed every sampler in it, or a single sampler to scope it there). Each thread reads one row per iteration, exposing each column as a JMeter variable. The filename must be an absolute path readable on the machine that will run the te
add_user_defined_variablesAdd a User Defined Variables config element under the given parent (TestPlan root for global variables, or a Thread Group to scope them there). Values are set once, before the test starts.
add_constant_timerAdd a Constant Timer under the given parent to pace requests. Under a Thread Group it delays every sampler in it; under a single sampler it delays only that one, before it fires.
add_regex_extractorAdd a Regular Expression Extractor under an HTTP sampler, to save a value from its response (body, headers, etc.) into a variable using a regex capture group. Use this instead of add_json_extractor for non-JSON (HTML/XML/plain-text) responses.
add_transaction_controllerAdd a Transaction Controller under the given parent (usually a Thread Group). Samplers added under it (as its children) are timed and reported as a single named transaction instead of separately.
add_loop_controllerAdd a Loop Controller under the given parent (usually a Thread Group). Samplers added under it (as its children) repeat for the given number of loops each time the controller is reached.
add_if_controllerAdd an If Controller under the given parent (usually a Thread Group). Samplers added under it (as its children) only run when the condition evaluates truthy. condition is evaluated as a real JavaScript (Rhino) expression after JMeter substitutes any ${var} references, so comparisons work directly, e
add_jdbc_connection_configurationAdd a JDBC Connection Configuration (pooled datasource) under the given parent, usually the Thread Group or TestPlan root. A JDBC Request references this element's dataSource name.
add_jdbc_requestAdd a JDBC Request sampler under the given parent (usually a Thread Group). dataSource must match a JDBC Connection Configuration's dataSource name added elsewhere in the same plan.
add_jsr223_samplerAdd a JSR223 Sampler under the given parent (usually a Thread Group), running a script as the sample itself. Scripts default to Groovy, which only works when JMeter runs on a compatible Java (17 is the safe choice; the Groovy bundled with JMeter 5.6.x fails on very new Java such as 25+, killing each
add_ftp_requestAdd an FTP Request sampler under the given parent (usually a Thread Group).
add_tcp_samplerAdd a TCP Sampler under the given parent (usually a Thread Group), opening a raw TCP connection and sending request data.
add_http_request_defaultsAdd HTTP Request Defaults under the given parent (usually a Thread Group or TestPlan root). Any field left blank on a later add_http_sampler call under the same scope falls back to these values.
add_cookie_managerAdd an HTTP Cookie Manager under the given parent (usually a Thread Group), so samplers in scope share cookies automatically.
add_while_controllerAdd a While Controller under the given parent (usually a Thread Group). Samplers added under it (as its children) repeat while condition holds. Leave condition blank (or 'LAST') to loop while the last sampler in the loop succeeded; otherwise it's a JMeter expression re-evaluated each pass, looping u
add_random_controllerAdd a Random Controller under the given parent (usually a Thread Group). On each pass it runs exactly one randomly chosen child (added under it) instead of all of them.
add_interleave_controllerAdd an Interleave Controller under the given parent (usually a Thread Group). Runs one child (added under it) per pass, alternating through them in order instead of running them all.
add_once_only_controllerAdd a Once Only Controller under the given parent (usually a Thread Group). Its children run only on each thread's first iteration and are skipped on every later one - use it for a login before a looping scenario (or in a Thread Group that loops forever / runs on a scheduler, as find_breaking_point
add_setup_thread_groupAdd a setUp Thread Group under the TestPlan root. Runs once, before all normal Thread Groups start, regardless of where it sits in the tree - typically used for one-time setup (e.g. login, seeding data).
add_teardown_thread_groupAdd a tearDown Thread Group under the TestPlan root. Runs once, after all normal Thread Groups finish, regardless of where it sits in the tree - typically used for one-time cleanup.
add_xpath_extractorAdd an XPath Extractor under an HTTP sampler, to save a value from an XML/HTML response into a variable using an XPath expression. Set tolerant=true for real-world (non-strict) HTML.
add_jsr223_preprocessorAdd a JSR223 PreProcessor under an HTTP sampler (or a Thread Group, to apply to every sampler in it), running a script before the sample. Scripts default to Groovy, which only works when JMeter runs on a compatible Java (17 is the safe choice; the Groovy bundled with JMeter 5.6.x fails on very new J
add_jsr223_postprocessorAdd a JSR223 PostProcessor under an HTTP sampler (or a Thread Group, to apply to every sampler in it), running a script after the sample. Scripts default to Groovy, which only works when JMeter runs on a compatible Java (17 is the safe choice; the Groovy bundled with JMeter 5.6.x fails on very new J
add_user_parametersAdd a User Parameters pre-processor under a Thread Group, assigning each thread a different set of variable values (cycled by thread number), set once at thread start unless perIteration is true. Different from add_user_defined_variables, which sets the same values for every thread.
add_json_assertionAdd a JSON Assertion under an HTTP sampler, to validate a JSONPath expression exists (and optionally matches a value) in the response.
add_duration_assertionAdd a Duration Assertion under an HTTP sampler, failing the sample if it takes longer than maxDurationMs.
add_size_assertionAdd a Size Assertion under an HTTP sampler, comparing a response field's byte size against a threshold.
add_uniform_random_timerAdd a Uniform Random Timer under the given parent to pace requests with a randomized delay: delayMs +/- a random amount up to rangeMs, picked fresh before each sample.
add_constant_throughput_timerAdd a Constant Throughput Timer under the given parent, pacing requests to hit a target rate rather than a fixed per-sample delay.
add_view_results_tree_listenerAdd a View Results Tree listener under the given parent (Thread Group or TestPlan). Its output is readable via get_execution_report when there's no Aggregate/Summary Report listener present. NOTE: captureFullData currently has no effect - execute_test_plan always runs JMeter with CSV output, and JMe
add_backend_listenerAdd a Backend Listener under the given parent (Thread Group or TestPlan), streaming live metrics to an external backend (InfluxDB by default) instead of a JTL file. If args is omitted, a ready-to-edit InfluxDB argument set is used - at minimum, edit influxdbUrl before running.
remove_elementRemove an element (and its subtree) from a test plan. The root TestPlan node cannot be removed.
update_elementUpdate an element's props with a shallow merge (or full replace). A prop value of null in props removes that key. When the node's type is one of the modeled types, the resulting props are validated against that type's schema (check the type first via get_test_plan).
rename_elementRename an element (its testname in the generated .jmx).
move_elementMove an element (and its subtree) to a new parent, optionally at a specific index among the new parent's children (default: appended last). Rejects moving a node into its own subtree.
reorder_childrenReorder a node's direct children. orderedChildIds must be an exact permutation of that node's current children ids.
set_element_enabledEnable or disable an element without removing it. A disabled element is skipped by JMeter at run time.
get_test_plan_xmlSerialize a test plan to its JMeter .jmx XML, without running JMeter.
import_test_planImport an externally authored .jmx file (e.g. exported from the JMeter GUI) as a new test plan. Element types this server doesn't model are kept as opaque UnknownElement nodes (their original XML is preserved and re-emitted as-is) instead of being dropped - check unknownElementCount/unknownElementTy
execute_test_planStart running a test plan with JMeter in non-GUI mode. Returns immediately with an executionId; the run continues in the background. Poll get_execution_status to know when it's done, then call get_execution_report to read the results.
get_execution_statusCheck the status of a test run started with execute_test_plan (running/completed/failed), how long it has been running, and - while it runs - a `progress` block computed from the results file so far: samples, error rate, avg/p95 latency, overall and recent (last ~10s) throughput, and the same per la
stop_executionStop a running test execution (sends SIGTERM to the JMeter process).
get_execution_reportRead and aggregate the results of a finished (or still-running) execution, computed from its Aggregate Report / Summary Report listener output: per-label and overall count, error rate, avg/min/max/median/p90/p95/p99 latency, throughput and KB/sec.
find_breaking_pointFind the concurrency level where a test plan stops meeting its SLA. Runs the plan over and over on its own, driving one thread group's thread count: first doubling the load until the SLA breaks, then binary-searching between the last healthy level and the first broken one. Returns immediately with a
get_breaking_point_statusCheck a capacity search started with find_breaking_point: status (running/completed/failed/stopped), progress (rounds completed out of maxIterations, plus the in-flight round's elapsed time and percent complete), the rounds run so far with each one's load and overall + per-label metrics, and - once
stop_breaking_point_searchStop a running capacity search. Terminates the round in flight, restores the thread group's original settings, and keeps whatever bounds the search had established so far.
Automated result for the commit shown. See our scan policy. View the scan log
Maintainers can claim the listing to rescan, or dispute a result.
Jmeter MCP Server alternatives
View more →Similar mcp servers in Security & Testing, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.
| Name | Stars | Licence | Last updated | Scan |
|---|---|---|---|---|
| Jmeter MCP Server (this page) juliodelimas | 94 | MIT | Sep 22, 2026 | Scanned, no flagged issues |
| Hexstrike AI 0x4m4 | 13k | MIT | Aug 3, 2026 | Scanned, no flagged issues |
| Viper FunnyWolf | 5.3k | None found | May 31, 2026 | Not scanned yet |
| Open Ontologies fabio-rovai | 2.7k | MIT | Oct 30, 2026 | Scanned, no flagged issues |
| Qu1cksc0pe CYB3RMX | 2.1k | GPL-3.0 | Sep 18, 2026 | Scanned, no flagged issues |
| Cve MCP Server mukul975 | 1.7k | Apache-2.0 | Oct 1, 2026 | Scanned, no flagged issues |