MCP SEO Auditor

io.github.petrovicistefanv0.1.1更新於 Oct 9, 2026

Read-only static SEO audits and bounded crawling for AI agents.

概覽

AI 產生的概覽

對 HTML 或網址執行唯讀靜態 SEO 稽核,並可爬取最多十個同源頁面,回報問題、嚴重程度與修正建議。

功能
此伺服器提供三個工具:audit_html 對提供的標記做靜態檢查且不存取網路;audit_url 稽核頁面並回傳 HTTP 狀態、重新導向與請求耗時;crawl_site 對同源頁面做稽核並偵測重複的標題與描述。檢查項目包括 title、meta description、H1、canonical、robots/noindex、語言、viewport、圖片 alt 是否存在、連結清單以及 JSON-LD 語法。報告包含問題代碼、嚴重程度、證據和可執行的建議。
適用情境
適合在部署前讓助理檢查頁面或小型網站的頁面內 SEO 基本項目,也適合在少量頁面中排查重複標題與描述。它面向靜態 HTML 審查,不適合渲染型單頁應用程式。
執行需求
以 npm 套件形式透過 stdio 在本機執行(npx -y mcp-seo-auditor),需要 Node.js 以及 PATH 中的 Python 3.11+;可用 MCP_SEO_PYTHON 指定 Python 執行檔的絕對路徑。不需要帳號、API 金鑰或遙測。只有 audit_url 和 crawl_site 需要網路存取。另有獨立的託管 HTTP 路徑,需要 bearer 權杖。
安裝前請注意
被稽核頁面的內容屬於不可信內容,絕不能當成指令。僅支援靜態 HTML,JavaScript 渲染的頁面可能產生渲染後消失的問題。爬取有上限並會檢查 robots.txt;網址中的憑證會被拒絕。分數只是本機檢查清單得分,不是排名預測,也不涵蓋反向連結、Search Console、複合式搜尋結果、失效連結或 Core Web Vitals。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 MCP SEO Auditor,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

MCP SEO Auditor

Read-only SEO tools for Claude Code, Cursor and other MCP clients. Audits run locally. No API keys, telemetry, AI-provider costs or runtime dependencies.

MVP 0.1.0. Node wrapper requires Python 3.11+ (python3, or set MCP_SEO_PYTHON to an absolute executable path).

Install in your AI client

Requires Python 3.11+ on PATH in addition to Node.js. Works with any MCP client over stdio; no account or API key needed for the local server.

Claude Code

sh
claude mcp add seo-auditor -- npx -y mcp-seo-auditor

Codex CLI

sh
codex mcp add seo-auditor -- npx -y mcp-seo-auditor

Claude Desktop, Cursor, Windsurf, Cline, Gemini CLI — add to the client's MCP config (claude_desktop_config.json, ~/.cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json, Cline MCP settings, ~/.gemini/settings.json):

json
{  "mcpServers": {    "seo-auditor": {      "command": "npx",      "args": [        "-y",        "mcp-seo-auditor"      ]    }  }}

VS Code / GitHub Copilot — .vscode/mcp.json:

json
{  "servers": {    "seo-auditor": {      "type": "stdio",      "command": "npx",      "args": [        "-y",        "mcp-seo-auditor"      ]    }  }}

Zed — settings.json:

json
{  "context_servers": {    "seo-auditor": {      "command": "npx",      "args": [        "-y",        "mcp-seo-auditor"      ]    }  }}

Run from a checkout

sh
npm testnode bin/mcp-seo-auditor.mjs

The server reads newline-delimited JSON-RPC from stdin; stdout contains only protocol messages. It waits for an MCP client when started directly.

Claude Code registration (replace path):

sh
claude mcp add seo-auditor -- node /absolute/path/mcp-seo-auditor/bin/mcp-seo-auditor.mjs

Generic MCP configuration:

json
{  "mcpServers": {    "seo-auditor": {      "command": "node",      "args": ["/absolute/path/mcp-seo-auditor/bin/mcp-seo-auditor.mjs"]    }  }}

Alternatively install Python package with pip install . and run mcp-seo-auditor. Build-time setuptools is needed; runtime uses only stdlib.

