Open SEO v0.0.22 版本解读:分页反链 Profile MCP 工具与月度排名监控调度
Open SEO v0.0.22 版本解读分页反链 Profile MCP 工具与月度排名监控调度【免费下载链接】open-seoOpen source alternative to Semrush and Ahrefs项目地址: https://gitcode.com/GitHub_Trending/op/open-seo本篇文章基于 Open SEO开源版 Semrush/Ahrefs 替代品仓库的 release-notes/v0.0.22.md围绕该版本的三项核心能力展开新增的get_backlinks_profileMCP 工具让 AI Agent 能拉取域名的完整反链明细而非仅汇总、排名追踪新增“每月末”调度与显式语言选择、Tracked Domains 列表与国家选择器获得可搜索能力。读完本文你将掌握这些功能的参数语义、底层调度算法与数据校验逻辑并能在自己的部署中直接使用。一、get_backlinks_profile让 Agent 读取完整反链明细的 MCP 工具此前 MCP 工具只能返回反链的汇总统计v0.0.22 新增get_backlinks_profile后AI Agent 可以像网页端「Backlinks」列表一样逐行获取某个域名或页面的反链数据。1.1 工具定位与适用场景从 get-backlinks-profile.ts 的工具描述可以看出其设计意图一次调用返回“一个受边界限制的分页反链行集合”包含来源 URL、目标 URL、锚文本、dofollow/nofollow、权威度/垃圾评分、lost/broken 状态同时支持筛选、排序、one_per_domain/as_is分组模式与分页。它适用于Agent 需要批量分析某域名的反链构成如锚文本分布、来源域质量需要按lost/broken状态排查失效反链需要按权威度或垃圾评分区间筛选高价值链接。该工具通过withMcpProjectAuth做项目级鉴权调用时需传入有效的projectId属于典型的项目内资源访问工具。1.2 输入参数全解析工具的inputSchema由 Zod 定义get-backlinks-profile.ts核心参数如下参数类型默认值说明projectIdstring必填项目 UUID用于项目鉴权与计费上下文targetstring必填待分析的域名或 URL如example.com或https://example.com/blog长度 1–2048scopeenum—反链分析范围见下文 scope 说明pageint11 起始的分页页码必须为正整数pageSizeint100每页行数仅允许 50 / 100 / 200见 backlinks.ts 的BACKLINKS_PAGE_SIZESsortFieldenumfirstSeen排序字段rank、domainRank、spamScore、firstSeensortOrderenumdescasc或descfiltersobject{}行级筛选条件见下文modeenumone_per_domainDataForSEO 分组模式hideSpambooleantrue是否过滤垃圾反链scope 说明backlinksScopeWithLegacySchema支持page/exact_url/subfolder/root_domain等取值其中page是exact_url的废弃别名subfolder的排名、趋势与来源域拆分不可用详见 backlinks.ts。filters 结构backlinks.ts支持include/exclude来源 URL 关键词的包含/排除匹配minDomainRank/maxDomainRank来源域权威度区间minLinkAuthority/maxLinkAuthority链接权威度区间minSpamScore/maxSpamScore垃圾评分区间linkTypedofollow或nofollowhideLost/hideBroken隐藏已失效/已损坏链接domainFrom来源域的精确匹配用于展开某个域的全部链接最长 255 字符。mode 语义one_per_domain返回每个来源域最强的一条链接默认的“去噪”视图as_is返回每一条独立反链。1.3 输出结构与展示格式调用成功后工具以mcpResponse返回文本 结构化内容get-backlinks-profile.ts文本部分首行给出规范化后的目标与 scopenormalizeBacklinksTarget解析随后输出当前页、页大小、本页行数、总反链数、是否还有下一页以及一个 Markdown 表格表格列source来源 URL 或域名、target目标 URL、anchor锚文本、typedofollow/nofollow/unknown、rank链接权威、domainRank域名权威、spam垃圾评分、statuslive/lost/broken——状态由isLost/isBroken字段组合得出见 formatStatusstructuredContent包含target、scope与分页信封backlinks含page、pageSize、rows、totalCount、hasMore方便 Agent 程序化解析meta通过buildProjectMeta附带/p/{projectId}/backlinks的跳转链接Agent 可以把结果引导回网页端查看。1.4 底层实现计费、缓存与 DataForSEO 调用链该工具并不直接访问 DataForSEO而是复用网页端同一套服务层参数经withMcpProjectAuth鉴权后透传给BacklinksService.profileBacklinksPageBacklinksService.ts服务层先基于organizationId、规范化后的 target/scope、路径与includeSubdomains构建缓存键命中 R2 缓存则直接返回缓存前缀backlinks:rows-page避免重复计费未命中时调用 DataForSEO 拉取数据并按hideSpam传入spamThreshold过滤参数。计费提示工具描述明确标注“约每页 30 credits”约合一次分页查询的费用并且自托管部署必须在 DataForSEO 账户上启用 Backlinks API否则该工具不可用。这是自托管用户使用前必须确认的前提条件。二、排名追踪新增月度调度每月末自动执行v0.0.22 为排名追踪新增了monthly调度间隔——每月末运行一次检查适合低频但需要月度快照的场景如月度报告。2.1 调度间隔的数据模型数据库层面scheduleInterval字段被建模为枚举[daily, weekly, monthly, manual]pg/app.schema.tsAPI 层通过 rank-tracking.ts 的scheduleEnum直接复用该枚举保证前后端取值一致。2.2 月末时间锚定的调度算法月度调度的核心实现在 computeNextCheckAt配合endOfMonthWithTimerank-tracking.ts完成首次创建从当前时刻算起随机选择 UTC 04:00–09:00 之间的小时与随机分钟作为执行时刻锚定到当月最后一天若该时刻已过例如 1 月 31 日创建的配置则顺延到下月最后一天后续推进以上一次nextCheckAt为锚点逐月加 1 推进到各月最后一天直到结果晚于当前时刻。这个“循环推进”机制保证了即使某月因停机等原因错过执行也不会产生调度漂移——例如 1 月 31 日未运行2 月 28 日仍会按锚点时间触发短月份自适应endOfMonthWithTime利用Date.UTC(year, month1, 0)自动归一化到当月最后一天因此 2 月、4 月等短月份天然正确测试用例覆盖了 2026-01-31 到 2026-02-28 的跨月推进见 rank-tracking.test.ts。该算法对 daily/weekly 同样适用daily 每次 1 天、weekly 每次 7 天且都从“锚点”而非“当前时间”推进从而避免重试导致的日期漂移。2.3 月度调度的成本预估estimateScheduledRankCheckCreditsrank-tracking.ts针对不同调度间隔计算每月检查次数daily 按 30 次、weekly 按 4 次、monthly 按 1 次。因此月度调度是三个周期里单月成本最低的选择。成本模型基于 DataForSEO 队列 APIqueued方法用于定时任务比 Live API 便宜首 10 条结果每页 $0.0006后续每页 $0.00045见 rank-tracking.ts 的常量定义每次task_post最多打包 100 个任务MAX_TASKS_PER_POST。计费按“每次调用单独向上取整”累加最终换算为 credits并在工具侧通过estimate_rank_tracker_cost提示用户批准预算上限。三、显式语言选择覆盖国家默认语言排名追踪此前默认跟随国家/地区的默认语言v0.0.22 允许显式指定语言且选择器只列出 DataForSEO 为该国家支持的语言从源头避免无效代码导致的计费失败。3.1 校验层把错误拦截在“零成本”阶段创建/更新配置的 schemarank-tracking.ts对languageCode做了双重约束最大长度 10必须通过isSupportedLanguageCode校验keyword-locations.ts该函数以SERP_LANGUAGE_OPTIONS主表为基准。schema 注释点明了设计动机排名追踪走的是 DataForSEO SERP API它理论上支持任何语言与任何国家的组合——但未知的语言代码会触发一次“已计费”的 DataForSEO 失败。因此必须在客户端/服务端入口处以零成本拒绝而不是把错误抛给上游 API 烧钱。3.2 语言主表与按国家过滤SERP_LANGUAGE_OPTIONSkeyword-locations.ts是全量语言主表与GET https://api.dataforseo.com/v3/serp/google/languages返回的language_code/language_name一一对应源码注释中已注明该 endpoint 与刷新方式。其中两个特例废弃的希伯来语别名iw与冗余的no被移除挪威统一用nb。选择器前端通过getLanguageOptionskeyword-locations.ts把主表过滤为该国家 DataForSEO 实际支持的语言子集基于 Labs 的locations_and_languages数据这样用户永远选不到无效组合。需要注意SERP API 的“国家-语言”支持范围比 Labs 更宽——主表语言对任意国家都可用于排名追踪而项目级Labs 驱动的 picker 才做按国家过滤。3.3 语言与位置的关系配置模型同时支持locationCode国家/地区如DEFAULT_LOCATION_CODE 2840与languageCode两者解耦先选国家再选语言语言用于覆盖该国家的默认语言。createConfigSchema/updateConfigSchema均允许单独或同时设置这两个字段rank-tracking.ts意味着你可以针对同一国家创建多个不同语言的追踪配置如瑞士同时追踪德语与法语排名。四、Tracked Domains 列表与可搜索国家选择器4.1 Tracked Domains 新增搜索与设备/国家筛选当项目中追踪的域名tracker数量较多时v0.0.22 在 Tracked Domains 列表加入了关键词搜索按域名/关键字快速定位指定 tracker设备筛选按 Desktop / Mobile 过滤国家筛选按目标国家过滤。配合 RankTrackingColumns.tsx、RankTrackingConfigModal.tsx 等组件配置入口与列表视图共享同一套筛选语义便于在大规模关键词追踪场景下维护。4.2 国家下拉框升级为可搜索 Comboboxv0.0.22 将原先的静态国家下拉框替换为可输入过滤的 combobox用户直接打字即可过滤候选国家无需在超长列表中滚动查找。该交互同时服务于排名追踪配置与项目级位置选择相关的位置选项数据来自LOCATION_OPTIONS含 94 个 Labs 支持国家与SERP_LANGUAGE_OPTIONS的组合校验keyword-locations.ts保证“选到的国家一定可用”。五、升级与使用建议升级路径从 v0.0.21 升级到 v0.0.22 无需数据库迁移——monthly只是对既有schedule_interval枚举值的扩展语言字段此前已存在于配置模型自托管用户使用get_backlinks_profile前确认 DataForSEO 账户已开通 Backlinks API并留意单次调用约 30 credits 的计费量级Agent 集成在 MCP 客户端中可直接调用get_backlinks_profile通过filters、sortField、mode组合实现“只取 dofollow 且 domainRank 高于某阈值的新反链”这类精确查询再配合hasMore翻页拉全量数据。以上能力均可在仓库源码中复现验证MCP 工具实现见 get-backlinks-profile.ts调度算法与单测见 rank-tracking.ts 与 rank-tracking.test.ts语言/位置校验见 keyword-locations.ts。【免费下载链接】open-seoOpen source alternative to Semrush and Ahrefs项目地址: https://gitcode.com/GitHub_Trending/op/open-seo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

