TestRelic maintains this repository as a public, open-source Model Context Protocol (MCP) server distributed through the Cursor Marketplace. Security and data handling are treated as first-class concerns.
| Version | Supported |
|---|---|
2.1.x |
Yes |
2.0.x |
Security fixes only (see packages/mcp/MIGRATION.md) |
< 2.0 |
No |
Please do not open a public issue for security reports.
Email security@testrelic.ai with:
- A clear description of the issue and the impact.
- Steps to reproduce (a minimal repro is ideal).
- The commit SHA or released version you tested against.
- Any suggested remediation, if you have one.
You can expect:
- An acknowledgement within 2 business days.
- A triage decision and severity within 5 business days.
- A fix or mitigation plan within 30 days for high-severity issues, faster for critical ones.
We will credit reporters in the release notes unless you request otherwise.
This plugin is designed so that a Cursor Marketplace reviewer (or any installer) can audit its risk surface in a single pass.
- Markdown documentation, a plugin manifest (
.cursor-plugin/plugin.json), anmcp.jsondescriptor, a logo asset, and the full TypeScript source tree for@testrelic/mcp. - No binaries. Runtime is the pre-built
packages/mcp/dist/TypeScript output bundled in this repository and launched vianode packages/mcp/dist/cli.js. No package is fetched from a remote registry at install time; no remote scripts are executed. - The compiled
dist/artefacts are produced from the TypeScript source inpackages/mcp/src/— both are present in the repository and can be cross-checked by any reviewer. - Once
@testrelic/mcpis published to npm,mcp.jsonwill be updated tonpx -y @testrelic/mcp@<version>. That will still require no secrets and will resolve exclusively from the public npm registry.
- Default marketplace posture (
--mock-mode). The shippedmcp.jsonruns the server with--mock-mode, which points the HTTP client at the in-repo mock server only. In this mode the MCP makes zero outbound network calls to third-party services. - Real-cloud mode (opt-in). A user who wants real data must:
- Remove
--mock-modefrom theirmcp.json(or override it). - Provide a
TESTRELIC_MCP_TOKEN(atr_mcp_*personal access token) via env var,--tokenflag, or~/.testrelic/tokenfile. In this mode, every outbound call goes to the configured--cloud-url(defaulthttps://app.testrelic.ai/api/v1) withAuthorization: Bearer <token>— and nowhere else.
- Remove
- No third-party credentials on the user's machine. Integrations (Amplitude, Jira, Grafana Loki, GitHub, ClickHouse) are resolved by the TestRelic cloud platform, not by this MCP. The legacy per-service env vars were removed in v2.1.
- The MCP writes cache and output artefacts to user-configurable
directories (
--cache-dir,--output-dir), defaulting to./.testrelic-cacheand./.testrelic-outputunder the project root. Nothing is written outside those directories. - Logs go to stderr only (never stdout) so the MCP handshake with
the client stays intact. Log level is user-controlled via
--log-level. - No telemetry is emitted to TestRelic or any third party from this
plugin. The
telemetry/metrics.jsonlfile is local-only.
This plugin ships a single MCP server entry (testrelic). Cursor's
existing MCP governance (allowlist / blocklist / disable toggle in
Settings → Features → Model Context Protocol) applies unchanged. If
the server is disabled or blocked in a user's Cursor settings, the
plugin installs but the server cannot make calls.
- Runtime dependencies are pinned in
packages/mcp/package.jsonwith caret ranges and reviewed on every release. optionalDependencies(native modules such asbetter-sqlite3,hnswlib-node,tree-sitter*,@xenova/transformers) fall back to pure-JS equivalents at runtime. The plugin works without any native module installed.- Every release is scanned with
npm auditand GitHub Dependabot prior to publish.
If you believe a marketplace-listed version of this plugin is behaving differently from this repository, please also notify security-reports@cursor.com per the Cursor Marketplace security policy.