Advanced MCP server for JMeter performance test analysis with 14 comprehensive tools
Project description
JMeter MCP Server - Advanced Edition
Package: jmeter-mcp-server v2.0.0 | Status: โ Published on PyPI | Date: January 27, 2026
๐ Quick Start
What is This?
An advanced MCP (Model Context Protocol) server with 14 comprehensive tools for analyzing, correlating, and enhancing JMeter performance test plans. Works seamlessly with Autogen, Claude, GPT-4, and any LLM via MCP protocol.
Installation & Usage
# Install from PyPI
pip install jmeter-mcp-server
# Run the server
jmeter-mcp
# Use with Autogen
from autogen_ext.models.openai import AzureOpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpWorkbench, StdioServerParams
from autogen_agentchat.agents import AssistantAgent
server_params = StdioServerParams(
command="python",
args=["-m", "jmeter_mcp.cli"]
)
async with McpWorkbench(server_params) as workbench:
agent = AssistantAgent(
name="jmeter_analyst",
model_client=model_client,
workbench=workbench,
system_message="You are a JMeter performance testing expert."
)
๐ฆ Package Contents
Source Code
jmeter_mcp/
โโโ __init__.py Package metadata
โโโ cli.py MCP server entry point
โโโ jmeter_adva_mcp_o_14_Aug_25.py Advanced server (2593 lines, 14 tools)
Configuration
pyproject.toml Package config (PEP 517/518)
LICENSE MIT License
README.md This documentation
๐ง Available Tools (14 Advanced Tools)
1. run_test
Run a JMeter test plan with specified users and settings.
Input:
jmx_path(string): Path to the JMX test plan fileusers(integer): Number of concurrent usersramp_time(integer, optional): Ramp-up time in secondsduration(integer, optional): Test duration in seconds
Output: Test execution results and metrics
2. analyze_results
Analyze the results from a JTL (JMeter Test Log) file.
Input: jtl_path (string): Path to the JTL results file
Output: Performance metrics (response times, throughput, error rates)
3. analyze_any_log_file
Analyze any log file to extract insights and metrics.
Input: log_path (string): Path to any log file
Output: Extracted insights and analysis results
4. generate_analysis_report
Generate a comprehensive analysis report from a log file.
Input:
log_path(string): Path to the log fileoutput_path(string, optional): Path for the output report
Output: Detailed analysis report with charts and metrics
5. detect_log_format
Auto-detects log format with confidence score.
Input: log_path (string): Path to the log file
Output: Format type and confidence (jmeter_jtl, performance_csv, etc.)
6. analyze_easytravel_traces
Analyze EasyTravel CSV trace files for performance insights.
Input:
csv_path(string): Path to the EasyTravel CSV trace fileapplication_name(string, optional): Application name for filtering
Output: Extracted traces and performance metrics
7. correlate_jmeter_files
Run full JMeter correlation workflow to identify and add dynamic value extractors between XML logs and a JMX file.
Input:
jmx_path(string): Path to the JMX test planxml1_path(string): Path to the first XML execution logxml2_path(string): Path to the second XML execution logoutput_path(string, optional): Path for the updated JMX file
Output: Updated JMX file with dynamic value extractors added
8. parse_jmeter_xml_samples
Parse JMeter XML log file and extract sample data.
Input: xml_path (string): Path to the XML log file
Output: Parsed sample data with timestamps, response codes, and times
9. find_jmeter_dynamic_values
Find dynamic values between two JMeter XML execution logs.
Input:
xml1_path(string): Path to the first XML logxml2_path(string): Path to the second XML log
Output: List of dynamic values that changed between executions
10. add_regex_extractor_to_jmx
Add a Regular Expression Extractor to a specific sampler in a JMX file.
Input:
jmx_path(string): Path to the JMX filevariable_name(string): Name of the variable to extractregex(string): Regular expression patternsampler_name(string): Name of the sampleroutput_path(string, optional): Path for the modified JMX file
Output: Updated JMX file with regex extractor added
11. add_dynatrace_headers
Add Dynatrace headers to all HTTP requests in a JMX file.
Input:
jmx_path(string): Path to the JMX fileapplication_name(string): Application name for the headerstransaction_controller_name(string): Transaction controller nameoutput_path(string, optional): Output path for the updated JMX file
Output: Updated JMX file with Dynatrace headers
12. auto_tag_dynatrace_headers
Automatically add Dynatrace headers with auto-detected transaction controllers.
Input:
jmx_path(string): Path to the JMX fileapplication_name(string): Application nameoutput_path(string, optional): Output path for the modified JMX file
Output: Updated JMX file with auto-tagged Dynatrace headers
13. batch_analyze_logs
Analyze multiple log files matching given patterns.
Input:
file_patterns(array): List of file patterns to matchoutput_dir(string, optional): Directory to save analysis results
Output: Analysis results for all matched files
14. correlate_complex_scopes
Handle complex correlation scenarios with multiple scopes and transaction controllers.
Input:
jmx_path(string): Path to the JMX filecorrelation_rules(array): List of correlation rulesoutput_path(string, optional): Output path for the modified JMX file
Output: Updated JMX file with complex correlations applied
๐ Why jmeter-mcp-server?
Powerful Analysis
- Analyze JMeter test results and generate comprehensive reports
- Detect performance issues and bottlenecks
- Support for multiple log formats (JTL, CSV, and more)
Intelligent Correlation
- Automatically find dynamic values between test executions
- Add regex extractors to handle variable data
- Support for complex correlation scenarios
Monitoring Integration
- Add Dynatrace headers for APM integration
- Auto-detect transaction controllers
- Support for advanced monitoring setups
Seamless Integration
- Works with any LLM via MCP protocol (Claude, GPT-4, etc.)
- Native Autogen support
- Easy deployment and scaling
๐ Installation
From PyPI (Recommended)
pip install jmeter-mcp-server
# Start the server
jmeter-mcp
From Source
git clone https://github.com/jeswanth/jmeter-mcp-server.git
cd jmeter-mcp-server
pip install -e .
jmeter-mcp
๐ก Usage Examples
Example 1: Analyze Test Results
import asyncio
from autogen_ext.tools.mcp import McpWorkbench, StdioServerParams
from autogen_agentchat.agents import AssistantAgent
async def analyze_test():
server_params = StdioServerParams(
command="python",
args=["-m", "jmeter_mcp.cli"]
)
async with McpWorkbench(server_params) as workbench:
agent = AssistantAgent(
name="analyst",
workbench=workbench,
)
result = await agent.run(
task="Analyze the results from results.jtl and tell me the error rate"
)
print(result.messages[-1].content)
asyncio.run(analyze_test())
Example 2: Find Dynamic Values
# Use the find_jmeter_dynamic_values tool to compare two test runs
task = "Compare test_run_1.xml and test_run_2.xml to find dynamic values that changed"
Example 3: Add Correlation
# Use the correlate_jmeter_files tool to automatically add extractors
task = """
Use the correlate_jmeter_files tool to:
1. Compare Test1.xml and Test2.xml
2. Find dynamic values
3. Add regex extractors to my_test_plan.jmx
"""
๐ Requirements
-
Python: 3.9 or higher
-
Core Dependencies:
- mcp >= 1.0.0
- fastmcp >= 0.1.0
- pandas >= 2.0.0
- numpy >= 1.24.0
- lxml >= 4.9.0
-
Optional Dependencies:
analysis: matplotlib, seaborn, scipy, scikit-learnautogen: pyautogen, autogen-agentchat, autogen-ext, openai, tiktoken
๏ฟฝ Updates & Releases
Version 2.0.0 (Current)
- โ 14 advanced tools for comprehensive JMeter analysis
- โ Full MCP protocol support
- โ Autogen integration
- โ Multiple format support
- โ Complex correlation handling
๐ Documentation
- PyPI: https://pypi.org/project/jmeter-mcp-server/
- GitHub: https://github.com/jeswanth/jmeter-mcp-server
- MCP Protocol: https://modelcontextprotocol.io
๐ค Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
๏ฟฝ License
MIT License - See LICENSE file for details
๐ค Author
Jeswanth
Email: jeswanth@capgemini.com
๐ Support
- Open an issue on GitHub
- Check the documentation
- Review tool examples
Last Updated: January 27, 2026
Package Version: 2.0.0
๐ Constraints & Features
| Constraint | Status | Details |
|---|---|---|
| Stdio-only MCP | โ | JSON-RPC 2.0 over stdin/stdout |
| No HTTP/FastAPI | โ | Pure stdio, no web framework |
| Stateless operation | โ | Parameter-driven, no session state |
| No file I/O | โ | All data via JSON parameters |
| Logs to stderr | โ | stream=sys.stderr configured |
| Works with pipx run | โ | Entry point registered & tested |
| Free publication | โ | PyPI hosts packages free |
๐ Folder Structure
jmeter-mcp-package/
โโโ jmeter_mcp/ Python package
โ โโโ __init__.py
โ โโโ cli.py
โโโ dist/ Build artifacts
โ โโโ jmeter_mcp-1.0.0-py3-none-any.whl
โ โโโ jmeter_mcp-1.0.0.tar.gz
โโโ pyproject.toml Modern package config
โโโ LICENSE MIT License
โโโ verify.py Verification script
โโโ README.md This complete guide
๐ฌ Publishing Workflow
1. Update pyproject.toml metadata (2 min)
โ
2. Create PyPI account (5 min)
โ
3. Generate & save API token (2 min)
โ
4. Run: python -m twine upload dist/* (1 min)
โ
5. Wait 5-10 minutes for PyPI indexing
โ
6. Test: pipx install jmeter-mcp
โ
โ
PUBLISHED!
๐ Use Cases
Performance Analysis
# Analyze JMeter test results
pipx run jmeter-mcp
With Claude/Autogen
# Analyze logs with AI assistance
agent.chat("Analyze this JMeter result and find issues")
CI/CD Integration
# In GitHub Actions or Jenkins
pipx run jmeter-mcp < test_results.csv
๐ Quick Links
| Link | Purpose |
|---|---|
| https://pypi.org | Python Package Index |
| https://pypi.org/account/register/ | Create PyPI account |
| https://modelcontextprotocol.io | MCP specification |
| https://microsoft.github.io/autogen/ | Autogen documentation |
โจ Next Steps
- Review this guide
- Update
pyproject.tomlwith your name/email - Verify everything:
python verify.py - Create free PyPI account
- Publish:
python -m twine upload dist/* - Test:
pipx install jmeter-mcp
๐ License
MIT License - Free to use, modify, and distribute
Status: โ Production Ready | Created: January 27, 2026
Ready to publish? Update pyproject.toml and run: python -m twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jmeter_mcp_server-2.0.1.tar.gz.
File metadata
- Download URL: jmeter_mcp_server-2.0.1.tar.gz
- Upload date:
- Size: 32.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94a2a5b5c03bc62940adfa90b84cf8b5484b358aaa3c86c6afe31e5112fc4786
|
|
| MD5 |
83219f9bf789aabe67f9caed62e95e7c
|
|
| BLAKE2b-256 |
44f5b2665ad84b1228bd4211cdc96a40fc8300d03ae4f992f67b88a0b40025a6
|
File details
Details for the file jmeter_mcp_server-2.0.1-py3-none-any.whl.
File metadata
- Download URL: jmeter_mcp_server-2.0.1-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
174bc80479653f294727855db8faaa04432937fb43d9c0c7dc555fa1381a65a7
|
|
| MD5 |
329073054be56826314994a01cb9192e
|
|
| BLAKE2b-256 |
ed5673d3185afea1178a1e719ea1f0ad84ed63230b1a45589b19690f375500ab
|