Website audits for AI agents: GDPR consent, speed, WCAG, SPF/DMARC and AI-search readiness (MCP server).
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Documented (README)
claude mcp add siteverdict-mcp -- npx -y @siteverdict/mcp{
"mcpServers": {
"siteverdict-mcp": {
"command": "npx",
"args": ["-y", "@siteverdict/mcp"],
"env": {
"APIFY_TOKEN": "<apify_token>",
"SITEVERDICT_HTTP_HOST": "<siteverdict_http_host>"
}
}
}
}APIFY_TOKENSITEVERDICT_HTTP_HOSTMCP Servers overview
# SiteVerdict — Website Audit Tools (MCP server)
Website audit tools for AI agents. Ask Claude, ChatGPT, Cursor or any MCP client to *"audit my website and tell me what to fix first"*. It runs real browser-based checks and returns a ranked fix plan:
| Tool | What it checks |
|---|---|
| `full_website_audit` | Runs every check below **in parallel**, then returns an overall score, an executive summary and **one prioritised fix list** |
| `audit_tracking_consent` | Cookie consent and GDPR / UK GDPR / PECR: tags that fire before consent or after "Reject", tracking cookies, Google Consent Mode v2, broken GA4/GTM tags, duplicate page_views |
| `scan_speed_and_revenue` | Core Web Vitals (LCP, INP, CLS, TTFB), page weight and bottlenecks, plus an estimate of **revenue lost to slow pages** if you give traffic and order value |
| `audit_accessibility_wcag` | WCAG 2.2 A/AA/AAA (axe-core), mapped to success criteria and to the European Accessibility Act / EN 301 549 |
| `check_domain_email_health` | MX, SPF, DKIM, DMARC, BIMI, MTA-STS, DNSSEC, CAA, TLS expiry, spoofing risk and Gmail/Yahoo bulk-sender gaps |
| `check_ai_search_readiness` | Can ChatGPT, Perplexity and Google AI Overviews read and cite you? Covers robots.txt AI bots, llms.txt, schema.org, rendering, canonical tags and sitemap |
| `get_audit_results` | Collects the results of a long scan that was still running, at no extra cost |
Prompts: `website_fix_plan`, `cookie_consent_check`, `prelaunch_check`. Resources: `siteverdict://checks`, `siteverdict://guide/scoring`.
## How billing works
Each check is an [Apify](https://apify.com) Actor. The server runs it **on your own Apify account** using your `APIFY_TOKEN`, and Apify bills you directly at its pay-per-event price. This server has no payments, no accounts and no stored data.
- Every run has a spend cap (`maxTotalChargeUsd`, default **$2**, configurable per call with `maxCostUsd`).
- If you cancel a tool call, the Apify run is aborted, so you stop paying.
- You can see run costs in your [Apify console](https://console.apify.com/billing).
Get a token at **https://console.apify.com/settings/integrations**. To try the tools without a token, set `SITEVERDICT_DRY_RUN=1`. Every result is then built-in **sample data** and is clearly labelled.
## Install
Requires Node.js 20+. Replace `apify_api_xxx` with your token.
### Claude Code
```bash
claude mcp add --env APIFY_TOKEN=apify_api_xxx --transport stdio siteverdict -- npx -y @siteverdict/mcp
```
### Claude Desktop
Go to Settings → Developer → Edit Config (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"siteverdict": {
"command": "npx",
"args": ["-y", "@siteverdict/mcp"],
"env": { "APIFY_TOKEN": "apify_api_xxx" }
}
}
}
```
You can also install the one-click `.mcpb` bundle from the [Releases](https://github.com/siteverdict/siteverdict-mcp/releases) page. Claude Desktop asks for your token and stores it securely.
### Cursor
Add this to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project):
```json
{
"mcpServers": {
"siteverdict": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@siteverdict/mcp"],
"env": { "APIFY_TOKEN": "${env:APIFY_TOKEN}" }
}
}
}
```
### VS Code (GitHub Copilot agent mode)
Add this to `.vscode/mcp.json`. VS Code prompts for the token once and stores it encrypted:
```json
{
"inputs": [
{ "type": "promptString", "id": "apify-token", "description": "Apify API token", "password": true }
],
"servers": {
"siteverdict": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@siteverdict/mcp"],
"env": { "APIFY_TOKEN": "${input:apify-token}" }
}
}
}
```
Or run: `code --add-mcp '{"name":"siteverdict","command":"npx","args":["-y","@siteverdict/mcp"],"env":{"APIFY_TOKEN":"${input:apify-token}"}}'`
### Windsurf / Devin Desktop
Add this to `~/.codeium/windsurf/mcp_config.json`. Newer builds use `~/.config/devin/mcp_config.json`, or `%APPDATA%\devin\mcp_config.json` on Windows:
```json
{
"mcpServers": {
"siteverdict": {
"command": "npx",
"args": ["-y", "@siteverdict/mcp"],
"env": { "APIFY_TOKEN": "${env:APIFY_TOKEN}" }
}
}
}
```
### Cline
Install from the Cline MCP Marketplace once the listing is live, or add this to `cline_mcp_settings.json`:
```json
{
"mcpServers": {
"siteverdict": {
"command": "npx",
"args": ["-y", "@siteverdict/mcp"],
"env": { "APIFY_TOKEN": "apify_api_xxx" },
"disabled": false,
"autoApprove": []
}
}
}
```
### OpenAI Codex CLI
```bash
codex mcp add siteverdict --env APIFY_TOKEN=apify_api_xxx -- npx -y @siteverdict/mcp
```
Or add this to `~/.codex/config.toml`:
```toml
[mcp_servers.siteverdict]
command = "npx"
args = ["-y", "@siteverdict/mcp"]
tool_timeout_sec = 600
[mcp_servers.siteverdict.env]
APIFY_TOKEN = "apify_api_xxx"
```
Scans can take a few minutes, so raise `tool_timeout_sec` from its default of 60.
### Gemini CLI
```bash
gemini mcp add -e APIFY_TOKEN=apify_api_xxx siteverdict npx -y @siteverdict/mcp
```
### ChatGPT and Claude (remote connector with OAuth)
These clients need a **remote** HTTPS URL. The server ships remote mode with OAuth 2.1: CIMD/DCR client registration, PKCE, and a sign-in page where you paste your own Apify token. It also has a ChatGPT/MCP Apps score-card UI. Once the owner deploys it, add `https://mcp.webrevenuescan.com/mcp` as a custom connector, or `/mcp/<toolsets>` such as `/mcp/web+compliance`. Design and deploy steps: [docs/REMOTE.md](docs/REMOTE.md). **Not deployed yet.**
### Docker
```bash
docker run -i --rm -e APIFY_TOKEN=apify_api_xxx mcp/siteverdict
```
### Remote / Streamable HTTP (self-hosted)
```bash
SITEVERDICT_HTTP_HOST=127.0.0.1 SITEVERDICT_HTTP_PORT=3333 npx -y @siteverdict/mcp --http
# endpoint: http://127.0.0.1:3333/mcp health: /healthz
# each user sends their own token: X-Apify-Token: apify_api_xxx (or Authorization: Bearer apify_api_xxx)
claude mcp add --transport http siteverdict http://127.0.0.1:3333/mcp --header "X-Apify-Token: apify_api_xxx"
```
The server binds to localhost by default and validates `Host` and `Origin`. To serve it publicly, put it behind TLS and set `SITEVERDICT_ALLOWED_HOSTS` and `SITEVERDICT_ALLOWED_ORIGINS`.
## Toolsets (keep the tool list small)
The default is **`web`**: the 7 audit tools plus `detect_tech_stack`, `monitor_website_changes`, `fetch_clean_markdown` and `get_run_results`. To add more groups:
```bash
npx -y @siteverdict/mcp --toolsets web,compliance # or SITEVERDICT_TOOLSETS=all
npx -y @siteverdict/mcp --tools sanctions_screen,uk_property_data # explicit allow-list
```
| Toolset | Tools |
|---|---|
| `web` | full_website_audit, audit_tracking_consent, scan_speed_and_revenue, audit_accessibility_wcag, check_domain_email_health, check_ai_search_readiness, get_audit_results, detect_tech_stack, monitor_website_changes, fetch_clean_markdown |
| `marketing` | seo_rank_check, search_traffic_diagnose, google_ads_transparency, reviews_monitor |
| `leads` | find_local_businesses, company_registry_lookup, sec_filing_watch, sec_full_text_search, find_public_tenders, detect_tech_stack |
| `compliance` | sanctions_screen, validate_vat_or_company_number, extract_pdf_invoice, company_registry_lookup |
| `travel` | flight_fare_scan, flight_fare_estimate, flight_deal_alerts, check_flight_compensation, visa_entry_check |
| `property` | uk_property_data |
Some data tools can use **your own** third-party keys:
- stdio: `SITEVERDICT_SECRET_<NAME>` env vars
- HTTP: `X-SiteVerdict-Secret-<Name>` headers
Examples are `COMPANIES_HOUSE_API_KEY`, `HMRC_CLIENT_ID`, `GOOGLE_MAPS_API_KEY`, `SERPAPI_API_KEY` and `EPC_API_TOKEN`. The `siteverdict://tools` resource lists them all. Keys are never tool arguments and never appear in results. Without them, the tool uses the Actor's clearly labelled sample mode or format-only checks.
Full generated table: [marketplace/tools.md](marketplace/tools.md).
## Example prompts
- "Audit https://example.com and give me a fix plan for this week."
- "Is my cookie banner on example.co.uk GDPR-compliant? Does anything track before consent?"
- "How much revenue is my slow mobile site losing? I get 40k visits a month, a 2% conversion rate and a £70 average order."
- "Check example.com against WCAG 2.2 AA and tell me what the European Accessibility Act means for us."
- "Can people spoof email from our domain? Check SPF, DKIM and DMARC for example.com."
- "Will ChatGPT and Perplexity cite our site? Check AI-search readiness."
## Configuration
| Variable | Default | Purpose |
|---|---|---|
| `APIFY_TOKEN` | — | Your Apify token (stdio mode) |
| `SITEVERDICT_DRY_RUN` | `0` | `1` returns sample data with no Apify calls |
| `SITEVERDICT_DEFAULT_MAX_CHARGE_USD` | `2` | Spend cap per Actor run |
| `SITEVERDICT_DEFAULT_WAIT_SECS` / `SITEVERDICT_MAX_WAIT_SECS` | `240` / `900` | How long a call waits before returning `running` plus a `runId` |
| `SITEVERDICT_RATE_LIMIT_PER_MINUTE` | `20` | Tool calls per minute per client |
| `SITEVERDICT_MAX_CONCURRENT_RUNS` | `6` | Concurrent Actor runs per client |
| `SITEVERDICT_APIFY_USERNAME` | from `brand.json` | Apify account that owns the Actors |
| `SITEVERDICT_ACTOR_TRACKING_CONSENT`, `..._SPEED_REVENUE`, `..._ACCESSIBILITY`, `..._DOMAIN_EMAIL`, `..._AI_SEARCH` | `<username>/siteverdict-…` | Override individual Actor IDs |
| `SITEVERDICT_DNS_CHECK` | `1` | Resolve hostnames and reject private addresses (SSRF guard) |
| `SITEVERDICT_HTTP_HOST` / `_PORT` / `_PATH` | `127.0.0.1` / `3333` / `/mcp` | HTTP mode |
| `SITEVERDICT_ALLOWED_HOSTS` / `_ORIGINS` | localhost | Comma lists for public HTTP deployments |
## Safety
- **Read-only.** No tool changes your site. Every tool is annotated `readOnlyHint: true, destructiveHint: false, openWorldHint: true`.
- **Public targets only.** Private, loopback, link-local, CGNAT, cloud-metadata and reserved IPs, internal hostnames, non-http(s) schemes, crWhat people ask about siteverdict-mcp
What is siteverdict/siteverdict-mcp?
+
siteverdict/siteverdict-mcp is mcp servers for the Claude AI ecosystem. Website audits for AI agents: GDPR consent, speed, WCAG, SPF/DMARC and AI-search readiness (MCP server). It has 0 GitHub stars and its last recorded update is dated 2026-10-13.
How do I install siteverdict-mcp?
+
You can install siteverdict-mcp by cloning the repository (https://github.com/siteverdict/siteverdict-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is siteverdict/siteverdict-mcp safe to use?
+
Our security agent has analyzed siteverdict/siteverdict-mcp and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains siteverdict/siteverdict-mcp?
+
siteverdict/siteverdict-mcp is maintained by siteverdict. The last recorded GitHub activity is dated 2026-10-13, with 0 open issues.
Are there alternatives to siteverdict-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy siteverdict-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/siteverdict-siteverdict-mcp)<a href="https://claudewave.com/repo/siteverdict-siteverdict-mcp"><img src="https://claudewave.com/api/badge/siteverdict-siteverdict-mcp" alt="Featured on ClaudeWave: siteverdict/siteverdict-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
Reverse engineer anything with agents, from app behavior down to native binaries.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev