Skip to main content
Glama

AIGC: ContentProducer: '001191110102MAD55U9H0F10002' ContentPropagator: '001191110102MAD55U9H0F10002' Label: '1' ProduceID: '6b9414ca-b1fb-4c4b-a1a0-07811ce02a3f' PropagateID: '6b9414ca-b1fb-4c4b-a1a0-07811ce02a3f' ReservedCode1: '924bebf3-6f3b-42e2-99b1-c9a3e8febb36' ReservedCode2: '924bebf3-6f3b-42e2-99b1-c9a3e8febb36'

鲸析 GEOkit

面向中文市场与 AI 搜索时代的开源 SEO / GEO 作战系统

CI Release License: MIT Next.js 16 Dependencies MCP

中文优先的 SEO / GEO 工具:自建百度 / 搜狗 / 360 / 神马 / 头条采集, 六维 GEO 评分,九个 AI 模型的品牌可见性探测,以及一套 AI 抓取协议层。 全部能力通过 MCP 开放给 Agent。

为什么造它 → · 贡献指南 →

GEOkit 源于对 every-app/open-seo 的一次深度拆解。 open-seo 是个好项目 —— 28 万行代码、自研站点审计爬虫、完整的 MCP 工具链、相当高的产品完成度。 但它有一个结构性盲区:它的世界里没有中文。

这不是营销话术,是对其仓库全量源码实测后的事实:

事实项

观测结果(源码级)

google 在 open-seo 源码中出现

973 次

bing 出现

7 次

baidu 出现

0 次

sogou 出现

0 次

AI Visibility 覆盖模型

ChatGPT / Claude / Gemini / Perplexity(六个中文 AI 助手全部缺席)

llms.txt 实现

仅出现在 docs/site-audit-pm-research.md 一份 PM 文档中,代码为零

当你的客户在 DeepSeek 里问「跨境支付怎么选」,这类工具帮不上任何忙 —— GEOkit 就是为解决这个问题而生的。


Related MCP server: SEO Screaming Toad MCP Server

它做什么

能力

说明

多引擎 SERP 采集

百度、搜狗、360、神马、头条的自建采集与位次解析,外加 Google / Bing

页面审计 + GEO 评分

除传统技术检查外,输出六维「AI 引用友好度」评分

中文 AI 可见性矩阵

九个模型并发探测品牌是否被提及

AI 抓取协议层

robots.txt 的 20 个 AI 爬虫策略检测、llms.txt 校验与自动生成

MCP Server

上述全部能力对外开放,两种传输方式

界面

首页把能力地图、与 open-seo 的逐项对比、以及"抓不到就说抓不到"的处理原则摊在一屏里:

首页

快速开始

npm install
npm run dev        # http://localhost:3210

核心功能不需要任何付费 API —— 装上就能跑。

数据源原则(强制)

项目所有数据源必须是自建检索(自写爬虫/解析器直接拿数据)或免费开源工具获取,不引入任何付费数据源。

数据源

获取方式

SERP(百度/搜狗/360/神马/头条/Google/Bing)

自建采集 + 位次解析(src/lib/serp.ts + engines.ts)

页面审计 / GEO 评分信号

自建抓取 + 本地分析(src/lib/audit.ts)

robots.txt / llms.txt

自建协议层(src/lib/llms.ts)

存储

JSONL + node:sqlite(Node 内置,零新增依赖)

CI / 门禁

GitHub Actions 免费层 + 本地 CLI

唯一豁免:AI 可见性探测(src/lib/visibility.ts)调用 9 家模型厂商官方接口, 需要用户自行填入 API key 才能使用 —— 这是项目里唯一的付费通道,且未配 key 时如实返回 UNOBSERVABLE,绝不伪造结果。

GEO 评分是什么

传统 SEO 检查只回答「Google 会不会收录我」。2026 年真正的问题是「AI 愿不愿意引用我」。 GEOkit 的 geoScore 由六个可观测维度构成:

维度

权重

看什么

可引用性

25

是否有结论前置、列表、表格、可摘取的数据点

结构化

20

