Servidor MCP

JMeter Docs

io.github.QAInsights/jmeter-docs

Qué hace este MCP

Supports Apache JMeter documentation lookup, test-plan conversion and linting, workload calculations, troubleshooting, distributed-test planning, and load-injector tuning.

calculate_workload_model
Calculate Workload Model & Little's Law Sizing
Compute required thread concurrency, pacing delays, ramp-up schedules, and JVM heap recommendations based on target RPS/TPS and SLA response times using Little's Law.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetRps', 'avgResponseTimeMs'], 'properties': {'targetRps': {'type': 'number', 'description': 'Target throughput in requests / transactions per second (RPS/TPS).', 'exclusiveMinimum': 0}, 'thinkTimeMs': {'type': 'number', 'minimum': 0, 'description': 'Think time / user pause between requests in milliseconds (default: 0).'}, 'safetyFactor': {'type': 'number', 'minimum': 1, 'description': 'Headroom safety buffer multiplier (default: 1.25 = 25% buffer).'}, 'avgResponseTimeMs': {'type': 'number', 'description': 'Expected average response time in milliseconds.', 'exclusiveMinimum': 0}, 'testDurationMinutes': {'type': 'number', 'description': 'Steady-state test duration in minutes (default: 10).', 'exclusiveMinimum': 0}}}
convert_curl_or_har_to_jmx
Convert cURL or HAR to JMeter JMX Test Plan
Convert one or more cURL commands or HAR (HTTP Archive 1.2) JSON traces into a valid, production-ready Apache JMeter .jmx test plan XML with HTTP Request Defaults, Header Managers, Cookie Managers, timeouts, and assertions. Supports GET, POST, PUT, DELETE, PATCH, and RFC 9838 QUERY methods.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['input'], 'properties': {'input': {'type': 'string', 'maxLength': 1000000, 'minLength': 1, 'description': 'cURL command string (single, multiline, or batch) or HAR 1.2 JSON text (max 1MB).'}, 'threads': {'type': 'integer', 'maximum': 50000, 'minimum': 1, 'description': 'Thread concurrency / virtual users (default: 1).'}, 'loopCount': {'type': 'integer', 'maximum': 1000000, 'minimum': -1, 'description': 'Loop count (-1 for infinite, default: 1).'}, 'testPlanName': {'type': 'string', 'maxLength': 200, 'description': 'Name of the JMeter Test Plan (default: "cURL Converted Plan").'}, 'rampUpSeconds': {'type': 'integer', 'maximum': 3600, 'minimum': 0, 'description': 'Ramp-up time in seconds (default: 1).'}, 'durationSeconds': {'type': 'integer', 'maximum': 86400, 'minimum': 0, 'description': 'Test duration in seconds (0 = disabled, default: 0).'}, 'parameterizeAuth': {'type': 'boolean', 'description': 'Extract Bearer token into ${AUTH_TOKEN} variable (default: true).'}, 'parameterizeHost': {'type': 'boolean', 'description': 'Extract common host into HTTP Request Defaults and ${BASE_URL} (default: true).'}, 'includeAssertions': {'type': 'boolean', 'description': 'Add HTTP 200/201/204 Response Code assertions (default: true).'}, 'filterStaticAssets': {'type': 'boolean', 'description': 'Filter out images/css/fonts when parsing HAR (default: true).'}, 'includeCookieManager': {'type': 'boolean', 'description': 'Include HTTP Cookie Manager (default: true).'}}}
convert_openapi_to_jmx
Convert OpenAPI / Swagger to JMeter JMX Test Plan
Convert an OpenAPI 3.0/3.1 or Swagger 2.0 document (JSON or YAML) into a JMeter 5.6.3 .jmx test plan: servers become HTTP Request Defaults/${BASE_URL}, path parameters become User Defined Variables, request bodies are sampled from schemas, bearer/basic/apiKey security becomes ${AUTH_TOKEN}/${BASIC_AUTH}/${API_KEY}, with optional method, tag, and deprecated-operation filters.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['input'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 100, 'description': 'Only include operations with one of these tags ("default" = untagged). Empty = all.'}, 'input': {'type': 'string', 'maxLength': 1000000, 'minLength': 1, 'description': 'OpenAPI 3.x or Swagger 2.0 document as JSON or YAML text (max 1MB).'}, 'methods': {'type': 'array', 'items': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE'], 'type': 'string'}, 'description': 'HTTP methods to include (default: GET, POST, PUT, PATCH, DELETE).'}, 'threads': {'type': 'integer', 'maximum': 50000, 'minimum': 1, 'description': 'Thread concurrency / virtual users (default: 10).'}, 'loopCount': {'type': 'integer', 'maximum': 1000000, 'minimum': -1, 'description': 'Loop count (-1 for infinite, default: 1).'}, 'serverIndex': {'type': 'integer', 'maximum': 50, 'minimum': 0, 'description': 'Zero-based index of the OpenAPI server to use (default: 0).'}, 'testPlanName': {'type': 'string', 'maxLength': 200, 'description': 'Name of the JMeter Test Plan.'}, 'maxOperations': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum number of operations to convert (default: 500).'}, 'rampUpSeconds': {'type': 'integer', 'maximum': 3600, 'minimum': 0, 'description': 'Ramp-up time in seconds (default: 5).'}, 'durationSeconds': {'type': 'integer', 'maximum': 86400, 'minimum': 0, 'description': 'Test duration in seconds (0 = disabled, default: 0).'}, 'parameterizeHost': {'type': 'boolean', 'description': 'Extract the common host into HTTP Request Defaults and ${BASE_URL} (default: true).'}, 'useExampleValues': {'type': 'boolean', 'description': 'Substitute example/sample values into path params instead of ${var} variables (default: false).'}, 'includeAssertions': {'type': 'boolean', 'description': 'Add HTTP 200/201/204 Response Code assertions (default: true).'}, 'includeDeprecated': {'type': 'boolean', 'description': 'Include deprecated operations (default: false).'}, 'includeCookieManager': {'type': 'boolean', 'description': 'Include HTTP Cookie Manager (default: true).'}, 'includeOptionalQueryParams': {'type': 'boolean', 'description': 'Include optional query parameters (default: false).'}}}
get_jmeter_page
Read a JMeter documentation page
Fetch the full markdown text of one docs.jmeter.ai page. Accepts the page URL (e.g. https://docs.jmeter.ai/topics/api-load-testing/) or a bare path (e.g. topics/api-load-testing).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'minLength': 1, 'description': 'Page URL or path, e.g. https://docs.jmeter.ai/user-manual/functions/ or user-manual/functions'}}}
get_jsr223_recipe
Get Verified JSR223 Groovy Recipe
Fetch production-ready, performant Groovy scripts for JMeter JSR223 samplers, preprocessors, and postprocessors (e.g., JWT parsing & expiration, HMAC-SHA256 signing, dynamic header injection, nested JSON array extraction, custom CSV failure logging).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'query': {'type': 'string', 'description': 'Filter by keyword or topic (e.g. "jwt", "hmac", "header", "json", "csv", "logging"). If omitted, returns all recipes.'}}}
lint_groovy_script
Lint JMeter Groovy (JSR223) Script
Statically analyze a Groovy script for a JMeter JSR223 element. Flags Thread.sleep, ${var} interpolation, System.out, BeanShell APIs, per-call Random or Pattern.compile, and bindings such as prev, SampleResult, or sampler that the selected element type does not expose; optionally returns ready-to-paste JMX element XML.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['code'], 'properties': {'code': {'type': 'string', 'maxLength': 200000, 'minLength': 1, 'description': 'Groovy script source.'}, 'name': {'type': 'string', 'maxLength': 120, 'description': 'testname for the generated JMX element (default: element label).'}, 'parameters': {'type': 'string', 'maxLength': 2000, 'description': 'Space-separated parameters available through Parameters and args.'}, 'elementType': {'enum': ['JSR223Sampler', 'JSR223PreProcessor', 'JSR223PostProcessor', 'JSR223Assertion', 'JSR223Timer', 'JSR223Listener'], 'type': 'string', 'description': '(default: JSR223PostProcessor)'}, 'includeJmxElement': {'type': 'boolean', 'description': 'Also return the JSR223 element XML with compilation caching enabled (default: true).'}}}
lint_jmx_snippet
Lint JMX Test Plan Snippet
Validate a JMeter test plan XML string or snippet against best practices and performance anti-patterns, and return a structural inventory with thread groups, sampler/listener/assertion counts, HTTP Defaults/Header/Cookie/CSV presence, plugin classes, and JMeter version.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jmxContent'], 'properties': {'jmxContent': {'type': 'string', 'maxLength': 1000000, 'minLength': 1, 'description': 'JMX XML string or test plan snippet to analyze (max 1MB).'}}}
lookup_component
Lookup JMeter Component Reference Page
Find the dedicated reference page for a JMeter test plan component (e.g. "HTTP Request", "JSON Extractor", "Thread Group") and return its full markdown content with properties, defaults, and related guides.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Component name, exact or partial (e.g. "HTTP Request", "JSON Extractor", "CSV Data Set").'}}}
lookup_error_playbook
Lookup Error & Exception Diagnostic Playbook
Get immediate root causes, OS/JVM config fixes, and remediation steps for common JMeter exceptions (e.g. "BindException", "SocketTimeoutException", "OutOfMemoryError", "NoHttpResponseException", "SSLHandshakeException", "401/403 after recording"). When keywords miss, unmatched text is sent to classifier.dev for zero-shot semantic matching (public keyless calls are not stored).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Error message, exception name, or status (e.g. "bindexception", "heap", "timeout", "401").'}, 'classifierApiKey': {'type': 'string', 'description': 'Your own classifier.dev API key for the semantic fallback (anonymous quota is shared); never logged.'}}}
lookup_function
Lookup JMeter Function Reference Page
Find the dedicated reference page for a built-in JMeter function (e.g. "__time", "__Random", "__P") and return its full markdown content with syntax, parameters, and examples.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Function name, with or without leading underscores (e.g. "__time", "time", "__RandomString").'}}}
lookup_jmeter_property
Lookup JMeter Tuning Property
Search or lookup curated JMeter properties (e.g. "httpclient4.idletimeout", "jmeter.save.saveservice.*", "remote_hosts", "summariser"). Returns category, defaults, and recommendations.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Property name or keyword to search (e.g. "ssl", "timeout", "jtl", "influxdb").'}}}
plan_distributed_testing
Plan Distributed Testing Ports & Firewall Rules
Generate Master-Worker RMI port assignments, user.properties, CLI commands, firewall/security group rules, and Docker Compose manifests for distributed load testing.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workerIps'], 'properties': {'mode': {'enum': ['StrippedBatch', 'Statistical', 'Batch', 'Standard'], 'type': 'string', 'description': 'Sample transmission mode (default: "StrippedBatch").'}, 'workerIps': {'type': 'string', 'description': 'Comma or space-separated list of worker / injector IP addresses (e.g. "10.0.1.10, 10.0.1.11, 10.0.1.12").'}, 'disableSsl': {'type': 'boolean', 'description': 'Disable RMI SSL (default: false). Only for isolated labs.'}, 'serverPort': {'type': 'integer', 'maximum': 65535, 'minimum': 1024, 'description': 'RMI registry port on workers (default: 1099).'}, 'environment': {'enum': ['aws', 'azure', 'gcp', 'linux', 'docker', 'k8s'], 'type': 'string', 'description': 'Target infrastructure environment for firewall/CLI rules (default: "aws").'}, 'controllerIp': {'type': 'string', 'description': 'Controller / Master node IP or hostname (default: "10.0.0.5").'}, 'clientRmiLocalPort': {'type': 'integer', 'maximum': 65535, 'minimum': 1024, 'description': 'Pinned controller callback port (default: 60000).'}, 'serverRmiLocalPort': {'type': 'integer', 'maximum': 65535, 'minimum': 1024, 'description': 'Pinned worker engine port (default: 50000).'}}}
search_jmeter_docs
Search JMeter documentation
Search the Apache JMeter documentation on docs.jmeter.ai. Returns the most relevant pages with titles, URLs, and snippets. Use for any question about JMeter test plans, components, functions, properties, distributed testing, reports, or troubleshooting.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'Search query, e.g. "how to correlate dynamic values" or "thread group ramp up"'}}}
triage_errors
Triage a Batch of JMeter Error Signatures
Map a run's distinct failure signatures to docs.jmeter.ai error playbooks. Error text is sent to classifier.dev for zero-shot classification (public keyless calls are not stored; obvious secrets are redacted first). Prefer signatures shaped as "sampler | response code | response message".
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['errors'], 'properties': {'tier': {'enum': ['fast', 'smart'], 'type': 'string', 'description': 'Classifier tier (default: "fast"). "smart" re-asks only signatures below minConfidence (slower).'}, 'errors': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'One distinct failure signature, ideally "sampler | response code | response message".'}, 'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'How many samples showed this signature (default: 1).'}}}, 'maxItems': 1000, 'minItems': 1, 'description': 'Distinct error signatures to triage.'}, 'minConfidence': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Confidence threshold for auto-bucketing a signature to a playbook (default: 0.7).'}, 'classifierApiKey': {'type': 'string', 'description': 'Your own classifier.dev API key (anonymous quota is shared); never logged.'}}}
tune_linux_os
Linux Kernel & OS Tuning for Load Injectors
Generate production sysctl.conf, limits.conf, systemd overrides, and Docker/K8s configs tuned for high-concurrency JMeter load testing (fixing ulimit nofile, BindException port exhaustion, somaxconn backlog, and JVM swappiness).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'role': {'enum': ['injector', 'target_sut'], 'type': 'string', 'description': 'Machine role: "injector" (JMeter client) or "target_sut" (default: "injector").'}, 'ramGb': {'type': 'integer', 'maximum': 512, 'minimum': 2, 'description': 'Host machine RAM in GB for TCP buffer sizing (default: 16).'}, 'concurrency': {'type': 'integer', 'maximum': 500000, 'minimum': 100, 'description': 'Target concurrent connections/threads (default: 10000).'}, 'trafficType': {'enum': ['http_churn', 'http_keepalive', 'streaming_ws_grpc'], 'type': 'string', 'description': 'Traffic profile (default: "http_churn").'}, 'targetDistro': {'enum': ['ubuntu_debian', 'rhel_rocky', 'amazon_linux', 'docker_k8s'], 'type': 'string', 'description': 'Linux distro or container target (default: "ubuntu_debian").'}}}
Añadido
convert_openapi_to_jmx
29 de September de 2026 a las 02:56
Añadido
lookup_function
29 de September de 2026 a las 02:56
Añadido
lookup_component
29 de September de 2026 a las 02:56
Añadido
triage_errors
29 de September de 2026 a las 02:56
Modificado
lookup_error_playbook
29 de September de 2026 a las 02:56
Añadido
lint_groovy_script
29 de September de 2026 a las 02:56
Modificado
lint_jmx_snippet
29 de September de 2026 a las 02:56
Añadido
convert_curl_or_har_to_jmx
17 de September de 2026 a las 12:49
Añadido
tune_linux_os
17 de September de 2026 a las 12:49
Añadido
plan_distributed_testing
17 de September de 2026 a las 12:49
Añadido
lookup_error_playbook
17 de September de 2026 a las 12:49
Añadido
get_jsr223_recipe
17 de September de 2026 a las 12:49
Añadido
lookup_jmeter_property
17 de September de 2026 a las 12:49
Añadido
calculate_workload_model
17 de September de 2026 a las 12:49
Añadido
lint_jmx_snippet
17 de September de 2026 a las 12:49
Añadido
get_jmeter_page
17 de September de 2026 a las 12:49
Añadido
search_jmeter_docs
17 de September de 2026 a las 12:49