Skip to main content
Glama

🚀 JMeter MCP 서버

이는 MCP 호환 클라이언트를 통해 JMeter 테스트를 실행할 수 있게 해주는 MCP(Model Context Protocol) 서버입니다.

[!중요] 📢 JMeter에서 AI 어시스턴트를 찾고 계신가요? 🚀 Feather Wand를 확인해 보세요.

인류학적커서윈드서핑

📋 특징

  • 📊 GUI가 아닌 모드에서 JMeter 테스트 실행

  • 🖥️ GUI 모드에서 JMeter 실행

  • 📝 실행 출력을 캡처하고 반환합니다.

Related MCP server: MCP Server

🛠️ 설치

로컬 설치

  1. uv 설치 :

  2. JMeter가 시스템에 설치되어 있고 명령줄을 통해 접근할 수 있는지 확인하세요.

⚠️ 중요 : JMeter가 실행 가능한지 확인하세요. 다음을 실행하여 실행할 수 있습니다.

지엑스피1

  1. .env 파일을 구성합니다. 자세한 내용은 .env.example 파일을 참조하세요.

# 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 사용법

  1. MCP 호환 클라이언트(예: Claude Desktop, Cursor, Windsurf)를 사용하여 서버에 연결합니다.

  2. 서버에 프롬프트를 보냅니다.

Run JMeter test /path/to/test.jmx
  1. MCP 호환 클라이언트는 다음 도구를 사용합니다.

    • 🖥️ execute_jmeter_test : GUI 모드에서 JMeter를 시작하지만 JMeter 설계에 따라 테스트를 실행하지 않습니다.

    • 🚀 execute_jmeter_test_non_gui : GUI가 아닌 모드에서 JMeter 테스트를 실행합니다(더 나은 성능을 위한 기본 모드)

🏗️ MCP 구성

MCP 클라이언트 구성에 다음 구성을 추가하세요.

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

✨ 사용 사례

LLM 기반 결과 분석: 시험 결과를 수집하고 분석합니다.

디버깅: 디버깅을 위해 GUI 모드가 아닌 모드에서 테스트를 실행합니다.

🛑 오류 처리

서버는 다음을 수행합니다.

  • 테스트 파일이 존재하는지 확인하세요

  • 파일의 확장자가 .jmx인지 확인하세요

  • 실행 오류를 캡처하여 반환합니다.

Available Tools

6 tools
analyze_jmeter_resultsC

Analyze JMeter test results and provide a summary of key metrics and insights.

Args: jtl_file: Path to the JTL file containing test results detailed: Whether to include detailed analysis (default: False)

Returns: str: Analysis results in a formatted string

ParametersJSON Schema
NameRequiredDescriptionDefault
detailedNo
jtl_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?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool analyzes results and returns a formatted string, but lacks details on permissions, rate limits, error handling, or whether it modifies data. For a tool with no annotations, this is insufficient to inform safe and effective usage.

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 appropriately sized and front-loaded, with the core purpose stated first, followed by parameter and return value sections. Each sentence adds value, but the structure could be slightly improved by integrating usage context. Overall, it is efficient with minimal waste.

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 (2 parameters, no annotations, but with an output schema), the description is moderately complete. It explains the purpose and parameters but lacks behavioral details and usage guidelines. The output schema indicates returns are a string, so the description need not elaborate on return values, but overall gaps remain in guiding effective tool selection and invocation.

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 meaning by explaining 'jtl_file' as 'Path to the JTL file containing test results' and 'detailed' as 'Whether to include detailed analysis (default: False)', which clarifies their roles beyond the schema's basic types. However, it does not cover all potential nuances, such as file format requirements or what 'detailed' entails specifically.

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 tool's purpose: 'Analyze JMeter test results and provide a summary of key metrics and insights.' It specifies the verb ('analyze') and resource ('JMeter test results'), but does not explicitly differentiate it from sibling tools like 'get_performance_insights' or 'identify_performance_bottlenecks', which might have overlapping purposes. This makes it clear but not fully distinct from alternatives.

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 siblings. It mentions analyzing JMeter results but does not specify scenarios, prerequisites, or exclusions compared to tools like 'generate_visualization' or 'get_performance_insights'. Without such context, users might struggle to select the appropriate tool among similar options.

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

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) properties: Dictionary of JMeter properties to pass with -J (default: None)

ParametersJSON Schema
NameRequiredDescriptionDefault
gui_modeNo
propertiesNo
test_fileYes

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 for behavioral disclosure. It mentions GUI mode and properties passing, but doesn't cover critical aspects like execution environment requirements, error handling, output format, or whether this is a blocking/long-running operation. For a test execution tool with zero annotation coverage, this is insufficient.

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 perfectly structured: a clear purpose statement followed by well-organized parameter documentation. Every sentence earns its place, and the information is front-loaded with the most important details first.

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 handles return values), 3 parameters with 0% schema coverage, and no annotations, the description does an adequate job documenting parameters but lacks behavioral context. For a test execution tool, it should mention what happens during execution and what kind of results to expect.

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

