CrazySEO

io.github.bolidee由 GitHub 账号 bolidee 发布v0.1.2更新于 Oct 27, 2026

Audit whether ChatGPT, Gemini and Perplexity recommend a site. Readiness checks need no keys.

概览

AI 生成的概览

CrazySEO 审计 ChatGPT、Gemini 和 Perplexity 是否会推荐某个网站,并检查网站的 AI 搜索就绪度。

可以做什么
  • 对网站做 11 项 AI 就绪度审计(HTTPS、robots.txt 中的 AI 爬虫、schema.org、元信息、图片替代文本、站点地图、失效内链)
  • 规划免密钥的可见度审计:抓取站点信息并生成买家会问的问题
  • 把助手自行收集的回答计分为可见度、竞品排行和引用缺口
  • 以盲测方式向已配置的引擎查询多引擎可见度,并保留原始提问与回答
  • 列出在落败问题上被引用的来源
  • 报告当前安装可查询哪些引擎
适用场景
适用于 SEO、GEO/AEO 或营销场景,想了解买家询问推荐时 AI 助手是否会提到某个品牌,以及被引用的替代来源是哪些。就绪度审计无需密钥,也可作为部署前检查网站能否被 AI 爬取的快速手段。
运行要求
以 stdio 本地运行,通常通过 npx crazyseo mcp 启动,需要 Node.js。就绪度检查以及免密钥的规划与计分工具不需要任何凭据。跨引擎可见度至少需要 OPENAI_API_KEY、GOOGLE_API_KEY 或 PERPLEXITY_API_KEY 之一,均为可选,密钥越多覆盖引擎越多。需要能访问被审计网站和模型服务商。
安装前请注意
可见度审计会把网站内容和生成的问题发送给 OpenAI、Google 或 Perplexity,并由你自己的密钥计费,一次完整审计通常为几美分。密钥从环境变量读取,应限制权限并避免写入共享配置。就绪度检查会抓取目标网站并抽样内链,只应对你有权探测的站点使用。

安装

在 SourceWeft 中

  1. 打开 控制台中的 CrazySEO,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

CrazySEO

Find out whether ChatGPT, Gemini and Perplexity recommend your site — and why they don't.

An open-source GEO / AEO auditor and MCP server. No account. No card. Your keys.

[CI] [License: AGPL v3] [MCP]


[crazyseo readiness audit of stripe.com, scoring 82 out of 100 across 11 technical checks]

Your customers have stopped googling. They ask an assistant "best CRM for small law firms?" and buy whatever it names. If it doesn't name you, you don't exist — and no analytics tool will tell you, because there is no click to measure.

This audits it directly: it asks the questions your buyers ask, records the answers word for word, and shows you which sources the models cite instead of you.

Why another one

Most tools in this space ask the model "what do you think of Acme?" — which tells you nothing, because naming the brand in the prompt guarantees it shows up in the answer.

This asks blind. Your brand never appears in the question, so the answer you get back is the answer a real buyer gets. That is the whole difference between a number you can act on and a number that flatters you.

Three more things a prompt wrapper can't do:

  • Verbatim receipts. Every result carries the exact prompt and the model's raw answer, so you can paste it into ChatGPT yourself and reproduce it.
  • Honest coverage. If an engine fails or rate-limits, the report says so. It never quietly drops an engine and calls the remaining average your score. If a site can't be reached, it refuses to score it rather than inventing a number.
  • A real readiness audit. 11 checks against your actual site — not a prompt.

Quick start — no API keys needed

The readiness audit runs against any site with zero configuration and zero cost:

bash
npx crazyseo readiness yourbrand.com

Nothing to install, no signup, no key. Or run it from source:

bash
git clone https://github.com/d08m/crazyseo && cd crazyseonpm install && npm run buildnode dist/cli.js readiness yourbrand.com
AI-READINESS  stripe.com                                    82/100
  ✓ Served over HTTPS  ✓ AI crawlers allowed  ✓ Structured data (schema.org)  ✓ llms.txt published (bonus)  ✓ Title + meta description  ✓ Readable without JavaScript  ✓ Canonical URL set  ✓ Social preview tags (Open Graph)  ✗ Single, clear H1      2 H1 tags — ambiguous which is the main topic  ✗ Images have alt text      27 of 31 images missing alt text  ✓ Sitemap referenced  ✓ No broken internal links
  → 2 issues to fix

(That's real output — stripe.com, unmodified.)

11 scored checks, all first-party fetches: HTTPS · AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended…) unblocked in robots.txt · schema.org markup · title + meta · readable without JavaScript · canonical · Open Graph · single-H1 structure · image alt-text coverage · sitemap referenced · broken internal links (sampled).

