jmeter-docs
Registry code: 98125351842a1ee4
You have access to the Apache JMeter community documentation at https://docs.jmeter.ai and built-in JMeter diagnostic/calculation tools. Use search_jmeter_docs to find documentation pages, and get_jmeter_page to read pages in full. Use convert_curl_or_har_to_jmx to convert one or more cURL commands or HAR JSON traces into valid Apache JMeter .jmx test plan XML (supporting GET, POST, PUT, DELETE, PATCH, and RFC 9838 QUERY methods). Use convert_openapi_to_jmx to turn an OpenAPI 3.x or Swagger 2.0 spec (JSON or YAML) into a JMeter .jmx test plan. Use lint_jmx_snippet to validate JMX test plan…
- endpoint
- https://docs.jmeter.ai/api/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is jmeter-docs live?
- Yes — it answered the hub's last check (checked 2m ago). It answered 99% of checks over the last 30 days.
- Is jmeter-docs free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does jmeter-docs have?
- 16 tools: get_jmeter_page, calculate_workload_model, lookup_jmeter_property, lint_groovy_script, lookup_error_playbook, plan_distributed_testing, tune_linux_os, convert_curl_or_har_to_jmx, ….
- Is jmeter-docs safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.5%· all time 99.5%
last good check
of 16 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- topic
- developer tools testing & qa
- used for
- search apache jmeter documentation
- convert curl or har traces to a jmeter test plan
- convert an openapi spec to a jmeter test plan
- lint jmeter test plans and groovy scripts
- plan load test workload and distributed setup
- takes → gives
- text, code, data → text, code, data
- tools
- 15 reads
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
get_jsr223_recipe reads open 14h ago
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).
{ "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." } } }arguments 10 linesget_correlation_sandbox open 2m ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "mode": { "enum": [ "solved", "challenge" ], "type": "string", "description": "\"solved\" returns a working correlated .jmx plan; \"challenge\" returns a broken plan with hardcoded recorded tokens for debugging practice. Default: \"solved\"." }, "flowId": { "enum": [ "flow1", "flow2", "flow3", "flow4" ], "type": "string", "description": "Practice flow: \"flow1\" (CSRF + Cookie), \"flow2\" (JWT Bearer + Order chain), \"flow3\" (ASP.NET __VIEWSTATE + Header ticket), or \"flow4\" (HTTP 429 & JSON Assertion chaos). Default: \"flow1\"." }, "target": { "enum": [ "edge", "local" ], "type": "string", "description": "\"edge\" targets https://docs.jmeter.ai/api/sandbox (1-thread debug); \"local\" targets http://localhost:8787/api/sandbox (high-RPS). Default: \"edge\"." } } }arguments 32 linesget_jmeter_page reads unknown 10h ago
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).
{ "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" } } }arguments 14 linescalculate_workload_model reads unknown never probed
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.
{ "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 } } }arguments 35 lineslookup_jmeter_property reads unknown 14h ago
Search or lookup curated JMeter properties (e.g. "httpclient4.idletimeout", "jmeter.save.saveservice.*", "remote_hosts", "summariser"). Returns category, defaults, and recommendations.
{ "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\")." } } }arguments 13 lineslint_groovy_script reads unknown never probed
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.
{ "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)." } } }arguments 41 lineslookup_error_playbook reads unknown never probed
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).
{ "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." } } }arguments 17 linesplan_distributed_testing reads unknown never probed
Generate Master-Worker RMI port assignments, user.properties, CLI commands, firewall/security group rules, and Docker Compose manifests for distributed load testing.
{ "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)." } } }arguments 61 linestune_linux_os reads unknown never probed
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).
{ "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\")." } } }arguments 45 linesconvert_curl_or_har_to_jmx reads unknown never probed
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.
{ "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)." } } }arguments 64 linesconvert_openapi_to_jmx reads unknown never probed
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.
{ "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)." } } }arguments 106 lineslint_jmx_snippet reads unknown never probed
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.
{ "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)." } } }arguments 15 linestriage_errors reads unknown never probed
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".
{ "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." } } }arguments 53 lineslookup_function reads unknown 14h ago
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.
{ "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\")." } } }arguments 14 lineslookup_component reads unknown 10h ago
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.
{ "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\")." } } }arguments 14 linessearch_jmeter_docs reads unknown 10h ago
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.
{ "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\"" } } }arguments 14 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id98125351842a1ee4.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/98125351842a1ee4/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/98125351842a1ee4?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.