Skip to main content
Glama
tmolavi

SiteProbe MCP Server

by tmolavi

SiteProbe

Open-source autonomous website auditor & fixer for SEO, GEO, performance, accessibility and technical web quality.

CI Version: 0.2.0 License: MIT Python: 3.11+ MCP Server Agent Skill

Quick Start • Google Update Triage • Workflow • AI Assistants & Skill • MCP Server • Honesty & Status Table


⚑ Short Demo

# 1. Run deep public website audit
siteprobe audit https://example.com --lang en --output ./siteprobe-report

# 2. Automatically apply safe code remediations to local project
siteprobe fix ./siteprobe-report/audit.json --repo /path/to/project

# 3. Verify that changes resolved the issues without regressions
siteprobe verify ./siteprobe-report/audit.json --repo /path/to/project

# 4. Triage Search Console performance around Google algorithm updates
siteprobe update-triage --csv examples/update-impact/sample-input.csv

Related MCP server: OctoBoost SEO MCP Server

πŸ’‘ Why SiteProbe?

Most auditing tools are passive checklists. They hand you a 40-page PDF of problems and leave the engineering team with all the toil.

SiteProbe connects diagnosis with remediation.

It doesn't just find a missing canonical tag, an unlabelled accessibility input, or an absent /llms.txt file for AI agentsβ€”it constructs an atomic, risk-categorized remediation plan, modifies local source code safely, and runs post-change verification to prove the problem is resolved.

Core Guarantees:

  • Zero Hallucination: No simulated rankings or fabricated Search Console numbers. If an external credential is missing, SiteProbe clearly marks it as optional/unavailable and explains how to connect it.

  • Deterministic Quality Scoring: Transparent, explainable weights across Technical, On-Page, Schema, GEO, Accessibility, and Security.

  • Realistic GEO Metrics: The GEO score is strictly a technical readiness index evaluating observable signals (AI crawler permissions in robots.txt, /llms.txt presence, structured entities, and question-answer semantics). It is not a guarantee or predictor of AI citations or rankings.

  • Safety First: Every automated fix creates an in-memory file snapshot before applying changes and rolls back automatically if verification fails.

  • Multilingual from Day 1: Native localized audits in English (en), Persian (fa), and Turkish (tr).


πŸ“‹ Feature Status & Honesty Table

Component / Feature

Implementation Status

Test Coverage

Description

AsyncIO Crawler

WORKING

Verified (Unit & Live)

Polite queue, adaptive backoff, SQLite storage, robots & sitemap parsing.

Technical SEO Checks

WORKING

Verified (Unit & Live)

HTTP status codes, broken links, redirect chains, canonicals, robots/sitemap.

SSR & Hydration Audit

WORKING

Verified (Unit & Live)

Framework signatures, client-only SPA empty shells, and raw server SEO tag parity.

On-Page SEO Checks

WORKING

Verified (Unit & Live)

Title/description lengths, duplicates, H1 hierarchy, alt tags, hreflangs.

Schema.org Validator

WORKING

Verified (Unit & Live)

JSON-LD syntax errors, Organization, Article, Breadcrumb, and FAQ schemas.

GEO / AEO Readiness

WORKING

Verified (Unit & Live)

Bot directives (OAI-SearchBot, PerplexityBot, ClaudeBot), /llms.txt, QA markup.

Deterministic Scoring

WORKING

Verified (Unit & Live)

100% transparent formula with itemized deductions and pillar breakdowns.

Safe Autofix Engine

WORKING

Verified (Unit & Live)

Local file modifier for meta tags, canonicals, alt attributes, robots.txt, llms.txt.

Verification Engine

WORKING

Verified (Unit & Live)

Re-evaluates before/after states; assigns FIXED, IMPROVED, UNCHANGED, SKIPPED.

Multi-format Reporting

WORKING

Verified (Unit & Live)

Single-file zero-CDN HTML dashboard, structured JSON (audit.json), Markdown.

Multilingual (i18n)

WORKING

Verified (Unit & Live)

Native translations for English (en), Persian (fa), and Turkish (tr).

MCP Server

WORKING

Verified (Unit & Live)

FastMCP server exposing 14 tools (start_audit, get_findings, apply_safe_fixes).

Google Update Triage

WORKING

Verified (Unit & Benchmark)

Frozen-window comparison, GSC CSV triage, technical issue vs. algorithm correlation.

