Skip to content

MCP Server

Connect AI agents to Apache JMeter docs over MCP: search guides, lint JMX test plans, calculate workload sizing, and plan distributed clusters.

Difficulty
intermediate
Guide type
reference
Estimated read time
4 min read

Point Claude Code, Qwen Code, Cursor, or any MCP client at https://docs.jmeter.ai/api/mcp and your agent answers JMeter questions grounded in this documentation, with a source link for every answer. Free, no API key, no signup.

Endpoint: https://docs.jmeter.ai/api/mcp (Streamable HTTP, stateless)

Fair use: 120 requests/min per IP. Exceeding it returns HTTP 429 with a Retry-After header — well-behaved clients back off automatically.

ToolCategoryDescription
search_jmeter_docsKnowledgeBM25 semantic search across documentation, user manual, and guides
get_jmeter_pageKnowledgeFetch full markdown text of any documentation page
convert_curl_or_har_to_jmxGeneratorConvert cURL commands and HAR files to valid JMX XML (GET, POST, QUERY, etc.)
lint_jmx_snippetDiagnosticsScan JMX XML for anti-patterns (GUI listeners, BeanShell, missing timeouts)
calculate_workload_modelCalculatorLittle’s Law concurrency, pacing, ramp-up schedules, and JVM heap sizing
plan_distributed_testingTopologyPinned RMI ports, user.properties, firewall rules, and Docker manifests
tune_linux_osSystemLinux sysctl.conf, limits.conf, systemd, and Docker tuning parameters
lookup_jmeter_propertyReferenceSearch curated tuning properties with defaults and config locations
get_jsr223_recipeCodeProduction Groovy recipes (JWT decoding, HMAC signing, dynamic headers)
lookup_error_playbookDiagnosticsInstant remediation and OS/JVM fixes for common runtime exceptions

Search the full documentation: user manual, topic guides, error playbooks, release notes, and interactive tool pages. Returns ranked pages with URLs and snippets.

{ "query": "correlation dynamic values" }

Read one page in full markdown. Accepts the complete URL or a bare path like topics/api-load-testing.

{ "url": "topics/api-load-testing" }

Convert one or more cURL commands or HAR (HTTP Archive 1.2) JSON files into a schema-valid, ready-to-run Apache JMeter 5.6.3 .jmx XML test plan. Supports all standard HTTP verbs plus RFC 9838 QUERY method with body payloads, Bearer token extraction, and timeouts.

{
"input": "curl -X QUERY https://api.example.com/v1/search -H 'Content-Type: application/json' -H 'Authorization: Bearer my-jwt' -d '{\"query\":\"loadtest\"}'",
"threads": 50,
"rampUpSeconds": 10,
"parameterizeHost": true,
"parameterizeAuth": true
}

Validate a JMX XML snippet or test plan configuration against performance best practices and anti-patterns (active GUI listeners, legacy BeanShell, uncompiled JSR223, missing timeouts, zero ramp-up).

{ "jmxContent": "<HTTPSamplerProxy testclass=\"HTTPSamplerProxy\" ...>" }

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.

{ "targetRps": 500, "avgResponseTimeMs": 250, "safetyFactor": 1.25 }

Generate Master-Worker RMI port assignments, user.properties, CLI commands, firewall/security group rules, and Docker Compose manifests for distributed load testing.

{
"controllerIp": "10.0.0.5",
"workerIps": "10.0.1.10, 10.0.1.11, 10.0.1.12",
"serverPort": 1099,
"serverRmiLocalPort": 50000,
"clientRmiLocalPort": 60000
}

Generate Linux kernel (sysctl.conf), file descriptor (limits.conf), systemd, and Docker/K8s configurations tuned for high-concurrency JMeter load testing.

{
"concurrency": 25000,
"ramGb": 32,
"trafficType": "http_churn",
"targetDistro": "ubuntu_debian",
"role": "injector"
}

Search or inspect curated JMeter tuning properties (HTTP client pool, distributed testing RMI ports, InfluxDB backend listener, result formatting, engine settings).

{ "query": "httpclient4.idletimeout" }

Fetch production-ready, performant Groovy scripts for JMeter JSR223 elements (JWT decoding & expiry, HMAC-SHA256 signing, dynamic header injection, nested JSON parsing, thread-safe CSV logging).

{ "query": "jwt" }

Get instant root cause analysis, OS/JVM tuning parameters, and step-by-step remediation for common JMeter and JVM exceptions (BindException, SocketTimeoutException, OutOfMemoryError, NoHttpResponseException, etc.).

{ "query": "bindexception" }
Terminal window
claude mcp add jmeter-docs https://docs.jmeter.ai/api/mcp --transport http --scope user

--scope user registers the server for all your projects, no matter which folder you run the command from. Restart Claude Code after adding it, then verify with /mcp.

Add this to your MCP configuration file:

{
"mcpServers": {
"jmeter-docs": {
"url": "https://docs.jmeter.ai/api/mcp"
}
}
}
Terminal window
curl -X POST https://docs.jmeter.ai/api/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": { "name": "curl", "version": "1.0.0" }
}
}'
  • Grounded answers. Responses come from the actual JMeter documentation, not from stale model memory.
  • Verifiable sources. Every result carries the docs.jmeter.ai URL so you can check the advice.
  • Always current. The index rebuilds when the docs sync from apache/jmeter, so agents see new releases automatically.
  • Zero cost. Hosted on the community docs site with no rate-limited API key to manage.

Prefer a chat interface? Use the Ask AI button on any page, or start with the JMeter for Beginners guide.

On this page