{"id":27150187,"url":"https://github.com/qainsights/jmeter-mcp-server","last_synced_at":"2025-07-05T14:36:08.738Z","repository":{"id":285013737,"uuid":"956608147","full_name":"QAInsights/jmeter-mcp-server","owner":"QAInsights","description":"✨ JMeter Meets AI Workflows: Introducing the JMeter MCP Server! 🤯 ","archived":false,"fork":false,"pushed_at":"2025-06-15T14:06:26.000Z","size":1142,"stargazers_count":27,"open_issues_count":1,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-15T15:13:10.648Z","etag":null,"topics":["apache-jmeter","jmeter","mcp","model-context-protocol-servers","performance"],"latest_commit_sha":null,"homepage":"https://jmeter.ai","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QAInsights.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-28T14:43:51.000Z","updated_at":"2025-06-15T14:06:29.000Z","dependencies_parsed_at":"2025-04-18T02:56:10.160Z","dependency_job_id":"7abcd56b-cc4e-47d4-b20d-e6b1f6e09a35","html_url":"https://github.com/QAInsights/jmeter-mcp-server","commit_stats":null,"previous_names":["qainsights/jmeter-mcp-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/QAInsights/jmeter-mcp-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QAInsights%2Fjmeter-mcp-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QAInsights%2Fjmeter-mcp-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QAInsights%2Fjmeter-mcp-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QAInsights%2Fjmeter-mcp-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QAInsights","download_url":"https://codeload.github.com/QAInsights/jmeter-mcp-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QAInsights%2Fjmeter-mcp-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263755889,"owners_count":23506474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache-jmeter","jmeter","mcp","model-context-protocol-servers","performance"],"created_at":"2025-04-08T13:53:59.280Z","updated_at":"2025-07-05T14:36:08.732Z","avatar_url":"https://github.com/QAInsights.png","language":"Python","funding_links":[],"categories":["Other Tools and Integrations"],"sub_categories":["How to Submit"],"readme":"# 🚀 JMeter MCP Server\n\nThis is a Model Context Protocol (MCP) server that allows executing JMeter tests through MCP-compatible clients and analyzing test results.\n\n\u003e [!IMPORTANT]\n\u003e 📢 Looking for an AI Assistant inside JMeter? 🚀\n\u003e Check out [Feather Wand](https://jmeter.ai)\n\n![Anthropic](./images/Anthropic-MCP.png)\n![Cursor](./images/Cursor.png)\n![Windsurf](./images/Windsurf.png)\n\n## 📋 Features\n\n### JMeter Execution\n- 📊 Execute JMeter tests in non-GUI mode\n- 🖥️ Launch JMeter in GUI mode\n- 📝 Capture and return execution output\n- 📊 Generate JMeter report dashboard\n\n### Test Results Analysis\n- 📈 Parse and analyze JMeter test results (JTL files)\n- 📊 Calculate comprehensive performance metrics\n- 🔍 Identify performance bottlenecks automatically\n- 💡 Generate actionable insights and recommendations\n- 📊 Create visualizations of test results\n- 📑 Generate HTML reports with analysis results\n\n## 🛠️ Installation\n\n### Local Installation\n\n1. Install [`uv`](https://github.com/astral-sh/uv):\n\n2. Ensure JMeter is installed on your system and accessible via the command line.\n\n⚠️ **Important**: Make sure JMeter is executable. You can do this by running:\n\n```bash\nchmod +x /path/to/jmeter/bin/jmeter\n```\n\n3. Install required Python dependencies:\n\n```bash\npip install numpy matplotlib\n```\n\n4. Configure the `.env` file, refer to the `.env.example` file for details.\n\n```bash\n# JMeter Configuration\nJMETER_HOME=/path/to/apache-jmeter-5.6.3\nJMETER_BIN=${JMETER_HOME}/bin/jmeter\n\n# Optional: JMeter Java options\nJMETER_JAVA_OPTS=\"-Xms1g -Xmx2g\"\n```\n\n### 💻 MCP Usage\n\n1. Connect to the server using an MCP-compatible client (e.g., Claude Desktop, Cursor, Windsurf)\n\n2. Send a prompt to the server:\n\n```\nRun JMeter test /path/to/test.jmx\n```\n\n3. MCP compatible client will use the available tools:\n\n#### JMeter Execution Tools\n- 🖥️ `execute_jmeter_test`: Launches JMeter in GUI mode, but doesn't execute test as per the JMeter design\n- 🚀 `execute_jmeter_test_non_gui`: Execute a JMeter test in non-GUI mode (default mode for better performance)\n\n#### Test Results Analysis Tools\n- 📊 `analyze_jmeter_results`: Analyze JMeter test results and provide a summary of key metrics and insights\n- 🔍 `identify_performance_bottlenecks`: Identify performance bottlenecks in JMeter test results\n- 💡 `get_performance_insights`: Get insights and recommendations for improving performance\n- 📈 `generate_visualization`: Generate visualizations of JMeter test results\n\n## 🏗️ MCP Configuration\n\nAdd the following configuration to your MCP client config:\n\n```json\n{\n    \"mcpServers\": {\n      \"jmeter\": {\n        \"command\": \"/path/to/uv\",\n        \"args\": [\n          \"--directory\",\n          \"/path/to/jmeter-mcp-server\",\n          \"run\",\n          \"jmeter_server.py\"\n        ]\n      }\n    }\n}\n```\n\n## ✨ Use Cases\n\n### Test Execution\n- Run JMeter tests in non-GUI mode for better performance\n- Launch JMeter in GUI mode for test development\n- Generate JMeter report dashboards\n\n### Test Results Analysis\n- Analyze JTL files to understand performance characteristics\n- Identify performance bottlenecks and their severity\n- Get actionable recommendations for performance improvements\n- Generate visualizations for better understanding of results\n- Create comprehensive HTML reports for sharing with stakeholders\n\n## 🛑 Error Handling\n\nThe server will:\n\n- Validate that the test file exists\n- Check that the file has a .jmx extension\n- Validate that JTL files exist and have valid formats\n- Capture and return any execution or analysis errors\n\n## 📊 Test Results Analyzer\n\nThe Test Results Analyzer is a powerful feature that helps you understand your JMeter test results better. It consists of several components:\n\n### Parser Module\n- Supports both XML and CSV JTL formats\n- Efficiently processes large files with streaming parsers\n- Validates file formats and handles errors gracefully\n\n### Metrics Calculator\n- Calculates overall performance metrics (average, median, percentiles)\n- Provides endpoint-specific metrics for detailed analysis\n- Generates time series metrics to track performance over time\n- Compares metrics with benchmarks for context\n\n### Bottleneck Analyzer\n- Identifies slow endpoints based on response times\n- Detects error-prone endpoints with high error rates\n- Finds response time anomalies and outliers\n- Analyzes the impact of concurrency on performance\n\n### Insights Generator\n- Provides specific recommendations for addressing bottlenecks\n- Analyzes error patterns and suggests solutions\n- Generates insights on scaling behavior and capacity limits\n- Prioritizes recommendations based on potential impact\n\n### Visualization Engine\n- Creates time series graphs showing performance over time\n- Generates distribution graphs for response time analysis\n- Produces endpoint comparison charts for identifying issues\n- Creates comprehensive HTML reports with all analysis results\n\n## 📝 Example Usage\n\n```\n# Run a JMeter test and generate a results file\nRun JMeter test sample_test.jmx in non-GUI mode and save results to results.jtl\n\n# Analyze the results\nAnalyze the JMeter test results in results.jtl and provide detailed insights\n\n# Identify bottlenecks\nWhat are the performance bottlenecks in the results.jtl file?\n\n# Get recommendations\nWhat recommendations do you have for improving performance based on results.jtl?\n\n# Generate visualizations\nCreate a time series graph of response times from results.jtl\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqainsights%2Fjmeter-mcp-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqainsights%2Fjmeter-mcp-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqainsights%2Fjmeter-mcp-server/lists"}