
site-spec
io.github.ariaxhan由 GitHub 帳號 ariaxhan 發布v0.3.2更新於 Oct 25, 2026
MCP server: audit any website for SEO, accessibility, and AI-searchability, then auto-fix it.
概覽
本機 MCP 伺服器,可稽核網站或建置目錄的 SEO、無障礙、隱私與 AI 可檢索性問題,並執行確定性修復。
- 可以做什麼
- 稽核線上 URL 或本機建置目錄,回傳每項發現的問題及其檢查 ID、嚴重程度、所在檔案與是否可自動修復,並列出引擎支援的所有檢查項目與說明。針對單一檢查 ID 套用確定性修復並回傳差異,或寫入本機目錄。將已核實的業務事實編譯為經驗證的 SiteSpec 及其可部署檔案。
- 適用情境
- 適合在助理產生或修改網站後,檢查其看不見的基礎層:robots.txt、結構化資料、canonical 與 noindex 訊號、回應標頭、無障礙語意、追蹤器以及 AI 爬蟲的存取權限。也適合在部署前做 CI 式把關,以及修復機械性問題而不必手動改檔案。
- 執行需求
- 透過 npm 套件 site-spec-mcp 以 npx 作為本機 stdio 程序執行,需要 Node 20 或更高版本。未宣告需要帳號、API 金鑰或環境變數。稽核線上 URL 需要能連線至該網站的網路;稽核建置目錄需要本機路徑。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 site-spec,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
site-spec
The invisible foundation your website is missing. Audit any site — then fix what's broken.
[npm] [npm downloads] [CI] [License: Apache-2.0]
For agents
If you are an AI coding agent deciding whether to install this: register the MCP server, then
call list_checks to learn the check ids and audit_site on a URL.
Gemini CLI: gemini extensions install https://github.com/ariaxhan/site-spec.
Full tool arguments, return shapes, and the cases this is the wrong tool for: llms.txt.
The problem
AI can generate a beautiful website in seconds. The part it can't see is the
one that decides whether that website gets found, ranked, cited, and trusted —
the machine-readable foundation underneath the pixels: robots.txt, structured
data, llms.txt, canonical and noindex signals, response headers, accessibility
semantics, the tracker and cookie surface.
That layer is invisible in a browser. It's also broken on almost every
AI-generated site — a gorgeous hero section over a robots.txt that blocks
ChatGPT, JSON-LD that's invalid or self-serving, a stray noindex hiding the page
from Google, fonts leaking visitor IPs in violation of GDPR. Nobody notices until
it's quietly costing traffic. And the more the web is generated by AI, the worse
this gets.
The solution
site-spec is the layer that verifies and repairs that foundation — for any website, however it was built. Point it at a URL. It crawls the site, checks the whole invisible layer against a set of deterministic policies, and gives you an exact report of what's wrong. Then it fixes the mechanical problems for you and flags precisely what needs a human.
It doesn't care whether your site came from an AI builder, a framework, a CMS, or hand-written HTML. It only cares whether the foundation is correct.
Try it without installing anything
site-spec.ariaxhan.workers.dev — paste a URL, get the report. No account, no signup.
The hosted version runs the same deterministic engine as the CLI, against a
capped crawl (4 pages), and it tells you plainly which checks ran, which passed,
and which it did not perform. Add ?format=json for machine-readable output:
For the full check set — broken links, missing assets, axe accessibility, HTML
validation, schema.org validation — and for the fix command, use the CLI below.
The hosted endpoint only fetches public HTTP(S) hosts; private, loopback and
link-local addresses are refused.
How to use
Requires Node 20+. No account, no API key, no SaaS.
fix writes the corrected files to ./fixed (it never overwrites anything by
default) and prints exactly what it did:
Drop audit into CI with a non-zero exit on errors to gate deploys. Both commands
work on a build/output directory too — just pass a path instead of a URL.
Use it from your coding agent (MCP)
The same engine, as an MCP server — so the agent that generated the site can also check and repair its invisible layer, without you copying reports between windows.
Codex (~/.codex/config.toml)
Or in Docker: docker run -i --rm -v $PWD:/data mcp/site-spec (mount the directory you want to audit or write to).
Four tools:
The server calls the engine in-process. It never shells out to the CLI and never hops to the hosted worker — all three are siblings over one library.
Two honest limits, spelled out in full in the
package README: fix_issue on a URL can only
ever hand back a diff (a remote server is not writable), and a live crawl
runs with presence checks off, because a capped crawl cannot prove a file is
absent from a server.
Details — what it checks, how it fixes, the philosophy, install
What it checks
Seven areas. Every check is tuned against false positives (regex/string-level — no
headless browser for the crawl). Findings are error (breaks something) or
warning (worth a look), each with a concrete fix.
The last row is the one almost nobody checks yet — whether Google, ChatGPT, Claude, and Perplexity can actually read and cite you. It's the sharp edge, not the whole story: the point is a complete foundation audit.
How fix decides
Every finding lands in one of three buckets, and the report tells you which:
- ✓ Fixed automatically — mechanical, fact-free repairs that are safe to apply:
unblocking AI crawlers, removing dead robots tokens, stripping accidental
noindex, adding the canonical URL (known from the crawl), scaffolding Open Graph from the existing title, fixing zoom-locked viewports, removing self-serving rating markup, generating asitemap.xmlfrom the crawled pages, header hygiene. - ✎ Scaffolded — things that need your real facts:
llms.txt, a JSON-LD entity, a meta description. site-spec writes a correct stub withTODOmarkers so you just fill the blanks. - ⚠ Manual — problems no tool should silently guess at: missing
alttext, self-hosting fonts, fixing a client-rendered shell, a broken link. You get a precise instruction, never a silent edit.
fix is non-destructive by default (writes to an output dir). Pass --write to
edit a local directory in place.
The philosophy
- Correctness is a policy, not a prompt. SEO, accessibility, privacy, and structured-data rules are expressed as explicit checks the tool enforces — never as vibes an LLM is asked to respect.
- Deterministic. The audit engine is pure: same input → the same report,
byte-for-byte. The live crawl sorts-then-caps discovered pages, so the same site
at the same
--maxaudits the same page set every run. No network, no randomness inside the engine. - Fix, don't lecture. A finding that can be repaired safely gets repaired. One that needs a human says exactly what the human must do.
- Source-agnostic. It audits the output, not the toolchain. AI, framework, CMS, hand-coded — all the same to it.
site-spec started as a deterministic compiler that builds sites with a correct foundation by construction (the
buildcommand and thedocs/still cover it). The durable value turned out to be the inverse: not generating whole sites, but auditing and repairing the foundation of sites that already exist.
The full CLI
--max N— page cap for a live crawl (default 25); truncation is reported, never silent.--report report.md— write the audit as a shareable Markdown document.--json— the full structured report for scripting/CI.
Install / develop
Packages
Contributing
Contributions welcome — especially new checks and fixers. See
CONTRIBUTING.md. Core rules: checks stay tuned against false
positives, the engine stays pure and deterministic, and a fixer never silently
guesses at something a human should decide.
License
Apache License 2.0. © 2026 Aria Han.
來源:README.md,提交 46fdeea
工具
0版本歷史
1- v0.3.2最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
