MCP.so
Sign In

pseolint

@ouranos-labs

About pseolint

SpamBrain-proof your pSEO before you publish, audit page relationships, not just pages. AI-triaged findings, 8 LLM providers, local telemetry, cost caps, MCP server.

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "pseolint": {
      "command": "npx",
      "args": [
        "@pseolint/mcp"
      ]
    }
  }
}

Tools

4

Use when a user asks to check their website for SEO issues, SpamBrain risk, duplicate content, thin pages, or before deploying a programmatic SEO site. Crawls the site, runs 40+ rules scored across 4 categories (integrity, discoverability, citation, data), and returns a verdict (ready/caution/concerning/critical) plus a numeric risk score (0-100, lower is better) with actionable findings. Pre-flight site classification suppresses pSEO-targeted rules on small marketing sites and blogs unless strict mode is set. When the audited site has ≥2 detected URL templates, the response includes a `templates` array with per-template verdicts, risk scores, category grades, variance metrics (uniformityScore, topDriver), and audited-URL counts. Both human-readable text and structured data (structuredContent) are returned. A high-risk site is NOT a tool error — check the `passed` field / `verdict`, not `isError`.

Use when a user wants to understand WHY their pseolint verdict is concerning/critical, what categories are failing, and what to fix first. Returns a prioritized breakdown with quick wins listed before structural fixes, plus a pass/fail verdict against the risk threshold. Both human-readable text and structured data (structuredContent) are returned. A failing threshold is reported via `passed`, not `isError`.

Use when a user asks to check a specific page URL for technical SEO issues. Checks per-page rules only: canonical tags, Open Graph tags, JSON-LD schema, robots directives, meta tags, thin content, and author signals. Does NOT check cross-page rules (duplicates, cannibalization, linking) — use pseolint_audit_site for those. Both human-readable text and structured data (structuredContent) are returned.

Use when a user wants concrete, paste-able fixes (rewritten H1s, JSON-LD blocks, robots.txt patches, internal-link suggestions) — not just a list of issues. An LLM drives 25 tools (sitemap fetch, template clustering, per-page rule checks, AEO probes) and produces a fix manifest with structured patches, each validated against a deterministic schema. Costs real money (~$1-3 per audit on managed Anthropic). Capped at $2 / 60 tool calls / 180 seconds by default — adjust if the user asks for a deeper run. Returns a text summary plus a compact structured summary (structuredContent); pass format:'json' to also get the full manifest in the text content. The structured `reason` field reports why the run stopped — an incomplete run is not flagged via isError. The full manifest can be streamed via the CLI: `pseolint orchestrate <domain> --manifest-out manifest.json`.

Overview

What is pseolint?

pseolint is an MCP server that audits programmatic SEO sites by template rather than by URL. It detects graph-level issues such as doorway clusters, near-duplicates, and entity-swap patterns across thousands of pages, providing per-template verdicts and variance metrics. Designed for developers and SEO professionals, it integrates with Claude and coding agents via its skills suite.

How to use pseolint?

Run npx pseolint http://localhost:3000 to audit a site. Add skills for Claude with npx skills add ouranos-labs/pseolint --skill pseolint aeo. The MCP server provides rule knowledge as resources and supports parameters like authorityScore and --render for advanced checks.

Key features of pseolint

  • Graph-level analysis detects issues invisible to per‑page tools.
  • Per‑template verdict aggregation with uniformity score.
  • 48+ rules across 8 categories including SpamBrain and AI Overview.
  • Render‑aware crawl checks for CSR bailout and soft 404s.
  • Bring‑your‑own authority score to adjust verdict tiers.
  • MCP resources for rule knowledge and skills for coding agents.

Use cases of pseolint

  • Audit a large programmatic SEO directory before publishing.
  • Gate site quality in CI/CD pipelines using --ci-threshold.
  • Fix a broken template to fix hundreds of pages at once.
  • Optimize pages to be cited in AI Overviews, ChatGPT, or Perplexity.
  • Compare competitive SERP positions with the browser extension.

FAQ from pseolint

How is pseolint different from Screaming Frog or Ahrefs Site Audit?

pseolint works at the graph level, not per page. It detects doorway patterns, near‑duplicate template clusters, and entity‑swap doorways that cross thousands of URLs—issues invisible to editorially‑focused tools.

What runtime does pseolint require?

pseolint is a Node.js package. The CLI requires Node 18+; the MCP server and render‑aware checks (--render) need Playwright installed. It is distributed via npm.

Does pseolint measure domain authority or backlinks?

No. pseolint is authority‑blind by design. It does not fetch Moz, Ahrefs, or Semrush data. You can pass a manual authorityScore (0‑100) via CLI flag or MCP param to adjust verdict leniency.

What blind spots does pseolint currently have?

It does not detect Core Web Vitals, image SEO, Open Graph completeness, title‑tag uniqueness, H1 structure, schema‑content drift, outbound link health, search intent, or parameter crawl‑budget waste. The full list is documented at pseolint.dev/blind‑spots.

How does pseolint handle large sites efficiently?

It uses a two‑phase pipeline: first clusters the sitemap into templates (cheap fetches), then deeply audits K sampled pages per template. Typical budget is ~80 fetches on a 100k‑URL site, covering every template.

Frequently asked questions

How is pseolint different from Screaming Frog or Ahrefs Site Audit?

pseolint works at the graph level, not per page. It detects doorway patterns, near‑duplicate template clusters, and entity‑swap doorways that cross thousands of URLs—issues invisible to editorially‑focused tools.

What runtime does pseolint require?

pseolint is a Node.js package. The CLI requires Node 18+; the MCP server and render‑aware checks (`--render`) need Playwright installed. It is distributed via npm.

Does pseolint measure domain authority or backlinks?

No. pseolint is authority‑blind by design. It does not fetch Moz, Ahrefs, or Semrush data. You can pass a manual `authorityScore` (0‑100) via CLI flag or MCP param to adjust verdict leniency.

What blind spots does pseolint currently have?

It does not detect Core Web Vitals, image SEO, Open Graph completeness, title‑tag uniqueness, H1 structure, schema‑content drift, outbound link health, search intent, or parameter crawl‑budget waste. The full list is documented at pseolint.dev/blind‑spots.

How does pseolint handle large sites efficiently?

It uses a two‑phase pipeline: first clusters the sitemap into templates (cheap fetches), then deeply audits K sampled pages per template. Typical budget is ~80 fetches on a 100k‑URL site, covering every template.

Comments

More Other MCP servers