JSON-LD 类型数、H 标签层级、canonical

实体清晰度

15

作者、组织、发布时间是否被标注

可抓取性

15

robots 策略、语言声明、内容可获取性

事实密度

15

每千字数据点数、外部权威引用数量

可读性 / 时效

10

平均句长、是否有 modified_time

每一项都由页面里真实存在的信号计算,输出时会附上「为什么得这个分」的依据,而不是一个孤立的数字。

MCP 接入

Streamable HTTP(服务已在跑):

POST http://localhost:3210/api/mcp

stdio(本地 Agent):

{
  "mcpServers": {
    "geokit": {
      "command": "npx",
      "args": ["-y", "tsx", "scripts/mcp-stdio.ts"],
      "cwd": "<你的项目绝对路径>",
      "env": {}
    }
  }
}

八个工具:list_engines、check_serp_ranking、audit_page、check_ai_visibility、 analyze_robots、analyze_llms_txt、generate_llms_txt、compare_with_openseo。

典型 Agent 闭环:找排名缺口 → 定位页面问题 → 补 AI 协议 → 复检 AI 可见性。

可选的环境变量

只有「AI 可见性」这个功能需要 API key,其余全部零依赖。写在 .env.local:

DEEPSEEK_API_KEY=    # DeepSeek
DOUBAO_API_KEY=      # 豆包
KIMI_API_KEY=        # Kimi
QWEN_API_KEY=        # 通义千问
WENXIN_API_KEY=      # 文心一言
YUANBAO_API_KEY=     # 腾讯元宝
OPENAI_API_KEY=      # ChatGPT
ANTHROPIC_API_KEY=   # Claude
GEMINI_API_KEY=      # Gemini

一条原则:抓不到就说抓不到

搜索引擎和部分 AI 平台会拦截服务端直连请求。这是所有自托管 SEO 工具都会遇到的工程现实, 不是 bug,也没法靠写巧妙的代码绕过。

GEOkit 的选择是如实返回 status: "blocked" 并写明原因与解决方向,绝不用估算值、 缓存旧数据或随机数冒充真实排名。宁可让你知道「这次没抓到」,也不要让你基于假数据 做出错的投放决策。这条原则贯穿每一个接口。

技术栈

Next.js 16 / React 19 / Tailwind v4 / TypeScript。直接依赖只有 4 个 (next、react、react-dom、zod)—— HTML 解析、排序计算、robots 解析全部自研, 目的是让整套东西保持足够小、足够可读,你能直接 fork 开改。

对比 open-seo 的 44 个直接依赖 + TanStack Start + Cloudflare Workers + Drizzle, GEOkit 牺牲了一部分功能广度,换取的是可理解性与可改造性。

项目结构

src/
  lib/
    engines.ts      搜索引擎注册表(7 个引擎,5 个是 open-seo 的空白区)
    html.ts         零依赖 HTML 解析
    serp.ts         多引擎采集与位次解析
    audit.ts        页面审计 + GEO 六维评分
    visibility.ts   中文 AI 可见性探测矩阵
    llms.ts         robots AI 策略 + llms.txt 检测与生成
    mcp.ts          MCP server(JSON-RPC 2.0)
  app/
    api/{audit,serp,visibility,llms,mcp}/route.ts
    {serp,audit,visibility,llms,mcp}/page.tsx
scripts/mcp-stdio.ts   stdio 传输入口

许可证

MIT

AI生成

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    SEO + GEO MCP server: live Google Search Console & GA4 data, keyword and page analysis, AI-visibility tracking across ChatGPT, Claude, Gemini & Perplexity, site audit and SEO task management — all from chat.
    38
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI assistants to run live SEO/readiness audits against 50+ AI crawlers, validate schema and robots.txt, and generate llms.txt, robots.txt, and JSON-LD files directly from MCP-compatible clients like Claude Desktop and Cursor.
    8
    138 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables auditing Chinese-language websites for AI citability (GEO/AEO) across Chinese AI platforms, providing crawlability checks, source-pool probing, visibility scoring, and prioritized fix plans.
    -