Skip to content

JMeter Docs

by QAInsights · remote · no sign-in to list tools · v1.4.0 · published by GitHub user QAInsights

Apache JMeter community documentation, conversion tools, linters, and calculators for AI agents.

Changes · 8

16 tools: 8 change things and 8 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http jmeter-docs https://docs.jmeter.ai/api/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

16 tools

Changes things 8Claude Code: ask
  • calculate_workload_modelCompute 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.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.
  • convert_curl_or_har_to_jmxConvert 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,…No findings

    Why it is in this group

    • The name "convert_curl_or_har_to_jmx" says "convert": a word for a change.
    Description, as the server wrote it
    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.
  • convert_openapi_to_jmxConvert 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 …No findings

    Why it is in this group

    • The name "convert_openapi_to_jmx" says "convert": a word for a change.
    Description, as the server wrote it
    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.
  • get_correlation_sandboxGenerate a ready-to-run Apache JMeter 5.6.3 .jmx practice test plan (either "solved" with Boundary/JSON/Header extractors or "challenge" with broken hardcoded tokens) targeting the…No findings

    Why it is in this group

    • The name "get_correlation_sandbox" says "get": a word for reading.
    • The description's first verb is "generate": a word for a change.
    Description, as the server wrote it
    Generate a ready-to-run Apache JMeter 5.6.3 .jmx practice test plan (either "solved" with Boundary/JSON/Header extractors or "challenge" with broken hardcoded tokens) targeting the live docs.jmeter.ai/api/sandbox endpoints or local localhost:8787 server.
  • lint_groovy_scriptStatically analyze a Groovy script for a JMeter JSR223 element.No findings

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    Description, as the server wrote it
    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.
  • plan_distributed_testingGenerate Master-Worker RMI port assignments, user.properties, CLI commands, firewall/security group rules, and Docker Compose manifests for distributed load testing.No findings

    Why it is in this group

    • The description's first verb is "generate": a word for a change.
    Description, as the server wrote it
    Generate Master-Worker RMI port assignments, user.properties, CLI commands, firewall/security group rules, and Docker Compose manifests for distributed load testing.
  • triage_errorsMap a run's distinct failure signatures to docs.jmeter.ai error playbooks.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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".
  • tune_linux_osGenerate production sysctl.conf, limits.conf, systemd overrides, and Docker/K8s configs tuned for high-concurrency JMeter load testing (fixing ulimit nofile, BindException port exh…No findings

    Why it is in this group

    • The description's first verb is "generate": a word for a change.
    Description, as the server wrote it
    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).
Only reads 8Claude Code: allow
  • get_jmeter_pageFetch the full markdown text of one docs.jmeter.ai page.No findings

    Why it is in this group

    • The name "get_jmeter_page" says "get": a word for reading.
    Description, as the server wrote it
    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).
  • get_jsr223_recipeFetch production-ready, performant Groovy scripts for JMeter JSR223 samplers, preprocessors, and postprocessors (e.g., JWT parsing & expiration, HMAC-SHA256 signing, dynamic header…No findings

    Why it is in this group

    • The name "get_jsr223_recipe" says "get": a word for reading.
    Description, as the server wrote it
    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).
  • lint_jmx_snippetValidate 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/asser…No findings

    Why it is in this group

    • The description's first verb is "validate": a word for reading.
    Description, as the server wrote it
    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.
  • lookup_componentFind the dedicated reference page for a JMeter test plan component (e.g.No findings

    Why it is in this group

    • The name "lookup_component" says "lookup": a word for reading.
    Description, as the server wrote it
    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.
  • lookup_error_playbookGet immediate root causes, OS/JVM config fixes, and remediation steps for common JMeter exceptions (e.g.No findings

    Why it is in this group

    • The name "lookup_error_playbook" says "lookup": a word for reading.
    Description, as the server wrote it
    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).
  • lookup_functionFind the dedicated reference page for a built-in JMeter function (e.g.No findings

    Why it is in this group

    • The name "lookup_function" says "lookup": a word for reading.
    Description, as the server wrote it
    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.
  • lookup_jmeter_propertySearch or lookup curated JMeter properties (e.g.No findings

    Why it is in this group

    • The name "lookup_jmeter_property" says "lookup": a word for reading.
    Description, as the server wrote it
    Search or lookup curated JMeter properties (e.g. "httpclient4.idletimeout", "jmeter.save.saveservice.*", "remote_hosts", "summariser"). Returns category, defaults, and recommendations.
  • search_jmeter_docsSearch the Apache JMeter documentation on docs.jmeter.ai.No findings

    Why it is in this group

    • The name "search_jmeter_docs" says "search": a word for reading.
    Description, as the server wrote it
    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.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.4.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http jmeter-docs https://docs.jmeter.ai/api/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__jmeter-docs__search_jmeter_docs",
      "mcp__jmeter-docs__get_jmeter_page",
      "mcp__jmeter-docs__lint_jmx_snippet",
      "mcp__jmeter-docs__lookup_jmeter_property",
      "mcp__jmeter-docs__get_jsr223_recipe",
      "mcp__jmeter-docs__lookup_error_playbook",
      "mcp__jmeter-docs__lookup_component",
      "mcp__jmeter-docs__lookup_function"
    ],
    "ask": [
      "mcp__jmeter-docs__calculate_workload_model",
      "mcp__jmeter-docs__lint_groovy_script",
      "mcp__jmeter-docs__triage_errors",
      "mcp__jmeter-docs__plan_distributed_testing",
      "mcp__jmeter-docs__tune_linux_os",
      "mcp__jmeter-docs__convert_curl_or_har_to_jmx",
      "mcp__jmeter-docs__convert_openapi_to_jmx",
      "mcp__jmeter-docs__get_correlation_sandbox"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as jmeter-docs. Review it before you use it.