Parameters4/5

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

The description provides clear parameter documentation in the Args section, explaining what each parameter does. With 0% schema description coverage, this description fully compensates by documenting all 3 parameters with their purposes and defaults, adding significant value beyond the bare schema.

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 the resource 'JMeter test', making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'execute_jmeter_test_non_gui', which appears to be a more specific version of this tool.

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 alternatives like 'execute_jmeter_test_non_gui' or other sibling tools. There's no mention of prerequisites, typical use cases, or when to choose GUI vs non-GUI mode.

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_guiB

Execute a JMeter test in non-GUI mode - supports JMeter properties.

Args: test_file: Path to the JMeter test file (.jmx) properties: Dictionary of JMeter properties to pass with -J (default: None) generate_report: Whether to generate report dashboard after load test (default: False) report_output_dir: Output folder for report dashboard (default: None) log_file: Name of JTL file to log sample results to (default: None)

ParametersJSON Schema
NameRequiredDescriptionDefault
generate_reportNo
log_fileNo
propertiesNo
report_output_dirNo
test_fileYes

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 the full burden of behavioral disclosure. It mentions that the tool 'supports JMeter properties' and describes default values for parameters, but lacks critical behavioral details such as execution time, resource requirements, error handling, output format (though an output schema exists), or whether it's a long-running or blocking operation. For a tool that executes load tests, this is a significant gap.

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 efficiently structured with a clear opening sentence stating the purpose, followed by a well-organized 'Args:' section listing each parameter with concise explanations. Every sentence earns its place, and there is no redundant or verbose content. It's appropriately sized for a tool with multiple parameters.

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 complexity of executing a JMeter test (a non-trivial operation with 5 parameters, nested objects, and an output schema), the description is partially complete. It covers parameters well but lacks behavioral context (e.g., execution characteristics, prerequisites). The presence of an output schema reduces the need to describe return values, but overall, the description doesn't fully address the tool's operational context, especially with no annotations to supplement it.

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

Parameters4/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 fully compensate. It successfully documents all 5 parameters with clear explanations of their purposes, default values, and formats (e.g., 'Path to the JMeter test file (.jmx)', 'Dictionary of JMeter properties to pass with -J'). The description adds substantial meaning beyond the bare schema, though it could benefit from examples or constraints (e.g., file path formats).

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 in non-GUI mode') and the resource ('JMeter test file'), making the purpose immediately understandable. It distinguishes from the sibling 'execute_jmeter_test' by specifying 'non-GUI mode', though it doesn't explicitly contrast with other siblings like 'analyze_jmeter_results' or 'generate_visualization'.

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 alternatives. It doesn't mention when to choose non-GUI mode over GUI mode (implied by the sibling 'execute_jmeter_test'), or how it relates to other siblings like 'analyze_jmeter_results' or 'generate_visualization'. Usage context is entirely absent.

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

generate_visualizationC

Generate visualizations of JMeter test results.

Args: jtl_file: Path to the JTL file containing test results visualization_type: Type of visualization to generate (time_series, distribution, comparison, html_report) output_file: Path to save the visualization

Returns: str: Path to the generated visualization file

ParametersJSON Schema
NameRequiredDescriptionDefault
jtl_fileYes
output_fileYes
visualization_typeYes

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?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions generating visualizations and returning a file path, but lacks details on permissions, file system interactions, error handling, or performance characteristics. For a tool with 3 parameters and no annotation coverage, this is a significant gap.

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 well-structured and appropriately sized. It starts with a clear purpose statement, followed by parameter and return value sections. Each sentence adds value without redundancy. Minor improvements could include briefer formatting, but it's efficient overall.

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 3 parameters with 0% schema coverage and no annotations, the description provides basic parameter semantics and mentions the return value. However, it lacks behavioral context (e.g., side effects, error cases) and doesn't fully compensate for the missing schema details. The output schema exists, so return values are covered, but overall completeness is moderate.

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 schema provides no parameter details. The description compensates by listing all 3 parameters with brief explanations (e.g., 'Path to the JTL file', 'Type of visualization to generate'). However, it doesn't elaborate on allowed values for 'visualization_type' or file format expectations, leaving gaps.

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 tool's purpose: 'Generate visualizations of JMeter test results.' It specifies the verb ('generate') and resource ('visualizations of JMeter test results'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'analyze_jmeter_results' or 'get_performance_insights', which might also involve result processing.

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 alternatives. It doesn't mention sibling tools like 'analyze_jmeter_results' or 'get_performance_insights', nor does it specify prerequisites (e.g., needing a JTL file from a completed test). Usage is implied but not explicitly stated.

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

get_performance_insightsC

Get insights and recommendations for improving performance based on JMeter test results.

Args: jtl_file: Path to the JTL file containing test results

Returns: str: Performance insights and recommendations in a formatted string

