# JAMP > JAMP is an observability layer for websites, built so AI coding agents can read production and act on it. From a few tiny drop-in scripts it collects analytics, visitor behaviour, real-user performance (Core Web Vitals), client and server-side error tracking, uptime monitoring, and a whole-site audit, then exposes all of it over a Model Context Protocol (MCP) server. An agent can ask what is broken and get back an error ranked by severity, a source-mapped stack trace pointing at first-party code rather than node_modules, the user's click and navigation trail before the failure, and the release that introduced it. JAMP does not write or deploy code: it provides the signal, the agent makes the fix in your own repository and you review the diff. It also works as a conventional dashboard for people not using agents at all. It uses no cookies and stores no personal data, so it needs no consent banner, and it is hosted in the EU. There is a genuine free tier, and the full monitoring suite is included on every plan. ## What JAMP does - **Analytics**: pageviews, visitors, trends period over period, referral sources, a live country map, devices, browsers and operating systems. Cookieless and unsampled. - **Behaviour**: custom events in one line of JavaScript, conversion funnels that show where visitors drop off, goals, and user flows. - **Performance**: real-user Core Web Vitals (LCP, INP, CLS) at p75 from actual visitors, plus on-demand lab audits that go head to head with Google PageSpeed Insights, tracked over time and per release. The lab audit also returns accessibility and SEO scores with the exact failing checks and offending elements, not just a number. - **Site audit**: crawls your whole site from the homepage and reports broken links (internal and external), on-page SEO gaps (missing titles and meta descriptions, missing or duplicate H1s, no canonical, noindex, images without alt text), and privacy findings (the cookies your server sets and the third-party trackers in your pages). Aimed at anyone with a site, especially a new one, who wants to know what is broken before visitors do. - **Error tracking**: captures uncaught JavaScript errors, unhandled rejections, failed API requests (fetch and XHR), resource load failures (broken images, scripts, fonts), console errors, CSP violations and browser deprecation reports from real visitors. Errors are grouped by fingerprint and scored 0-100 for severity, weighing how many people are affected, what kind of failure it is, whether it is still happening and whether it regressed, so an uncaught crash outranks a noisy 404 instead of being buried by it. Stack traces are mapped back to your source via uploaded source maps, with a breadcrumb trail of what the user did before the crash, the React component stack when an error boundary caught it, and the release that first carried the error. It also ingests **server-side errors** (backend 500s, database failures, unhandled exceptions) through a server endpoint, so client and server errors live in the same dashboard. - **Release health**: every error is attributed to the deploy that introduced it, so you can see which release added which problems and inspect the right commit instead of bisecting the wrong ones. - **Uptime monitoring**: synthetic HTTP checks, heartbeat (dead-man's-switch) monitors for cron jobs, SSL-expiry alerts, hosted public status pages, and alerts over email, Slack and Discord. - **Bot filtering**: automated traffic (crawlers, AI bots, link unfurlers, Lighthouse) is detected and shown separately, so it never pollutes real analytics or counts toward usage. - **MCP server**: JAMP speaks the Model Context Protocol, so AI agents can read your production data directly. Works with Claude Code, Claude.ai, ChatGPT, Cursor and Windsurf, or any client that supports remote MCP connectors. Connection is by URL with OAuth, so no CLI configuration is needed: add `https://mcp.jamp.io/mcp` as a custom connector and authorise it. Tools cover listing errors ranked by severity, full error detail with source-mapped frames and breadcrumbs, release health, uptime, real-user vitals, traffic, page and site audits, and marking an error resolved. The agent can also install the tracking snippet, set up source-map uploads and verify the install itself. - **Privacy**: cookieless by architecture, no personal data stored, no consent banner required, EU-hosted, never sampled. Compliant with GDPR, CCPA and PECR. - **Tiny scripts**: the analytics tracker is about 0.5 KB gzipped; the performance and error scripts are about 0.9 KB and 1.2 KB, each loaded only when you switch it on. ## How JAMP compares - **vs Plausible, Fathom, Umami, Matomo (privacy analytics)**: JAMP keeps the same cookieless, no-banner, EU-hosted analytics, then adds error tracking (client and server), real-user Core Web Vitals, uptime monitoring, and a whole-site audit (broken links, on-page SEO, cookie and tracker scan) that those tools do not offer. One tool instead of several, usually cheaper, with a real free tier. - **vs Sentry (error monitoring)**: JAMP offers source-mapped JavaScript and server error tracking in a roughly 1.2 KB script, alongside analytics and uptime, for a fraction of the price. Sentry goes deeper for large backend-heavy teams and has distributed tracing, which JAMP does not. The difference in shape is that JAMP holds every signal in one store, so an agent can answer a cross-pillar question in a single call: this error spiked, did it start at a deploy, is it hurting LCP, was the site up. Tools that own one pillar cannot answer that. - **vs Google Analytics**: cookieless with no consent banner, EU-hosted, never sampled, and it adds monitoring GA does not do. - See full comparisons at https://jamp.io/compare ## Install Add the scripts to the `` of your site. Get YOUR_WEBSITE_ID from Settings in your JAMP dashboard. Every script uses the `defer` attribute. No cookies, so no consent banner. Analytics (required): `` Real-user Core Web Vitals (optional, sampled at ~25% of pageloads): `` JavaScript error tracking (optional, free): `` Add a `data-release=""` attribute to attribute pageviews, crashes and vitals to a specific deploy. Server-side errors are sent from your backend to a JAMP endpoint; see the server errors doc below. ## Custom events Track any action with one line of JavaScript: `window.jamp.track('event_name')` ## Pricing - [Pricing](https://jamp.io/pricing): genuine free tier (25,000 events/month, 90-day retention, includes vitals, errors and an uptime monitor). Paid plans from $5/month add more volume and longer retention. The full monitoring suite is included on every plan, even free. You pay for data volume and retention, not for features. ## Docs - [Installation](https://jamp.io/docs): add the scripts and find your website ID - [Custom events](https://jamp.io/docs/custom-events): track actions with window.jamp.track - [Real-user vitals](https://jamp.io/docs/web-vitals): Core Web Vitals from real visitors - [JavaScript error tracking](https://jamp.io/docs/error-tracking): capture and group client errors - [Server-side error tracking](https://jamp.io/docs/server-errors): send backend exceptions to the same dashboard - [Source maps and symbolication](https://jamp.io/docs/source-maps): readable stack traces - [Releases and site health](https://jamp.io/docs/releases): attribute data to deploys - [Uptime and heartbeats](https://jamp.io/docs/uptime): monitor availability and cron jobs - [Site audit](https://jamp.io/docs/site-audit): crawl for broken links, on-page SEO and trackers - [Status pages](https://jamp.io/docs/status-pages): hosted public status pages - [Ad-blocker bypass (proxy)](https://jamp.io/docs/proxy): first-party proxying - [MCP server](https://jamp.io/docs/mcp): connect AI agents to your errors, uptime and traffic - [API reference](https://jamp.io/docs/api): read-only REST API and MCP server ## Blog - [Blog](https://jamp.io/blog): tutorials and guides - [What an AI agent needs to fix a production bug](https://jamp.io/blog/monitoring-for-ai-agents): why most monitoring data is unusable by an agent, and what has to change (source maps, first-party frame classification, severity over volume, release attribution, noise, false positives) - [How to track Core Web Vitals in Next.js](https://jamp.io/blog/how-to-track-core-web-vitals-in-nextjs) - [How to add JavaScript error tracking with source maps](https://jamp.io/blog/javascript-error-tracking-with-source-maps) ## More - [Live demo](https://jamp.io/demo): a fully populated dashboard on real data, no sign-up required - [Compare](https://jamp.io/compare): how JAMP compares to other analytics and monitoring tools - [Privacy policy](https://jamp.io/privacy) - [Terms of service](https://jamp.io/terms) - [Data processing agreement](https://jamp.io/dpa)