Lighthouse CLI

OPTIONAL

Tested

Lab Core Web Vitals runner via local Node.js / lighthouse or npx.

Playwright Automation

OPTIONAL

Tested

Headless browser for SPA rendering (requires pip install siteprobe[browser]).

Google Search Console

OPTIONAL

Scaffolded

Adapter ready; requires GOOGLE_APPLICATION_CREDENTIALS (never simulated).

Google Analytics 4

OPTIONAL

Scaffolded

Adapter ready; requires GA4_PROPERTY_ID (never simulated).

DataForSEO API

OPTIONAL

Scaffolded

Adapter ready; requires DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD.

AI LLM Reasoning

OPTIONAL

Scaffolded

LiteLLM wrapper for deeper semantics (requires OpenAI/Anthropic/Gemini keys).

SSH Server Fixer

ROADMAP

Planned

Direct atomic remote patching over SSH key authentication.

WordPress / CMS Plugins

ROADMAP

Planned

Native CMS plugins for direct headless database and API remediation.


🎯 From Measurement To Action: The Remediation Loop

SiteProbe serves as the Autonomous Remediation & Verification Engine for the Molavi AI Visibility Stack, turning empirical findings from GEO-Scope Benchmarks into verified code remediations:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     1. BENCHMARK FINDING        β”‚  Empirical visibility baseline measured via GEO-Scope
β”‚   (e.g., Low AI Recommendation) β”‚  (e.g., missing citations, unquoted brand entities)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚
                 β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        2. DEEP AUDIT            β”‚  SiteProbe / SAGE analyzes DOM, headers, AI crawlers,
β”‚  (Technical, Entity, Semantic)  β”‚  passage chunk boundaries, and schema structures
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚
                 β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     3. RECOMMENDATION PLAN      β”‚  Deterministic, risk-stratified actionable fixes:
β”‚  (SAFE_AUTOFIX / MANUAL_REVIEW) β”‚  robots.txt bot policies, JSON-LD graphs, llms.txt
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚
                 β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    4. SAFE IMPLEMENTATION       β”‚  SiteProbe safely modifies source code repository
β”‚   (Atomic Snapshot & Patch)     β”‚  with automatic rollback on syntax or rule failure
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚
                 β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    5. EMPIRICAL RE-MEASURE      β”‚  GEO-Scope re-executes standardized prompt test suite
β”‚  (Measure Ξ” SoM & Citations)    β”‚  to measure verified lift in observed AI visibility
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

See the Benchmark Ecosystem Map for full architectural contracts.

πŸ›οΈ Ecosystem

SiteProbe operates as the autonomous remediation component of the Molavi AI Visibility Stack:

πŸ“– Evidence & Remediation Benchmarks


πŸ“Š Report Preview

SiteProbe generates a single-file, interactive HTML report with zero external CDN dependencies:

  • Interactive Scorecard: Overall score and individual category health gauges.

  • GEO & AI Search Pillar Breakdown: Transparent scoring for bot access, llms.txt, entity clarity, and QA markup.

  • Filterable Finding Cards: Browse issues by severity (Critical, High, Medium, Low) and category.

  • Diff Viewer: See unified code diffs of all remediations applied.


πŸ“¦ Installation

From Source (Clean Environment)

git clone https://github.com/tmolavi/siteprobe.git
cd siteprobe
pip install -e .

Optional Dependency Extras

# Headless browser automation (Playwright)
pip install "siteprobe[browser]"
playwright install chromium

# Google Search Console & GA4 APIs
pip install "siteprobe[google]"

# LLM Providers (LiteLLM)
pip install "siteprobe[ai]"

# All optional integrations
pip install "siteprobe[all]"

⏱️ 60-Second Quick Start

# Check installed tools and environment
siteprobe doctor

# Run an audit on a website
siteprobe audit https://example.com

# Inspect generated reports
open ./siteprobe-report/audit.html

🐍 Python Usage

import asyncio
from siteprobe.core.engine import AuditEngine
from siteprobe.core.config import SiteProbeConfig, SiteConfig, CrawlConfig