ParametersJSON Schema
NameRequiredDescriptionDefault
jtl_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?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns 'insights and recommendations in a formatted string,' which gives some output context, but lacks details on permissions, rate limits, error handling, or whether it's read-only/destructive. For a tool with no annotation coverage, this leaves significant behavioral gaps.

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 appropriately sized and front-loaded: the first sentence clearly states the purpose, followed by structured 'Args' and 'Returns' sections. However, the 'Args' and 'Returns' labels are somewhat redundant since the schema and output schema exist, and the content could be more integrated. It's efficient but not perfectly streamlined.

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 1 parameter, 0% schema description coverage, no annotations, and an output schema (which handles return values), the description is moderately complete. It covers the basic purpose and parameter intent, but lacks usage guidelines, behavioral details, and differentiation from siblings. For a simple tool, it's adequate but has clear gaps in context.

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 minimal parameter semantics: it defines 'jtl_file' as 'Path to the JTL file containing test results,' which clarifies the parameter's purpose beyond the schema's basic type. However, with 0% schema description coverage and only 1 parameter, this provides some value but doesn't fully compensate for the lack of schema details (e.g., file format expectations, path validation). The baseline is 3 due to the single parameter, but the description's addition is limited.

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 tool's purpose: 'Get insights and recommendations for improving performance based on JMeter test results.' It specifies the verb ('Get'), resource ('insights and recommendations'), and source ('JMeter test results'). However, it doesn't explicitly differentiate from sibling tools like 'analyze_jmeter_results' or 'identify_performance_bottlenecks', which likely have overlapping functionality.

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 alternatives. With siblings like 'analyze_jmeter_results' and 'identify_performance_bottlenecks' that likely process JMeter results, there's no indication of what distinguishes this tool (e.g., focus on recommendations vs. raw analysis). The only implied context is having JMeter test results, but no explicit when/when-not or alternative tool references.

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

identify_performance_bottlenecksB

Identify performance bottlenecks in JMeter test results.

Args: jtl_file: Path to the JTL file containing test results

Returns: str: Bottleneck analysis results in a formatted string

ParametersJSON Schema
NameRequiredDescriptionDefault
jtl_fileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the input (JTL file) and output (formatted string of bottleneck analysis), but lacks details on how the analysis works (e.g., algorithms used, what constitutes a bottleneck), error handling, performance characteristics, or any side effects. For a tool with no annotation coverage, this is a significant gap in transparency.

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 appropriately sized and front-loaded: the first sentence clearly states the purpose, followed by structured sections for 'Args' and 'Returns' that efficiently document inputs and outputs. Every sentence earns its place with no redundant information, making it easy to scan and understand quickly.

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 (performance analysis with one parameter), no annotations, and an output schema exists (implied by 'Returns: str'), the description is moderately complete. It covers the basic purpose and parameters but lacks behavioral details (e.g., analysis methodology, error cases) and doesn't leverage the output schema to explain return values beyond a generic 'formatted string.' For a tool with no annotations, it should do more to compensate.

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 minimal semantics beyond the input schema: it specifies that 'jtl_file' is a 'Path to the JTL file containing test results,' which clarifies the parameter's purpose. However, with 0% schema description coverage and only one parameter, the baseline is 4 for zero parameters, but here the description compensates somewhat by explaining the parameter's role. It doesn't provide format details (e.g., file path conventions, JTL structure), so it partially compensates but not fully.

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 tool's purpose: 'Identify performance bottlenecks in JMeter test results.' It specifies the verb ('identify') and resource ('performance bottlenecks'), and distinguishes it from siblings like 'analyze_jmeter_results' or 'get_performance_insights' by focusing specifically on bottleneck detection. However, it doesn't explicitly differentiate from all siblings, such as 'generate_visualization' which might also involve performance analysis.

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 alternatives. It doesn't mention prerequisites (e.g., needing a JTL file from a JMeter test), compare it to siblings like 'analyze_jmeter_results' or 'get_performance_insights', or specify contexts where bottleneck identification is preferred over other analyses. Usage is implied but not explicitly stated.

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.

  1. 6 tool updatesv1.0.0
    • First observedanalyze_jmeter_results
    • First observedexecute_jmeter_test
    • First observedexecute_jmeter_test_non_gui
    • First observedgenerate_visualization
    • First observedget_performance_insights
    • First observedidentify_performance_bottlenecks

TDQS

B3.4/5.0

Scored across 6 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between analyze_jmeter_results, get_performance_insights, and identify_performance_bottlenecks, as all three analyze JTL files and provide insights. However, their descriptions differentiate them enough to avoid major confusion.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with clear verb_noun structure, such as analyze_jmeter_results and execute_jmeter_test. The naming is uniform and predictable throughout the set.

Tool Count5/5

With 6 tools, the count is well-scoped for a JMeter server, covering key operations like test execution, result analysis, and visualization. Each tool serves a clear purpose without redundancy.

Completeness4/5

The toolset covers core JMeter workflows including test execution, result analysis, and visualization, but lacks tools for test creation or modification. This minor gap does not severely hinder typical agent tasks.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers