Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/perfsage/perfsage-jmeter-mcp/coregit clone --depth 1 https://github.com/perfsage/perfsage-jmeter-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/perfsage/perfsage-jmeter-mcp/core)<a href="https://agentmods.dev/rules/perfsage/perfsage-jmeter-mcp/core"><img src="https://agentmods.dev/badge/rules/perfsage/perfsage-jmeter-mcp/core.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00012 | $0.01259 |
| Opus 5 | $0.00006 | $0.00629 |
| Sonnet 5 | $0.00002 | $0.00252 |
| Haiku 4.5 | $0.00001 | $0.00126 |
Grade A, and why
core scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 67 lines — stays where its author put it; the contents beside it link to each section on GitHub.
perfsage-jmeter-mcp: Core Rules
Package
- Package:
perfsage-jmeter-mcp, importperfsage_jmeter_mcp, CLIperfsage-jmeter-mcp - Min Python 3.10; local cmds:
uv run --python 3.12 --extra dev; hatchling needsREADME.md
Code Style
from __future__ import annotations; type hints; mypy strict; ruff E,F,I,UP,B,SIM,RUF (line 100)filterwarnings = ["error"]— zero warnings in tests; ignoreIncompleteFieldDefinitionWarning
Architecture
config.py: paths + pinned constants only;errors.py: hierarchy onlyPerfSagePaths: frozenroot+@propertysub-paths; never drift- Errors:
PerfSageErrorsubclasses;"{attempted}: {failure} (k=v, ...)"(omit parens if empty)
Pins / Paths / Guardrails
- JMeter 5.6.3 (
apache-jmeter-5.6.3); JDK feature 21 (accept 17–21); plugins jpgc-casutg/tst/json/dummy + perfsage-slo-reporter (jpgc-cmntransitive) - Root
~/.perfsage/{jdk,jmeter,plugins,runs,cache}; managed java/jmeter undercurrent/JMETER_DIR_NAME - Defaults: error rate 0.05, P95 5000 ms, gateway streak 20
env Conventions
- detect read-only: managed → JAVA_HOME/JMETER_HOME → PATH; inject
CommandRunner; hand-writtento_dict() - Plugin stem: strip
jpgc-, matchstem in jar_name.lower();ready= java+jmeter supported and no missing plugins - provision order: detect→java→jmeter→redetect→plugins→manifest-repair→redetect→docker; never raise for unprovisionable host
- Temurin macOS →
<root>/Contents/Home;repair_ext_jar_manifestsfor slo-reporter; downloader httpx 120s + ASF checksum
recorder Conventions
- Frozen models; HAR
Z→+00:00; fillqueryfrom URL whenqueryStringempty - OpenAPI: require
openapi|swagger+pathsbefore base_url; preserve server base-path (nourljoin) - Postman: resolve collection vars; MCP
base_urloverridesbase_url; unresolved{{var}}→${var} Flow.from_dictwraps KeyError →RecordingError; explicit kind + 0 requests →RecordingError
correlator / generator / editor
- First-match kinds uuid→jwt→hex→base64→opaque→numeric_id→static;
CONFIDENCE_FLOOR=0.6 WorkloadProfilefixed/ramp/stress/burst;parse_workload()owns aliases + unknown-key reject- Burst → Ultimate Thread Group (jpgc-casutg); stress → SteppingThreadGroup
- Empty flow →
ScriptGenerationError; default assert 2xx (recorded 2xx kept; never assert recorded 5xx) editor/: surgical ElementTree edit; single TG only; new file default (overwrite=trueto replace)- Ops: set_workload, change_method, set_path/header/body, rename_sampler, wrap_loop/while, add_jsr223
- Targets: TransactionController preferred; nested HTTPSamplerProxy not separate selectors
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 67 lines · 12 tokens per session scan A 4c0b697dbf88
core is a cursor rule published in the GitHub repository perfsage/perfsage-jmeter-mcp (1 stars, last pushed 26d ago), licensed MIT. It adds 12 tokens to every session and 1,259 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.
cli-error-handling
CLI command error handling patterns.
prefer-direct-imports-over-module-mocks
Prefer extracting a testable core over vi.mock / vi.resetModules when unit tests need to reach production logic entangled with config, env, or singletons.
control-plane-descriptors
Control plane descriptor and instance implementation patterns.
family-instance-domain-actions
Family instance domain action implementation patterns.