Plus llms.txt, shown but deliberately unscored: Google's own AI-optimization guidance says it has no effect in Google Search, so it can't fairly cost anyone points — but some agents do read it, so it's still worth seeing.

Exits non-zero when checks fail, so you can gate a deploy on it:

yaml
- run: npx crazyseo readiness ${{ env.SITE }}

Machine-readable output for pipelines:

bash
npx crazyseo readiness yourbrand.com --json > report.json

The visibility audit — bring your own keys

To measure what the engines actually say, add whichever keys you have. Any one is enough; more engines means more coverage.

bash
export OPENAI_API_KEY=...      # optionalexport GOOGLE_API_KEY=...      # optionalexport PERPLEXITY_API_KEY=...  # optional
npx crazyseo audit yourbrand.com

It reads your site, infers what you sell, generates the questions your buyers would actually ask, and asks all of them — blind — across every engine you configured.

VISIBILITY  lymexa.com                       0 of 8 answers  ·  0%  Lymexa — premium pickleball paddles and recovery gear brand, USA
  "What are the best premium pickleball paddles for advanced players?"    Gemini      ✗ not named  JOOLA, CRBN, Selkirk, Six Zero    Perplexity  ✗ not named  JOOLA, Selkirk, CRBN, Gearbox
  "Which high-performance pickleball paddle brands are manufactured in the USA?"    Gemini      ✗ not named  Engage, Paddletek, Selkirk, Thompson Pickleball    Perplexity  ✗ not named  Engage, Paddletek, Selkirk, GAMMA
  RECOMMENDED INSTEAD    Selkirk                      4× named    Therabody                    4× named    Hyperice                     4× named
  CITATION GAP — cited on the questions you lost    reddit.com                   7×  Community discussion AI trusts for real opinions    youtube.com                  6×  Video content AI pulls into answers    pickleheads.com              4×  Third-party source AI cites instead of you
  ! ChatGPT did not respond — this score covers the rest only.

(Real output, trimmed for length. Note the last line: when an engine fails, the report says so instead of quietly averaging the rest and calling it your score.)

Runs on your own keys — a full audit is typically a few cents.

Use it from your agent

It ships as an MCP server, so Claude, ChatGPT or any MCP-capable agent can run it directly:

bash
claude mcp add --transport stdio crazyseo -- npx -y crazyseo mcp

It's also packaged as a Claude Code plugin, which wires up the MCP server and the skill below in one step:

bash
/plugin marketplace add d08m/crazyseo/plugin install crazyseo@crazyseo

Then just ask:

"Is my site visible in AI search? What's cited instead of me?"

toolwhat it doeskeys
readiness_check11-point AI-readiness auditnone
audit_plansite facts + buyer questions to ask, for a keyless auditnone
audit_scorescores what the agent found: visibility, leaderboard, citation gapnone
audit_visibilityblind multi-engine visibility + verbatim answersBYO
citation_gapsources cited on the questions you loseBYO
engine_statuswhich engines this install can querynone

You don't need an API key to get the interesting part. audit_plan and audit_score let the assistant you're already talking to be the engine: it fetches your site, writes the buyer questions, answers them with its own web search, and hands the results back for scoring. Ask "is my site visible in AI search?" and you get a real citation gap with no signup, no key, no billing.

The tool still does the arithmetic, and still refuses a question that names your brand — that guard is what makes the number worth having. It measures visibility in that assistant, which the report says plainly. For the cross-engine picture, use audit with your own keys.

There's also a SKILL.md so agents know how to interpret the numbers — that readiness isn't visibility, that 0% is a normal starting point, and that partial engine coverage must be reported as partial.

Use it as a library

ts
import { checkReadiness } from 'crazyseo';
const report = await checkReadiness('example.com');console.log(report.score, report.checks);

How this stays free

Everything here is free forever, self-hosted, AGPL — full capability, no feature locks, no telemetry, no account, no upsell in the output.

There is no paid tier today, and this README won't pretend otherwise. If one ever appears it will be for the single thing self-hosting genuinely can't give you — scheduled re-runs, stored history and alerts, the infrastructure to watch a number move over months without running anything yourself. The auditing itself stays here, complete, under AGPL.

Which is also the answer to "what stops this going closed later": the licence. Anyone offering it as a hosted service has to open their version too, including whoever wrote it.

Contributing

Issues and PRs welcome. The checks are deliberately conservative: every one has to be something an assistant or its crawler actually depends on, and verifiable by hand. If a check can't be justified that way, it doesn't belong here.

CONTRIBUTING.md covers the setup, the bar a new check has to clear, and what an engine adapter needs to get right.

License

AGPL-3.0. Use it, fork it, run it commercially, embed it in your own tooling. If you offer it to others as a hosted service, that service must be open too.


Built because "am I in the answer?" deserves a real measurement, not a vibe.

来源:README.md,提交 5e31309

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分