GPU自调度叫好不叫座?显存、算力与任务调度的真相

GPU自调度叫好不叫座?显存、算力与任务调度的真相

“GPU自调度”——这个词最近出现频率高得吓人,但你去问一圈跑深度学习的人,真正把它当默认方案的并不多。一边是各大框架、调度器宣传“全自动分配”“动态显存管理”,一边是群里天天有人问“为什么我的GPU利用率这么低”“为什么明明有显存…

2026/9/13 15:59:32 阅读更多 →
ESP32 Arduino Matter 扩展彩色灯端点(MatterEnhancedColorLight)开发指南:RGB/HSV 颜色、亮度与色温控制的完整 API 解析

ESP32 Arduino Matter 扩展彩色灯端点(MatterEnhancedColorLight)开发指南:RGB/HSV 颜色、亮度与色温控制的完整 API 解析

ESP32 Arduino Matter 扩展彩色灯端点(MatterEnhancedColorLight)开发指南:RGB/HSV 颜色、亮度与色温控制的完整 API 解析 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHu…

2026/9/13 15:58:32 阅读更多 →
@Inject注解原理与Java依赖注入标准实践

@Inject注解原理与Java依赖注入标准实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 15:58:32 阅读更多 →

最新新闻

先记下,再整理:note-gen AI笔记应用完整使用指南

