Skip to content

jestatsio/jestats-screamingfrog-audit

v0.1.2MIT

Provisional local technical SEO auditing and interactive offline reports from Screaming Frog crawls.

JEStats Screaming Frog Audit

From crawl data to a prioritized, evidence-backed SEO action plan.

A free, open-source local MCP plugin for Claude Desktop, Claude Code, and Codex.

MIT license TypeScript Local MCP Provisional version

Download for Claude Desktop Install in Codex Install in Claude Code

Choose your assistant · Prebuilt development preview · No repository build required

Get started · Sample report · Tools · Validation · Contribute

Provisional v0.1.2. A controlled licensed macOS audit works end to end. Windows native integration, all six assistant/OS installation journeys, applied preset settings, analysis readiness, and manual offline browser interaction remain release gates. See the compatibility matrix.

One request. A clear action plan.

“Audit this site and give me a client-ready action plan.”

Start a new crawl or choose a saved Screaming Frog database crawl. JEStats extracts a consistent local snapshot, computes findings and priorities, and gives your assistant bounded evidence to explain what to fix next.

The goal is simple: hundreds of affected URLs reduce to a handful of shared fixes. Grouping by destination, issue signature, and site section is deterministic. Suspected template causes stay labeled as hypotheses.

Understand the problemChoose the next fixShare the evidence
Related URLs grouped into actionable findingsTransparent severity, confidence, reach, and internal-link importanceA branded, interactive HTML report with supporting CSVs
Observed failures separated from metadata opportunitiesMissing traffic metrics remain unknownLocal assets, paginated details, and offline operation

Explore the report

The included synthetic demonstration has 1,600 URLs and six findings. It shows shared broken links, redirects, canonical targets, sitemap conflicts, and metadata opportunities without making claims about a real website.

Download the sample HTML and open it locally. GitHub's file view displays the source. You can also generate it with npm run sample.

Browse report source · Finding CSV · URL CSV · Synthetic fixture

The report includes an executive overview, category charts, prioritized fixes, filters by priority/category/site section, and paginated affected URLs. Each finding exposes its evidence, remediation guidance, and priority rationale. Client and site names are customizable; assistant narrative links to finding IDs and cannot override computed facts.

Get started

1. Prepare Screaming Frog

Open a licensed Screaming Frog SEO Spider with native MCP support, use database storage mode, and enable MCP under File → Settings → MCP Server. Keep the application running and visible. The usual endpoint is http://127.0.0.1:11435/mcp.

Licence activation stays in Screaming Frog. No JEStats cloud account or account-linking flow is required. See the official native MCP guide.

2. Install the preview

Use the buttons above or the installation page. The packages include the compiled server, its dependencies, and the audit workflow. Claude Desktop supplies its Node.js runtime; Codex and Claude Code need Node.js 20+ available locally.

AssistantQuick install
Claude DesktopDownload the .mcpb, open it, and confirm Install
Claude CodePaste /plugin install jestats-screamingfrog-audit --marketplace jestatsio/screamingfrog-plugin in a current session, then confirm installation
Local CodexRegister the community marketplace once, then use the install page's Open in Codex button or the CLI install command

Codex's app link opens installation details for an already registered marketplace. The installation guide includes the two first-time commands, supported host versions, manual alternatives, and updates. Installation and complete audit usability still need verification in each host/OS combination; see the compatibility matrix.

Download archives and checksums from the development prerelease. This is a JEStats community distribution; official directory submissions and a validated release remain pending.

3. Ask for an audit

Ask your assistant to check the connection, select a saved database crawl or start a new one, and produce the action plan. New crawls use the bundled technical-audit preset. Advanced users can provide an exported configPath or explicitly choose useCurrentConfig: true.

Retain the audit ID. The assistant advances its checkpoints with audit_status, queries the evidence, and calls render_report for the local HTML and CSV paths. Jobs persist across reconnects; there is no background worker while the assistant is disconnected.

How it works

flowchart LR
    A[Claude / Codex] -->|Local stdio MCP| B[JEStats audit server]
    B <-->|Localhost HTTP MCP| C[Screaming Frog desktop]
    B --> D[Immutable snapshot]
    D --> E[Grouped findings + priorities]
    E --> F[Offline HTML + CSVs]
    E -->|Bounded evidence| A

Screaming Frog supplies crawl control and source data. JEStats supplies consistent acquisition, deterministic analysis, shared-fix grouping, and report generation. Native operations are serialized across plugin processes, and crawl identity is checked throughout extraction to reject interrupted or mixed snapshots.

