Telemetry

xmcp traces a handful of anonymous build events so we can keep product decisions grounded in real-world usage. You stay in control and can switch it off at any moment.

Why we collect telemetry

Anonymous signals highlight whether transports, adapters, or new compiler behavior works in practice without requiring manual bug reports. Seeing which builds succeed, how long they take, and where they fail lets us prioritize fixes that unblock the most people.

What is being collected?

We capture general usage information tied to the command you run (xmcp dev or xmcp build) so we can spot regressions. Specifically, we track the following anonymously:

  • Command + versions. Which command was invoked, the xmcp release, and the Node.js version in use.
  • General machine info. OS family and release, CPU architecture and count, total memory, and whether the run happened in CI, Docker, or WSL.
  • Project traits. The selected adapter/transport and counts of components (tools, prompts, resources) so we know which surfaces are being exercised.
  • Performance snapshots. Duration of each run, bundle size for successful builds, and a coarse error category if something fails.
  • Privacy guardrails. A random install ID links related events so we can detect regressions, but it never contains repository details. No code, prompts, environment variables, logs, or secrets leave your machine.

This list is audited regularly to ensure it stays accurate, and it explicitly excludes personal data, email addresses, access tokens, and any identifiers tied to you or your organization.

Set XMCP_DEBUG_TELEMETRY=true to print every payload locally. This flag mirrors the data to stderr with the [telemetry] prefix but does not stop events from being sent; use XMCP_TELEMETRY_DISABLED=true if you want to pause telemetry entirely.

Opt out at any time

Telemetry is optional. Disable it temporarily, per environment, or everywhere:

  • Per command or CI job. XMCP_TELEMETRY_DISABLED=true npx xmcp dev (or build) prevents telemetry from booting for that run, which is ideal for sensitive builds or automated pipelines.
  • Persistent opt-out. AddXMCP_TELEMETRY_DISABLED=true to your shell profile, project .env, or CI secrets. xmcp checks the variable before creating an anonymous ID, so no data leaves your machine.
  • Re-enabling. Remove the environment variable (or delete telemetry.json) and rerun xmcp dev to recreate a fresh anonymous ID along with the opt-in notice.

If you have additional privacy requirements, please reach out at support@xmcp.dev—your feedback directly shapes what we measure next.

One framework to rule them all