mcpField
G
GEO Inspector

GEO Inspector

本地服务
github.com/Bigsupe55商业与营销07 周前更新

关于 GEO Inspector

GEO Inspector 是用于检查网站如何向 AI 系统呈现自身的 MCP 服务。网站所有者和分析人员可通过四种工具检查爬虫规则、llms.txt、结构化数据和索引指令。

主要功能

  1. 01检查 robots.txt 中的 AI 爬虫规则
  2. 02检查 llms.txt 和 llms-full.txt
  3. 03盘点 JSON-LD 与 schema.org 类型
  4. 04检查 meta 和 X-Robots-Tag 指令
  5. 05返回易读摘要和结构化 JSON

适用场景

  1. 01检查是否允许 AI 爬虫访问
  2. 02确认网站是否提供 llms.txt
  3. 03查看文章中的结构化数据
  4. 04检查页面索引指令

MCP 相关

向 MCP 客户端提供四种网站检查工具:robots.txt 规则、llms.txt 文件、schema 标记和 meta 索引指令。每种工具均返回易读摘要和结构化 JSON。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bigsupe55-geo-inspector": {
"command": "npx",
"args": [
"-y",
"geo-inspector-mcp"
]
}
}
}
启动命令npx -y geo-inspector-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgeo-inspector-mcp0.1.2

工具

4

收录的工具列表 · 更新于 3 周前

参数类型必填说明
urlstring是网站 URL。协议可省略,例如 example.com 即可。
pathstring否要评估访问权限的路径。默认为 /

详细介绍

geo-inspector-mcp

npm MCP Registry license

一个 MCP 服务,为 AI 助手提供四种工具,用于检查网站如何向其他 AI 系统展示自己:它屏蔽了哪些 AI 爬虫、是否发布了 llms.txt、提供了哪些 Schema 标记,以及如何设置索引指令。

已发布到 npm,并以 io.github.Bigsupe55/geo-inspector-mcp 列入官方 MCP Registry。可与 Claude Code、Claude Desktop 或任何 MCP 客户端配合使用。

geo-inspector-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_markupJSON-LD 区块、schema.org 类型清单、与 AI 相关的类型,以及 sameAs 消歧“这篇文章包含哪些结构化数据?”
check_meta_directivesMeta 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。