Audit areaInitial coverage
Broken linksInternal hyperlinks to failing destinations, grouped with linking pages
RedirectsChains, loops, and lower-priority internal redirect opportunities
Canonicals & indexabilityConflicting declarations and problematic canonical targets
SitemapsBroken or non-indexable sitemap URLs, when sufficient data exists
MetadataMissing or duplicate titles, descriptions, and heading opportunities

Intentional noindex alone is informational. Metadata opportunities are distinct from definite technical failures. Insufficient source data produces a visible coverage gap; dependent checks remain unassessed. Read the evidence and prioritization rules.

Nine tools, one workflow

ToolsResponsibility
connection_status · list_crawlsDiagnose setup and select a source
start_audit · list_auditsCreate and rediscover persisted jobs
audit_status · control_auditReconcile, advance, pause, resume, or cancel
list_findings · finding_detailsQuery bounded findings and paginated evidence
render_reportGenerate local HTML and supporting CSV exports

Cancellation is recorded locally even during a disconnect. Native pause is attempted only for the job's exact owned crawl; diagnostics disclose when the application may still be crawling.

Local by design, explicit about limits

  • 100,000 URLs maximum. Larger crawls fail explicitly; rows are never silently sampled.
  • 128 MiB per dataset. Separate budgets apply to selected extraction, link evidence, normalized snapshots, analysis candidate/finding data, and report payloads.
  • Local storage. Jobs, indexed NDJSON snapshots, and reports default to ~/.jestats/screamingfrog; override with JESTATS_AUDIT_DATA_DIR.
  • Bounded assistant responses. Full datasets and exhaustive link graphs stay outside the conversation. Your chosen assistant provider receives the bounded tool responses under its own policies.
  • Offline reports. Scripts, styles, and compressed report data are bundled locally. Raw page HTML and exhaustive link graphs are excluded.

SCREAMINGFROG_MCP_URL can override the native endpoint and must remain loopback HTTP. Initial targets are local macOS and Windows clients. Remote/cloud execution, Linux, arbitrary saved crawl files, and unattended monitoring are outside this version's scope.

What is verified

Local validation snapshot — September 29, 2026. Version 0.1.2 adds the original frog branding and package icon checks; 0.1.1 added the storage-path repair. The licensed macOS crawl observations below were recorded with 0.1.0. Rerun checks for the revision you use.

CheckObserved result
Typecheck, build, and fixture suite217 tests passed locally, including storage-path regression and prebuilt packaging checks
Claude Desktop storage defaultBlank settings and the exact legacy ${HOME}/.jestats/screamingfrog value resolve to the Node home directory; fixture MCP starts persist and list audit jobs
Licensed macOS SEO Spider 24.3New crawl, stable identity, pagination, reconnect, and saved-crawl reload reconciliation passed
New/saved audit equivalence13 identical snapshot rows and 14 findings, with matching snapshot hashes
Actual stdio MCP workflowNine tools discovered; bounded evidence queried; HTML and both CSVs generated
Prebuilt distributionAll four extracted packages expose nine tools without installing dependencies; generated Claude marketplace and plugin pass strict validation
Synthetic scale benchmark100,000 URLs / 2,000 findings; 2.74 MB HTML generated in 459.3 ms in Node.js
Dependency auditZero reported vulnerabilities at that snapshot

The 0.1.2 branding record preserves the package checks; the 0.1.1 storage-fix record preserves the path regression results. The original validation record preserves the native observations and outstanding release gates.

The benchmark measures Node generation and indexed lookups; browser responsiveness remains unverified. The genuine macOS preset export was accepted by native MCP, but its applied settings still need verification. A recorded configuration hash observes file bytes before launch; it does not prove that Screaming Frog applied them. Progress percentages alone do not establish analysis readiness.

The compatibility matrix and native verification checklist track the remaining gates. CI checks fixture builds and packaging on macOS and Windows; it does not verify licensed native installations or assistant usability.

Develop and contribute

Use Node.js 20.19+, 22.12+, or 24+ for development:

git clone https://github.com/jestatsio/screamingfrog-plugin.git
cd screamingfrog-plugin
npm ci
npm run check
npm run check             # Typecheck, build, and fixture tests
npm run probe:native      # Read-only native schemas, status, and recent crawls
npm run verify:native     # Read-only verification record
npm run sample            # Regenerate the synthetic HTML and CSVs
npm run benchmark         # Synthetic 100,000-URL Node benchmark
npm run package:plugins   # Build and package all three assistant formats

Controlled crawl verification changes the visible native application; follow the native checklist before running its mutation flags. Reports require a modern browser with DecompressionStream support. Manual local-file checks are still pending.

Useful contributions include Windows native verification, assistant installation checks, offline report feedback, and evidence-backed improvements to analysis rules. Open an issue or a pull request with reproducible details.

JEStats · Evidence before advice.

MIT licensed · Free and open source · An independent integration, not an official Screaming Frog product