Skip to main content
Glama
juliodelimas

jmeter-mcp-server

by juliodelimas

add_loop_controller

Adds a loop controller to a JMeter test plan so child samplers repeat a set number of times or indefinitely, enabling iterative load testing scenarios.

Instructions

Add 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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoLoop Controller
loopsNoNumber of iterations, or -1 to loop forever
planIdYes
parentIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.5

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the disclosure burden. It does reveal the key non-obvious behavior: samplers under the controller repeat for the specified loop count each time the controller is reached. However, it does not state whether the plan is modified immediately, how invalid parents are handled, or what the return value is.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler: it leads with the action and target element, then explains the child-sampler repeat behavior. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple element-adding tool, the description covers placement and behavior, and the schema provides defaults and the -1 infinite-loop semantics. It is less complete on the required planId parameter and on return/error behavior, and with no output schema or annotations those gaps are not filled elsewhere. Overall it is adequate but not fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for parentId ('under the given parent') and loops ('repeat for the given number of loops'), but planId—a required parameter—is never described or contextualized. With schema description coverage at only 25%, the description only partially compensates for missing parameter documentation; name is also left to its default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add a Loop Controller'), the placement ('under the given parent'), and the resulting repeat behavior of child samplers. It is immediately recognizable among the many add_*_controller siblings by resource type and loop semantics. It does not explicitly contrast it with sibling controllers, so it falls just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful placement context ('under the given parent, usually a Thread Group') and behavioral context (child samplers repeat by the loop count each time the controller is reached). This helps an agent decide when to pick this controller tool. It does not mention when not to use it or name an alternative controller.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.