先记下,再整理:note-gen AI笔记应用完整使用指南

先记下,再整理:note-gen AI笔记应用完整使用指南 【免费下载链接】note-gen Capture first. Organize later. A local-first Markdown app that turns scattered records into clear notes with AI. 项目地址: https://gitcode.com/GitHub_Trending/no…

2026/9/13 16:50:54 阅读更多 →
DB-GPT 工具与插件扩展指南:MCP、dbgpts 与 AWEL Flow 三大机制深度解析

DB-GPT 工具与插件扩展指南:MCP、dbgpts 与 AWEL Flow 三大机制深度解析

DB-GPT 工具与插件扩展指南:MCP、dbgpts 与 AWEL Flow 三大机制深度解析 【免费下载链接】DB-GPT open-source agentic AI data assistant for the next generation of AI Data products. 项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT 本文围绕…

2026/9/13 16:50:54 阅读更多 →
DirectShow实现WAV转MP3:过滤器图与媒体类型协商实战

DirectShow实现WAV转MP3:过滤器图与媒体类型协商实战

简介:一份基于DirectShow的音频转换程序实现包,面向需要在Windows平台完成WAV转MP3功能的开发人员,尤其适合在C#/C项目中使用DirectShow进行多媒体处理的场景,可用于毕业设计、小型工具开发或DirectShow框架学习。压缩包内共27个文…

2026/9/13 16:50:54 阅读更多 →
在 Windows 上从源码构建 Video2X Qt6 图形界面:完整编译与部署指南

在 Windows 上从源码构建 Video2X Qt6 图形界面:完整编译与部署指南

在 Windows 上从源码构建 Video2X Qt6 图形界面:完整编译与部署指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Tren…

2026/9/13 16:50:54 阅读更多 →
轻量IDE不是删功能,而是重定义Java开发工具边界

轻量IDE不是删功能,而是重定义Java开发工具边界

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 16:50:54 阅读更多 →
marimo Agents 接入指南:通过 Agent Client Protocol 在聊天面板中内嵌 AI 编程助手

marimo Agents 接入指南:通过 Agent Client Protocol 在聊天面板中内嵌 AI 编程助手

marimo Agents 接入指南:通过 Agent Client Protocol 在聊天面板中内嵌 AI 编程助手 【免费下载链接】marimo A reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. St…

2026/9/13 16:49:54 阅读更多 →

日新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/13 16:51:11 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/12 18:29:34 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/12 19:02:44 阅读更多 →