关于 GEO Inspector
GEO Inspector 是用于检查网站如何向 AI 系统呈现自身的 MCP 服务。网站所有者和分析人员可通过四种工具检查爬虫规则、llms.txt、结构化数据和索引指令。
主要功能
- 01检查 robots.txt 中的 AI 爬虫规则
- 02检查 llms.txt 和 llms-full.txt
- 03盘点 JSON-LD 与 schema.org 类型
- 04检查 meta 和 X-Robots-Tag 指令
- 05返回易读摘要和结构化 JSON
适用场景
- 01检查是否允许 AI 爬虫访问
- 02确认网站是否提供 llms.txt
- 03查看文章中的结构化数据
- 04检查页面索引指令
MCP 相关
向 MCP 客户端提供四种网站检查工具:robots.txt 规则、llms.txt 文件、schema 标记和 meta 索引指令。每种工具均返回易读摘要和结构化 JSON。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 网站 URL。协议可省略,例如 example.com 即可。 |
| path | string | 否 | 要评估访问权限的路径。默认为 / |
详细介绍
geo-inspector-mcp
一个 MCP 服务,为 AI 助手提供四种工具,用于检查网站如何向其他 AI 系统展示自己:它屏蔽了哪些 AI 爬虫、是否发布了 llms.txt、提供了哪些 Schema 标记,以及如何设置索引指令。
已发布到 npm,并以 io.github.Bigsupe55/geo-inspector-mcp 列入官方 MCP Registry。可与 Claude Code、Claude Desktop 或任何 MCP 客户端配合使用。

上方的工具输出是通过 MCP stdio 驱动已构建的服务,对 nytimes.com、docs.anthropic.com
和 stripe.com 进行实时运行后逐字记录的。站点地图列表折叠为计数;其他内容均未编辑。运行 npm run demo 重新生成。
为什么要开发这个项目
AI 助手正逐渐成为人们查找和引用内容的主要方式,而网站会通过少数几个基础配置文件向 AI 系统表明自己的意图:针对 AI 爬虫的 robots.txt 规则、新兴的 llms.txt 标准、schema.org 结构化数据,以及元指令。手动检查这些内容意味着要同时处理 curl、在脑中解析 robots.txt,以及查看网页源代码。这个服务将所有这些内容转化为你可以直接询问 Claude 的问题。
快速开始
npx -y geo-inspector-mcp
安装到此为止。将 MCP 客户端指向它:
Claude Code
claude mcp add geo-inspector -- npx -y geo-inspector-mcp
Claude Desktop(claude_desktop_config.json)
{
"mcpServers": {
"geo-inspector": {
"command": "npx",
"args": ["-y", "geo-inspector-mcp"]
}
}
}
然后可以询问:“nytimes.com 屏蔽了哪些 AI 爬虫?”或“stripe.com 是否发布了 llms.txt?”
工具
| 工具 | 检查内容 | 示例问题 |
|---|---|---|
check_robots_txt | 根据 RFC 9309,检查哪些 AI 爬虫(GPTBot、ClaudeBot、PerplexityBot、Google-Extended、CCBot 等)被允许或屏蔽,以及站点地图 | “OpenAI 可以用 example.com 训练吗?” |
fetch_llms_txt | 检查是否存在 /llms.txt 和 /llms-full.txt,以及它们是否符合规范 | “example.com 是否已采用 llms.txt?” |
detect_schema_markup | JSON-LD 区块、schema.org 类型清单、与 AI 相关的类型,以及 sameAs 消歧 | “这篇文章包含哪些结构化数据?” |
check_meta_directives | Meta robots 标签(包括 noai/noimageai 和特定机器人的标签)以及 X-Robots-Tag 标头 | “此页面可以被编入索引吗?” |
每种工具都会返回易读的摘要,以及供程序使用的结构化 JSON(structuredContent)。
构建方式
MCP 服务的有趣之处不在于工具,而在于围绕这些工具的契约。
每个工具都会返回两样内容。 一份供模型推理的可读摘要,以及供下游计算使用的
structuredContent。这种拆分使单独的评分层(ai-visibility-audit)
能够从模型以散文形式读取的同一次调用中,得出确定性的数值。模型
无需将自己的工具输出重新解析为数据。
解析器是纯函数。 robots.txt、llms.txt、JSON-LD 和元指令
分别独立解析,不进行 I/O,并使用基于固定测试数据的测试。工具处理器只是一个薄壳:获取、解析、格式化。这样无需联网
即可测试行为,也因此测试套件无需录制固定测试数据,也无需访问任何网站即可运行。
所有网络访问都通过同一个辅助函数。 单一的获取路径设有大小上限、 重定向限制和超时。MCP 服务运行在他人的 Agent 循环中,并使用他们的 API 额度,因此可能卡住或传输无界响应的工具, 足以毁掉一次会话。设置一个统一的入口,就能确保在新增工具时不会忘记这些限制。
robots.txt 解析遵循 RFC 9309,而非使用正则表达式,因为该工具的全部价值
就在于准确判断特定爬虫是否获准访问。匹配范围最长者优先,
用户代理组会合并,而 Allow 可以覆盖范围更广的 Disallow。
开发
npm install
npm test # vitest unit + integration tests
npm run build # bundle to dist/
npx @modelcontextprotocol/inspector node dist/index.js # poke it interactively
解析器是带有基于固定测试数据的测试的纯函数;所有 HTTP 请求都通过同一个设有大小上限和重定向限制的获取辅助函数。
重新生成演示 GIF
npm run demo # build, capture, render
也可以分步执行:
npm run demo:capture # drives the built server over MCP stdio, writes scripts/demo-data.json
npm run demo:render # renders docs/demo.gif from that JSON (needs: pip install Pillow)
demo-data.json 已提交到仓库,因此离线也能渲染,而且 GIF 中的说法始终可审计:将其与工具今天返回的内容进行差异对比即可。录制脚本不会模拟任何内容,因此如果某个网站更改了 robots.txt,演示也会随之改变。流程中唯一由人编写的文本是问题行;要检查的网站在 scripts/capture-demo.mjs 顶部配置。
相关项目
ai-visibility-audit 是构建在本项目之上的工作流层:它会编排这四个工具,生成一份带评分、可交付给客户的报告。本仓库提供的是原始工具。
许可证
MIT,详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。