ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenSEO 关键词研究技能实战:用 MCP 数据把种子主题打磨成优先级关键词机会清单

OpenSEO 关键词研究技能实战:用 MCP 数据把种子主题打磨成优先级关键词机会清单 OpenSEO 关键词研究技能实战用 MCP 数据把种子主题打磨成优先级关键词机会清单【免费下载链接】open-seoOpen source alternative to Semrush and Ahrefs项目地址: https://gitcode.com/GitHub_Trending/op/open-seo导读OpenSEO 的开源插件中内置了九大 SEO 技能其中keyword-research负责把零散的种子主题seed topics转化为一份经过排序、可执行的关键词机会清单哪些值得立刻投入内容、哪些应该保存到项目、哪些还需要继续深挖。本文以 keyword-research 技能定义 为骨架结合仓库中对应 MCP 工具的源码实现research-keywords.ts、dataforseo-research-tools.ts 等逐层拆解它的输入约束、项目上下文机制、十个工具的职责边界、完整工作流与输出规范。读完你可以直接把这套方法复用到自己的 Agent 工作流里先读项目记忆再拉 Search Console 的真实需求用批量工具补全量价指标最后按业务契合度而非单纯搜索量排序并保存关键词。技能目标与定位在 SKILL.md 的开头技能的 Goal 被定义得非常明确Turn seed topics into a prioritized keyword opportunity set using OpenSEO MCP data.即用 OpenSEO 的 MCP 实时数据把种子主题转成一份按优先级排序的关键词机会集。产出的核心不是一份大而全的词表而是三个决策答案要打什么what to target——最高信号的机会主题与头部关键词要保存什么what to save——值得写入项目 saved-keywords 清单的词下一步研究什么what to research next——是去做关键词聚类、写内容简报还是保存后继续扩张。技能本身不代替人做判断它约束的是如何有依据地做判断每个结论都要能回溯到 MCP 工具返回的真实指标而不是 Agent 的凭空猜测。从插件整体看OpenSEO 的定位是给 Agent 真实的 SEO 数据和引导式工作流plugins/openseo/README.md 明确列出了它能做的事发现与评估关键词、研究竞争对手与内容缺口、审计站点、分析外链、跟踪自然排名与 Google Maps 排名、对接 Search Console 与 Analytics 数据。keyword-research正是其中发现与评估关键词这一环的完整方法论。必需输入与前置约束技能对输入有明确要求这决定了它能否被正确触发输入是否必需说明projectId必需缺失时先调用list_projects找到目标项目种子主题必需一个或多个产品、页面、竞品、受众痛点、已有词市场 / 位置 / 语言可选会实质影响指标时必须向用户确认否则用 MCP 工具默认值种子主题的规格是刻意宽泛的——它可以来自任何方向用户正在做的产品、某个着陆页、一个已知竞品域名或者一个还没被满足的受众问题。技能的默认策略是能不问就不问。只有当目标市场/位置/语言不明确、且会实质性影响搜索量与难度这类指标时才向用户提问否则直接采用项目级默认市场。这一策略在源码层面有对应实现research_keywords与get_keyword_metrics都通过resolveMarket解析市场显式传入的locationCode/languageCode优先缺省时继承项目的默认市场见 research-keywords.ts 与 dataforseo-research-tools.ts 中的resolveMarketSelector。也就是说用工具默认值在实现上等于用项目市场而项目市场是用户在 OpenSEO 中配置好的Agent 无需重复询问。项目上下文先读记忆再花钱keyword-research技能最独特的一点是它把研究前先读项目上下文设成了硬性前置步骤。项目上下文工具是免费的且与应用内其他 Agent包括 SAM共享同一份记忆。第一步永远是 get_project_context调用get_project_context把研究锚定在项目已有信息上业务是什么、目标是什么、覆盖哪些市场、已经保存了哪些竞品和关键页面。从源码看project-context.ts该工具返回的完整结构包括sections——业务概览business_overview、当前目标current_goal、定位、写作偏好等自由文本段落missingSections——当前为空、值得用update_project_context补齐的段落competitors/keyPages——已保存的竞品与关键词目标落地页短名单researchLog——最近的研究日志谁在什么时间买了什么数据。工具描述里写得很直白Uses no credits. Call this before SEO work to ground it in what the user already told OpenSEO, and check the research log before re-buying research.business_overview 与 current_goal 的最小内联补齐技能要求这两个段落非空。如果任一为空不要前端加载完整的访谈问卷而是做最小内联设置问用户或从站点内容推断并确认恰好填满这两个字段即可用update_project_context写回继续研究。完整的项目画像访谈被推迟到研究结束技能会在结尾建议用户运行seo-project-setup技能仓库中该技能位于 plugins/openseo/skills/seo-project-setup去补齐剩余部分。研究日志30 天内不重复购买在消耗任何积分credits之前检查researchLog如果同样的研究在过去 30 天内已经跑过直接复用结果并明确告知用户而不是再买一次。这正是update_project_context中appendResearchLog操作存在的意义——写入一条形如{ appendResearchLog: { summary: Keyword research: seeds/market. Verdict: conclusion } }的日志让所有 Agent包括未来的自己都能看到这笔数据已经买过、结论是什么。project-context.ts 中buildUpdateProjectContextTool的注释还特别指出SAM 也通过同一个工具写上下文仅 author 参数不同避免了两条写入路径漂移。研究结束后写回持久信息收尾时把值得沉淀的内容写回共享记忆精炼后的business_overview或current_goal在 SERP 中反复出现的竞品——通过addCompetitors追加关键词应该落地的页面——通过addKeyPages追加一条appendResearchLog日志记录本次研究。这样下一次任何 Agent 做相关研究时get_project_context就能直接读到这些沉淀。OpenSEO MCP 工具全景SKILL.md 一共引用了十个 MCP 工具它们的职责边界非常清晰。下面按发现、补全、验证、本地、保存五类整理并给出源码确认的参数细节。发现类research_keywords——主发现工具每次调用携带 1-5 个种子词除非用户要求穷尽式研究否则默认取每种子 150 条结果。源码research-keywords.ts确认了完整参数参数类型默认说明seeds数组1-5必填每个种子独立研究返回相关词及量/难度/CPCresultLimit150 / 300 / 500150每种子返回的最大词数includeClickstreamDatabooleanfalse用点击流数据拆分 Google Ads 的分组近似变体复数/拼写错误每个种子的积分成本翻倍对由 Google Ads 数据服务的国家无效果实现上每个种子是独立异步执行的Promise.all逐 seed 处理单个坏种子不会让整个批次失败——输出中每个 seed 都有独立的ok/rowCount/source/usedFallback状态。工具的 description 还给出了计费量级每个种子约 30-100 积分具体取决于数据源由 Google Ads 数据服务的国家约 96 积分这类国家 KD 与 intent 不可用。get_ranked_keywords——拉取某个域/页的真实排名词当研究简报涉及一个目标域名或页面时使用。源码dataforseo-research-tools.ts确认的完整能力target域名不带协议与 www或绝对页面 URL支持scope在domain/subdomains/exact_url之间切换resultTypesorganic / paid / featured_snippet / local_pack / ai_overview_reference默认 organic paid过滤minSearchVolume、maxRank1-100、excludeBrandTerms最多 10 个品牌词按not_ilike排除排序rank/search_volume/traffic_estimate/cpc默认按搜索量降序分页limit1-100默认 50、offset。它返回每个关键词的排名、URL、搜索量、CPC 等行级数据适合用来找已在排名但接近临界的缺口、或者竞品占据的词。补全类get_keyword_metrics——批量水合已知词一次调用最多为700 个已知关键词补充搜索量、关键词难度KD、搜索意图、CPC 和月度趋势。技能明确建议用它给候选词打分包括第 1 步从 Search Console 挖出的striking distance查询词。源码dataforseo-research-tools.ts确认includeMonthlyTrends默认 true返回逐月搜索量趋势行includeClickstreamData默认 false开启后积分成本翻倍sortBysearch_volume/keyword_difficulty/cpc/competition默认搜索量降序。返回的每行包含search_volume、keyword_difficulty、main_intent、cpc、competition、competition_level以及monthly_searches数组年/月/量。get_search_console_performance——第一方真实需求当项目连接了 Search Console 时研究不一定要从冷启动的宽泛发现开始而是从项目自己的第一方需求出发已经获得展示、接近排名striking distance的查询词。源码search-console-tools.ts确认了两个关键实现细节rowLimit默认 1000、上限 1000GSC 按点击量排序且无法按位置过滤所以striking distance平均位置 5-20必须在客户端过滤并用startRow配合hasMore分页。技能的建议是请求高rowLimit在客户端筛出平均位置 5-20 的词再用get_keyword_metrics给这些查询附加难度与意图。这样得到的是一份已经验证有真实需求、且接近排名的名单——这是最快的机会集优先于宽泛发现去处理。验证类get_serp_results——检查 SERP 形态对高潜力或意图模糊的词用实时 SERP 检查这条查询的首页长什么样尤其当 SERP 形态会改变推荐结论时。源码get-serp-results.ts确认queries1-10 个查询批量友好depth10-100、10 的倍数默认 20计费默认深度下每关键词约 5 积分每加深 10 增加约 2.5 积分Google 没有 offset更深抓取会重复抓取头部结果只有需要前 20 名之后的排名时才加深单查询失败不会拖垮整个批次。返回每行精简为 type / rank / title / url / domain / description足够判断意图与可竞争性。本地 SEO 类当业务/位置半径相关时用本地工具替代纯国家级的词量与 SERP 数据search_local_businesses在坐标附近搜索商家名录支持按评分minRating、评论数minReviews、认领状态isClaimedfalse能挖出未认领的外联机会过滤默认返回 20 条get_local_serp_results抓取某坐标附近的 Google Maps 或 Local Finder SERP默认 mobile 设备、20 条结果get_google_business_questions抓取某个商家的 Google Business Profile 问答depth默认 20。这三个工具的完整输入 schema 均在 dataforseo-research-tools.ts仓库中还有更深入的本地排名网格工具get_local_rank_grid按网格点逐一搜索 Maps输出商家在各点的排名热区见 local-seo-tools.ts可用来度量本地可见性的辐射范围。保存类list_saved_keywords——避免重复劳动列出项目已保存的关键词含缓存的量/难度/CPC 与标签。免费直接读 OpenSEO 数据库不调用 DataForSEO。支持search文本过滤与tags标签过滤多标签按 ANY 匹配limit可选 50/100/250默认 100见 list-saved-keywords.ts。用它避免保存重复词或把已有标签当作上下文线索。save_keywords——仅确认后保存把选定的关键词写入项目的 saved-keywords 清单。免费、幂等重复保存已是存在的词是 no-op。关键约束save-keywords.ts每次 1-100 个词metrics可选从research_keywords的行里复制 keyword / searchVolume / keywordDifficulty / cpc / competition / intent按 keyword 字段匹配tags最多 20 个可为所有被保存的词附加tagModeappend默认追加或replace先移除这些词上的现有标签再应用新标签适合重组成页面/主题簇replace模式下必须提供替换标签否则报错。标准工作流从种子到清单的 10 步SKILL.md 给出的工作流是完整闭环结合源码可以把每一步的意图讲透归一化研究角度把种子收敛成一小撮差异化研究角度。若项目连接了 Search Console先拉get_search_console_performance高rowLimit、默认回溯窗口客户端过滤 striking distance约 5-20 位再用get_keyword_metrics水合 KD 与意图——这份排序后的水合名单是最快的机会集先做它再做大范围发现。本地 SEO 分流若请求是本地 SEO先确认商家、位置/坐标或服务半径、本地类目。对最重要的位置/关键词组合用search_local_businesses与get_local_serp_results而不是只依赖国家级关键词/SERP 数据。探索性发现对探索性种子调用research_keywords尽可能用批量调用一次 1-5 种子。水合固定词表用get_keyword_metrics给固定关键词列表或第 1 步的 striking-distance 查询补上量、KD、意图再做优先级排序。排名词扩展当用户给出域名/页面并想基于当前排名、临界词或竞品占据词找机会时用get_ranked_keywords。清洗移除无关、重复、纯品牌词与意图不匹配的词。按实际机会而非单纯量排序六个判据与用户产品/页面/主题强匹配搜索意图清晰难度合理有可用的量/CPC 信号SERP 形态下用户有可竞争空间本地 SEO 场景下考虑本地包/Maps 可见性与距离契合度。SERP 验证对高潜力或意图模糊的关键词用get_serp_results保持默认小深度。输出一份短名单 一份更长的机会表。确认后保存保存前必须询问用户保存时建议使用简洁标签如topic:topic、intent:intent、page:slug。输出格式先给最高信号结论再给表最后给下一步技能规定的输出结构是结论优先而不是把原始表格直接抛给用户最高信号推荐放在最前面最佳机会主题Best opportunity theme现在就该打的关键词Top keywords to target now建议保存的关键词Keywords to save风险或 SERP 注意事项Risks or SERP caveats。紧凑表格每词一行指标列靠右对齐KeywordIntentVolumeKDCPCPriorityNotes这张表与 MCP 工具返回的文本表形态一致——research_keywords和get_keyword_metrics在 text 内容块里就用formatMcpTable渲染出 keyword / volume / KD / CPC / competition / intent 六列见 research-keywords.ts — 表示该指标不可用。Agent 应把 Priority 与 Notes 两列作为自己判断的承载Priority 依据第 7 步的六个判据综合得出Notes 记录 SERP 观察、意图判断或落地页建议。下一步动作收尾明确是否运行关键词聚类、创建内容简报、或保存所选关键词。仓库中对应的承接技能包括 keyword-clustering聚类与 seo-coach 等可在 plugins/openseo/skills 目录下找到全部九个技能。三条护栏不编造、不越权、不追量SKILL.md 以三条 guardrails 收尾它们是整个方法论的安全边界也与工具实现互相印证不编造指标OpenSEO 没返回的值就写unknown。这与工具行为一致——Google Ads 数据服务的国家 KD/intent 为 null、GSC 在 discover/googleNews 类型下不报告 position见 search-console-tools.ts 的说明这些不可用都是真实状态而非失败Agent 必须如实呈现。未经明确确认不得调用save_keywords保存是写操作工具的destructiveHint: true且支持tagMode: replace会移除既有标签所以技能强制先问后存。业务契合与意图契合优先于最大量词这是整个技能的价值取向——机会清单服务于用户的实际业务目标而不是一份单纯按搜索量排序的词表。第 7 步的六条判据把匹配度、意图、难度、量信号、可竞争性放在同等重要的位置正是这一护栏的展开。小结这套方法论能复用的部分keyword-research技能的价值不仅在于调哪些工具更在于一套可迁移的研究纪律先读共享记忆再消费数据get_project_context 30 天研究日志去重先处理已验证的真实需求Search Console striking distance再宽泛发现用批量工具把量/难度/意图水合到已知词表上再排序按业务机会而非单纯量做决策并用get_serp_results验证意图结论优先的输出结构配合紧凑表格与明确的下一步写操作前置确认、数据缺失如实标注。如果你希望把同样的流程接入自己的 Agent可以直接参考 SKILL.md 的完整文本与上述源码路径要了解插件整体的连接方式OAuth 登录、托管 MCP 服务器与九个技能清单见 plugins/openseo/README.md。【免费下载链接】open-seoOpen source alternative to Semrush and Ahrefs项目地址: https://gitcode.com/GitHub_Trending/op/open-seo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表