async def main():
    config = SiteProbeConfig(
        site=SiteConfig(url="https://example.com", language="en"),
        crawl=CrawlConfig(max_pages=25, concurrency=3),
    )
    engine = AuditEngine(config=config)
    result = await engine.run_audit("https://example.com")
    
    print(f"Overall Quality Score: {result.scores.overall_score}/100")
    print(f"GEO Readiness Score: {result.scores.geo_score}/100")
    print(f"Discovered {len(result.findings)} findings across {result.crawl_summary.total_crawled} pages.")

if __name__ == "__main__":
    asyncio.run(main())

πŸ’» CLI Usage

SSR & Rendering Inspection

Inspect initial raw server HTML for SSR vs. client-only SPA rendering, framework hydration payloads (Next.js, Nuxt, Remix, Astro), and missing raw SEO tags:

siteprobe ssr https://example.com

Audit Command

# Standard audit
siteprobe audit https://example.com

# Specify crawl cap and output folder
siteprobe audit https://example.com --max-pages 100 --output ./my-audit

# Multilingual audit in Persian or Turkish
siteprobe audit https://example.com --lang fa
siteprobe audit https://example.com --lang tr

# Include Lighthouse performance lab data (requires Node.js)
siteprobe audit https://example.com --lighthouse

Fix Command

# Apply safe autofixes to a local project repository
siteprobe fix ./my-audit/audit.json --repo /path/to/my-project

Verify Command

# Verify applied changes against the audit report
siteprobe verify ./my-audit/audit.json --repo /path/to/my-project

πŸ” Google Update Impact Triage (v0.2.0)

SiteProbe provides an evidence-based, reproducible workflow for examining Google Search Console performance changes around official algorithm updates (e.g. the September 2026 Google Spam Update, rolled out 2026-09-24 through 2026-10-08).

🎯 Objective: Distinguishing 5 Diagnostic States

Rather than guessing or blaming Google updates arbitrarily, SiteProbe strictly classifies observations into one of 5 defensible states:

  1. NO_CLEAR_CHANGE_OBSERVED: Observed fluctuations remain within the site's own daily baseline variance envelope ($2 \times \text{CV}$).

  2. PERFORMANCE_CHANGE_OBSERVED: Statistically meaningful traffic decline occurred during update rollout with no manual actions or blocking technical errors.

  3. TECHNICAL_ISSUE_OBSERVED: Severe technical defects (HTTP 5xx, noindex, broken canonicals, or robots.txt blocks) explain ranking or traffic drop independently.

  4. MANUAL_ACTION_REPORTED: Explicit Search Console manual action notice confirmed (never inferred from traffic decline).

  5. INSUFFICIENT_DATA / DATA_UNAVAILABLE: Incomplete comparison windows or missing Search Console export.

πŸ“… Frozen Comparison Windows (September 2026 Spam Update)

  • PRE Window: 2026-09-10 to 2026-09-23 (14 days, matched weekdays)

  • ROLLOUT Window: 2026-09-24 to 2026-10-07 (14 days, matched weekdays)

  • COMPLETION Day: 2026-10-08 (1 day recorded separately)

  • POST Window: 2026-10-09 to 2026-10-22 (marked INCOMPLETE; no future data extrapolated)

πŸ’» Triage CLI Commands

# Run triage on a Search Console performance export
siteprobe update-triage --csv ./gsc_performance.csv

# Run triage with simultaneous technical site audit
siteprobe update-triage --csv ./gsc_performance.csv --url https://example.com

# Export machine-readable JSON triage report
siteprobe update-triage --csv ./gsc_performance.csv --output ./triage-report.json

# Test with synthetic benchmark dataset
siteprobe update-triage --csv examples/update-impact/sample-input.csv --output examples/update-impact/sample-output.json

System Diagnostics

# Inspect environment and optional integration status
siteprobe doctor

# List configured providers
siteprobe integrations

πŸ€– AI Assistant & Agent Skill Quickstart (Codex, Antigravity, Claude, Cursor)

SiteProbe includes first-class rules and intake guidelines for all major AI coding environments:

πŸ“‹ What AI Agents Ask For On First Use

