Skip to main content
Glama
Narasimhakatta

JMeter MCP Server

πŸš€ JMeter MCP Server

This is a Model Context Protocol (MCP) server that allows executing JMeter tests through MCP-compatible clients.

IMPORTANT

πŸ“’ Looking for an AI Assistant inside JMeter? πŸš€ Check outFeather Wand

Anthropic Cursor Windsurf

πŸ“‹ Features

  • πŸ“Š Execute JMeter tests in non-GUI mode

  • πŸ–₯️ Launch JMeter in GUI mode

  • πŸ“ Capture and return execution output

Related MCP server: JMeter MCP Server

πŸ› οΈ Installation

Local Installation

  1. Install uv:

  2. Ensure JMeter is installed on your system and accessible via the command line.

⚠️ Important: Make sure JMeter is executable. You can do this by running:

chmod +x /path/to/jmeter/bin/jmeter
  1. Configure the .env file, refer to the .env.example file for details.

# JMeter Configuration
JMETER_HOME=/path/to/apache-jmeter-5.6.3
JMETER_BIN=${JMETER_HOME}/bin/jmeter

# Optional: JMeter Java options
JMETER_JAVA_OPTS="-Xms1g -Xmx2g"

πŸ’» MCP Usage

  1. Connect to the server using an MCP-compatible client (e.g., Claude Desktop, Cursor, Windsurf)

  2. Send a prompt to the server:

Run JMeter test /path/to/test.jmx
  1. MCP compatible client will use the available tools:

    • πŸ–₯️ execute_jmeter_test: Launches JMeter in GUI mode, but doesn't execute test as per the JMeter design

    • πŸš€ execute_jmeter_test_non_gui: Execute a JMeter test in non-GUI mode (default mode for better performance)

πŸ—οΈ MCP Configuration

Add the following configuration to your MCP client config:

{
    "mcpServers": {
      "jmeter": {
        "command": "/path/to/uv",
        "args": [
          "--directory",
          "/path/to/jmeter-mcp-server",
          "run",
          "jmeter_server.py"
        ]
      }
    }
}

✨ Use case

LLM powered result analysis: Collect and analyze test results.

Debugging: Execute tests in non-GUI mode for debugging.

πŸ›‘ Error Handling

The server will:

  • Validate that the test file exists

  • Check that the file has a .jmx extension

  • Capture and return any execution errors

Available Tools

2 tools
execute_jmeter_testB

Execute a JMeter test.

Args: test_file: Path to the JMeter test file (.jmx) gui_mode: Whether to run in GUI mode (default: False)

ParametersJSON Schema
NameRequiredDescriptionDefault
test_fileYes
gui_modeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions GUI mode but doesn't disclose execution behavior (e.g., blocking vs. async, output location, error handling, or system requirements). This is inadequate for a tool that likely performs system-level operations.

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

Conciseness4/5

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

The description is front-loaded with the core purpose, followed by parameter explanations in a structured 'Args:' section. It's efficient with no wasted sentences, though the parameter details could be more integrated.

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?

Given the tool's complexity (executing external tests), no annotations, and an output schema (which reduces need to describe returns), the description is minimally complete. It covers what the tool does and parameters but misses critical context like execution environment, side effects, or error scenarios.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds basic meaning for both parameters (test_file path and gui_mode boolean with default), but lacks details like file format expectations, GUI mode implications, or path resolution. This partially addresses the schema gap but remains vague.

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 verb ('Execute') and resource ('JMeter test'), making the purpose immediately understandable. It distinguishes from the sibling tool 'execute_jmeter_test_non_gui' by mentioning GUI mode as an option, though not explicitly contrasting them.

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

Usage Guidelines3/5

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

The description implies usage through the mention of GUI mode and the sibling tool name, suggesting this tool can run tests in either GUI or non-GUI mode. However, it lacks explicit guidance on when to use this vs. the sibling tool or any prerequisites.

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

execute_jmeter_test_non_guiC

Execute a JMeter test in non-GUI mode.

Args: test_file: Path to the JMeter test file (.jmx)

ParametersJSON Schema
NameRequiredDescriptionDefault
test_fileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool executes a test but doesn't describe what happens during execution (e.g., runs the test, generates reports, returns results), potential side effects, or any constraints like performance impacts or error handling. This leaves significant gaps for a tool that performs an action.

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

Conciseness4/5

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

The description is brief and front-loaded with the main purpose, followed by parameter details in a clear 'Args:' section. There's no wasted text, but it could be slightly more informative without losing conciseness.

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?

Given the tool has an output schema (which should cover return values), no annotations, and low complexity (1 parameter), the description is minimally complete. It explains what the tool does and the parameter, but lacks behavioral details and usage context, making it adequate but with clear gaps.

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

Parameters3/5

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

The description adds the parameter 'test_file' and specifies it's a 'Path to the JMeter test file (.jmx)', which provides meaning beyond the schema's basic 'string' type. However, with 0% schema description coverage and only 1 parameter, this is adequate but minimal; it doesn't elaborate on path format or validation, so it meets the baseline for low coverage.

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 ('Execute a JMeter test') and specifies the mode ('in non-GUI mode'), which distinguishes it from the sibling tool 'execute_jmeter_test' that presumably runs in GUI mode. However, it doesn't explicitly contrast with the sibling, so it's not a perfect 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus its sibling 'execute_jmeter_test'. It mentions the non-GUI mode but doesn't explain why or when this mode is preferable, nor does it mention any prerequisites or alternatives.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updates
    • First observedexecute_jmeter_test
    • First observedexecute_jmeter_test_non_gui

TDQS

C2.7/5.0
Disambiguation1/5

The two tools are essentially identical in purposeβ€”both execute JMeter testsβ€”with the only difference being that one explicitly specifies non-GUI mode while the other offers it as an optional parameter. This creates significant ambiguity, as an agent would struggle to choose between them for the same core task, leading to potential misselection.

Naming Consistency4/5

The tool names follow a consistent verb_noun pattern (execute_jmeter_test and execute_jmeter_test_non_gui), which is clear and predictable. However, the redundancy in naming (both starting with 'execute_jmeter_test') slightly detracts from optimal consistency, though the pattern remains largely intact.

Tool Count2/5

With only two tools, the server feels severely under-scoped for a JMeter domain, which typically involves test creation, management, reporting, and analysis. This minimal set limits functionality and suggests incomplete coverage, making it inappropriate for comprehensive use.

Completeness1/5

The tool surface is extremely incomplete for a JMeter server, lacking essential operations such as creating, editing, listing, or deleting tests, generating reports, or managing test environments. This gap will likely cause agent failures when attempting broader JMeter-related tasks beyond basic execution.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Narasimhakatta/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server