Get a free key
Scanner, not generator — free & open-source

A pre-publish spam gate for your publishing agent

Agentic pipelines ship content at a pace no human reviews. The PureRank MCP server lets the agent score every draft 0–100 against the scaled-content footprint Google's spam updates target — and publish only what comes back pass.

claude mcp add purerank --env PURERANK_API_KEY=YOUR_KEY -- npx -y purerank-mcp-server

Free API key · 25 draft checks + 5 site scans per day · no card

The gate in action

Two drafts, one rule

Real, unedited responses from POST /api/score-text.

Raw agent draft — "10 SEO Best Practices" (148 words)
94 /100
FAIL — revise before publishing
lexical100
burstiness40
vocabulary40

Findings: 33.8 AI stock phrases and 101 AI-favored words per 1,000 words. Embedding prior leans AI (+0.26).

Human engineering post — "Postgres war story" (134 words)
2 /100
PASS — publish-ready
lexical6
burstiness54
vocabulary40

No stock-phrase findings. Embedding prior leans human (−0.29). Natural rhythm variance.

The standing rule for your agent:

draft → purerank_score_draft → publish only if gate == "pass", otherwise revise and re-score.

Tools

Three tools your agent gets

🚦

purerank_score_draft

The pre-publish gate. Scores one draft (text or HTML) with no crawling: 0–100, a pass/warn/fail verdict, per-signal breakdown and human-readable findings. Fast enough to run on every draft.

🌐

purerank_scan_site

Crawls and scores a whole site across all seven dimensions — yours or a competitor's. Submits the scan, polls to completion, returns the score, top risk signals and a shareable report link.

📄

purerank_get_report

Fetches the latest report summary for a domain or report id without re-scanning — for monitoring dashboards, client updates and "what changed" checks.

Quotas

Free to gate. Paid to scale.

PlanDraft checks / daySite scans / dayAPI keys
Free2551
Pro — $49/mo5002001
Agency — $149/mo2,0001,0005

Draft checks are content-only (no crawl), so they get their own, much larger pool than site scans. Quotas are per account and reset at UTC midnight; 429 responses carry Retry-After and X-RateLimit-* headers.

No MCP? Plain REST.

Same gate, two lines of anything

curl -X POST https://pure-rank.com/api/score-text \ -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d '{"text": "your draft here", "title": "optional"}'
import requests r = requests.post("https://pure-rank.com/api/score-text", headers={"X-Api-Key": "YOUR_KEY"}, json={"text": draft}) ok = r.json()["gate"] == "pass" # publish only on pass

Response: {score, gate, verdict, confidence, signals, explanations, embedding}. Interactive docs at /api/docs.

What this is — and isn't.

PureRank is a scanner, not another generator: it doesn't write, rewrite or "humanize" anything. The score is an explainable heuristic over public signals — not a Google metric, and not proof of authorship. It estimates how strongly content matches the mass-produced pattern named in Google's spam policies ("scaled content abuse"), so your agent ships less of it. We publish our benchmark methodology and numbers, including what the score can't do.

Put the gate in your pipeline tonight

Create a free account, mint an API key in the dashboard, run one command.

Create a free API key

25 draft checks + 5 site scans daily · no card · MIT-licensed connector