Before running any analysis, AI assistants are instructed to check prerequisites and ask for required inputs:

  1. Environment Check: Run siteprobe doctor to verify CLI and active tools.

  2. Website Audit (siteprobe audit): Requires Target URL (e.g. https://example.com) and optional report language (en, fa, tr).

  3. Google Update Triage (siteprobe update-triage): Requires Search Console performance CSV (date,clicks,impressions) and manual action status.

  4. Automated Fixes (siteprobe fix): Requires local source code repository path (--repo <path>) and audit.json.


1. Claude Code

Point Claude Code to the skill or copy it into your local skills directory:

# Copy to local skills directory
mkdir -p ~/.claude/skills
cp -r skills/siteprobe ~/.claude/skills/

Tested Invocation:

claude "Read skills/siteprobe/SKILL.md and audit https://example.com, then fix safe issues in this project."

2. OpenAI Codex / CLI Agents

Codex automatically reads repository guidelines from AGENTS.md:

codex "Audit https://example.com using the siteprobe CLI and verify all changes."

3. Google Gemini / Antigravity

In Antigravity or Gemini CLI, reference skills/siteprobe/SKILL.md or copy it to ~/.gemini/config/skills/siteprobe/:

cp -r skills/siteprobe ~/.gemini/config/skills/

Tested Invocation:

"Audit this website and fix all safe issues you can verify following the siteprobe skill workflow."

4. Cursor IDE

Cursor automatically picks up .cursorrules and .cursor/rules/siteprobe.mdc in the repository root. You can also mention the skill directly:

@skills/siteprobe/SKILL.md Audit https://example.com and apply verified fixes.

πŸ”Œ Model Context Protocol (MCP)

Launch SiteProbe's MCP server over stdio:

siteprobe serve-mcp

Adding to Claude Desktop or Agent MCP Configuration

Add to your claude_desktop_config.json or agent settings:

{
  "mcpServers": {
    "siteprobe": {
      "command": "siteprobe",
      "args": ["serve-mcp"]
    }
  }
}

Exposed MCP Tools:

  • start_audit(url, max_pages, language): Initiates background audit job.

  • get_audit_status(job_id): Checks job status.

  • get_findings(job_id, category, severity): Returns filtered audit findings.

  • get_geo_findings(job_id): Returns GEO score and AI crawler accessibility.

  • create_remediation_plan(job_id): Generates actionable fix plan.

  • apply_safe_fixes(job_id, repo_path): Applies safe code modifications.

  • verify_fixes(job_id, repo_path): Verifies fix results.

  • generate_report(job_id, format): Exports report in HTML, JSON, or Markdown.


πŸ”— External Integrations

All external integrations are strictly optional and degrade gracefully:

  • Google Search Console: Set GOOGLE_APPLICATION_CREDENTIALS to correlate audit findings with impressions, CTR, and search queries.

  • Google Analytics 4: Set GA4_PROPERTY_ID to connect technical defects with conversion drop-offs.

  • DataForSEO: Set DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD for SERP volume and backlink data.

  • Lighthouse / Chrome: Available automatically when Node.js and Chrome are detected.

  • Playwright: Installed via pip install "siteprobe[browser]".


🐳 Docker

Run SiteProbe via Docker with zero host dependencies:

docker build -t siteprobe .
docker run --rm -v $(pwd)/reports:/app/reports siteprobe audit https://example.com --output /app/reports

Or with docker-compose:

docker-compose up

πŸ—οΈ Architecture

siteprobe/
β”œβ”€β”€ src/siteprobe/
β”‚   β”œβ”€β”€ cli/          # Typer CLI commands
β”‚   β”œβ”€β”€ core/         # Audit orchestrator, scoring model, YAML loader
β”‚   β”œβ”€β”€ crawler/      # AsyncIO polite crawler, SQLite storage, robots/sitemaps
β”‚   β”œβ”€β”€ checks/       # 9 check categories (Technical, Onpage, Schema, GEO, etc.)
β”‚   β”œβ”€β”€ integrations/ # Modular adapters (GSC, GA4, DataForSEO, Lighthouse, Playwright)
β”‚   β”œβ”€β”€ remediation/  # Risk-classified planner, atomic file handlers, snapshot/rollback
β”‚   β”œβ”€β”€ verification/ # Post-fix verification engine
β”‚   β”œβ”€β”€ reporting/    # Interactive HTML dashboard, JSON, and Markdown reporters
β”‚   β”œβ”€β”€ updates/      # Google algorithm update triage engine & frozen windows
β”‚   β”œβ”€β”€ i18n/         # Locales (English, Persian, Turkish) and translation engine
β”‚   β”œβ”€β”€ models/       # Pydantic data schemas
β”‚   └── mcp/          # FastMCP / Standard MCP server
β”œβ”€β”€ skills/
β”‚   └── siteprobe/    # Canonical Agent Skill (SKILL.md, references, scripts)
β”œβ”€β”€ tests/            # Automated test suite + mock website fixture
└── docs/             # Technical architecture and user guides

πŸ›‘οΈ Remediation Safety & Rollback

SiteProbe is engineered with defensive patterns:

  • Pre-Flight Snapshot: Every file about to be edited is captured in an in-memory snapshot.

  • Format Preservation: HTML changes use semantic tag injection preserving surrounding structure.

  • Automatic Rollback: If a verification check fails after editing, SiteProbe can immediately restore files to their exact pre-fix state.

  • Clean Diffs: Unified diffs are printed to the console and saved in remediation reports.


πŸ—ΊοΈ Roadmap

  • v0.1.0: Core async crawler with SQLite storage

  • v0.1.0: 24 deterministic checks across 9 categories

  • v0.1.0: GEO / AI-search readiness scoring

  • v0.1.0: Remediation framework with safe autofixes

  • v0.1.0: Before/after verification engine

  • v0.1.0: Standalone interactive HTML reporting

  • v0.1.0: Multilingual support (en, fa, tr)

  • v0.1.0: FastMCP server & Agent Skill specification

  • v0.2.0: Evidence-based Google Update Impact Triage (September 2026 Spam Update)

  • v0.2.0: Deep JS rendering via distributed Playwright cluster

  • v0.2.0: Automated GitHub Pull Request creation CLI command (siteprobe pr)

  • v0.3.0: Native headless CMS plugins for WordPress and Shopify API-based auto-remediation


πŸ’¬ Community & Contributing

Contributions are welcome! Please read CONTRIBUTING.md and our CODE_OF_CONDUCT.md.

# Run test suite
pytest -v

πŸ”’ Security

For security vulnerability disclosures, please review SECURITY.md and contact taqimolavi@gmail.com.



SiteProbe's SSR and rendering analysis draws architectural inspiration from prominent technical web tooling:

  • is-ssr & regex/ast hydration analyzers: Inspecting hydration state payloads (__NEXT_DATA__, __NUXT_DATA__, window.__remixContext, astro-island).

  • puppeteer-ssr-checker & Rendertron: Comparing initial raw server markup against rendered client DOM.

  • Model Context Protocol (@modelcontextprotocol/server-puppeteer & server-fetch): Standardizing browser inspection primitives and raw HTTP fetching for AI agents.


πŸ“„ License

SiteProbe is licensed under the MIT License. Copyright &copy; 2026 Taqi Molavi.

Related MCP Connectors

  • Website QA for your coding agent: audit SEO, performance, security, accessibility over MCP.

  • Your agent needs to crawl a site and say what is wrong with it β€” broken tags, duplicate content, pages nothing can index, resources that never load. **What you can ask for** β€’ "Crawl this site and list every page with a duplicate title or missing description." β€’ "Which pages are non-indexable, and why?" β€’ "Run Lighthouse on these URLs and give me the failing audits." β€’ "Show the internal link graph and the orphan pages." β€’ "Give me this page's raw HTML and its microdata." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-onpage/mcp and sign in with OAuth β€” there is no key to create or paste. 20 tools: submit a crawl and read its summary, pages, resources, links and waterfall; duplicate content and duplicate tags; keyword density; non-indexable and uncrawlable resources; parsed content, raw HTML, microdata, screenshots and Lighthouse. **Why this rather than the source** A crawler you drive from the agent, with the audit results as structured data rather than a PDF. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the broken pages here, then ask the same agent what those pages used to rank for β€” without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once β€” rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.

  • SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.

  • Screenshot, diff, audit and sitemap-capture any web page β€” 5 MCP tools for AI agents.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLM agents to crawl and audit websites for technical SEO and GEO issues, providing actionable fixes via tools like crawl_site and explain_issue.
    240 npm
    111
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Exposes the OctoBoost SEO API as MCP tools so agents can audit websites with compact, structured results instead of fetching and parsing raw HTML.
    4
    94 npm
    -
  • A
    license
    A
    quality
    A
    maintenance
    Provides AI-visibility scoring and site auditing capabilities for websites, enabling agents to check how sites appear in AI engines like ChatGPT and Perplexity, run full SEO/security audits, and monitor changes over time.
    15
    350 npm
    1
    MIT