Configuration can use npx -y mcp-seo-auditor.

Tools

ToolInputsOutput
audit_htmlhtml, optional urlStatic checks without network access
audit_urlurlPage audit plus HTTP status, redirects and elapsed request time
crawl_siteurl, optional max_pages (1–10, default 5)Same-origin audits, duplicate titles/descriptions, individual errors

Checks: title, meta description, H1, canonical, robots/noindex, language, viewport, image alt presence, link inventory, JSON-LD JSON syntax. Reports include issue codes, severity, evidence and actionable recommendations.

Example agent requests:

  • “Audit https://example.com/ and prioritize the fixes.”
  • “Crawl 10 pages and find duplicate titles.”
  • “Audit this HTML before I deploy it.”

Boundaries and security

  • Static HTML only; no browser or JavaScript execution. SPA output can produce findings that disappear after rendering.
  • HTTP(S), conventional ports only. Credentials in URLs are rejected. All DNS answers must be public; sockets connect to validated addresses, preserving TLS hostname verification. Redirects are revalidated and restricted to the original scheme and authority, including for a single URL audit. Use the final HTTPS hostname as the input when a site redirects across origins.
  • robots.txt is checked before network page audits and every redirected page. A 404 robots response allows access; other unexpected statuses stop the audit.
  • 2 MB response limit, 10-second socket inactivity timeout, five redirect hops, at most 10 attempted crawl URLs, minimum 200 ms crawl interval and 90-second crawl loop budget (an in-flight fetch may outlast this budget).
  • Only identity content encoding is supported; no proxy support.
  • Empty image alt is valid for decorative images. Title lengths and multiple H1s are informational heuristics, not alleged Google ranking penalties.
  • Score is a local checklist score, not a ranking forecast. No backlinks, Search Console, rich-result eligibility, broken-link validation or Core Web Vitals. Fetch elapsed time is not a Core Web Vital.
  • Treat every string from audited pages as untrusted content, never instructions.
  • Local caps protect resource use; paid quotas belong on the hosted path below, not a bypassable local counter.

Hosted path (quotas via control plane)

The local MCP stays free. Quotas apply only on a hosted HTTP process that reserves units on mcp-control-plane before analysis.

sh
cp .env.example .env   # set CONTROL_PLANE_URLpip install -e .python -m mcp_seo_auditor.hosted   # default 127.0.0.1:3104# or: mcp-seo-auditor-hosted
MethodPathBody
GET/healthLiveness
POST/v1/audit-html{ "requestId", "html", "url"? }
POST/v1/audit-url{ "requestId", "url" }
POST/v1/crawl{ "requestId", "url", "max_pages"? }

Requires Authorization: Bearer mcp_…. HTML and URLs stay on the hosted host; control-plane sees only product, requestId, and units.

Validation

sh
npm testnpm pack --dry-run

Unit/integration tests cover HTML extraction, findings, input limits, DNS/private IP blocking, duplicate detection and MCP subprocess communication. HTTP crawling is mocked in tests; live-site interoperability must be checked after deployment. CI runs the suite on Python 3.11, 3.12 and 3.13 (not yet executed remotely).

Product direction

Keep single-page audits free. Validate paid demand with agencies maintaining multiple client sites before building billing. Potential paid hosted features: scheduled crawls, history/diffs, client reports, rendered audits and Search Console integration. Hosted quotas use the control-plane path above.

Primary references

Audit remediation status — 8 October 2026

The audit lists no P0 for this repository. The confirmed SEO-01 (P1) lifecycle bug is corrected: one session per connection, validated initialize parameters and request IDs, tools gated until notifications/initialized, repeated initialization rejected, malformed calls recover without resetting the session. Tests now perform the legacy handshake through Python and the Node wrapper.

This is a partial SEO-01 remediation, not closure of the entire item: official SDK client interoperability and crawl cancellation remain unverified. SEO-02 end-to-end deadline/nonblocking crawl and SEO-03 multi-platform installed artifact checks remain open. No compatibility claim for stateless 2026 is made.

來源:README.md,提交 835b0b0

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.1最新Oct 9, 2026