mcpField
F
fanout

fanout

本地服务
houtini.com商业与营销134 天前更新

关于 fanout

Fan-Out MCP 分析网页内容能回答哪些用户查询,并发现主题覆盖缺口,面向内容和搜索优化工作。它结合查询变体生成与证据核验,提供覆盖评估和改进建议。

主要功能

  1. 01内容覆盖分析
  2. 02生成关键词查询变体
  3. 03按证据评估查询覆盖
  4. 04识别部分覆盖和内容缺口
  5. 05提供优先级改进建议
  6. 06生成可视化仪表板和报告

适用场景

  1. 01检查文章对目标主题的覆盖
  2. 02发现关键词相关问题的内容缺口
  3. 03规划面向 AI 搜索的内容更新

MCP 相关

这是一个 MCP 服务,向兼容 MCP 的客户端提供内容缺口分析工具。客户端可提交网页 URL、目标关键词和分析选项,并获取覆盖评估、证据及建议。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"houtini-ai-fanout": {
"command": "npx",
"args": [
"-y",
"@houtini/fanout-mcp"
]
}
}
}
启动命令npx -y @houtini/fanout-mcp

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

安装包
npm@houtini/fanout-mcp0.2.12

工具

1

收录的工具列表 · 更新于 4 天前

参数类型必填说明
urlstring是要分析的内容 URL
depthenum否分析深度:quick(5 个查询)、standard(15 个查询)、comprehensive(30 个查询)quick | standard | comprehensive
contextobject否用于生成变体的可选上下文信号
context.intentenum否用于生成上下文变体的用户意图shopping | research | navigation | entertainment
context.temporalobject否
context.temporal.seasonstring否当前季节(winter、spring、summer、fall)
context.temporal.currentDatestring否当前日期,格式为 YYYY-MM-DD
context.specificity_preferenceenum否首选的查询具体程度broad | specific | balanced
focus_areastring否用于生成查询的可选关注领域(例如 'pricing'、'installation')
fan_out_onlyboolean否跳过内容推断,仅生成关键词变体
fan_out_typesarray否要生成的变体类型(默认:equivalent、specification、followUp、comparison、clarification)
target_keywordstring否启用关键词扩展模式:根据 Google 的方法生成查询变体

详细介绍

Fan-Out MCP

Socket Badge

npm version MCP Registry License TypeScript MCP Research Backed

面向 AI 搜索时代的高级内容缺口分析

使用 AI 搜索引擎内部采用的相同技术分析您的内容,了解它能(以及不能)涵盖哪些用户查询。

Fan-Out MCP 服务


快速导航

为什么这很重要 | 功能介绍 | 安装 | 使用方法 | 了解方法论 | 功能深入解析 | 工具参数参考 | 故障排除


为什么这很重要

问题: 传统 SEO 专注于关键词和反向链接。AI 搜索引擎(ChatGPT、Perplexity、Gemini)的工作方式并非如此。它们会评估您的内容能否回答用户查询——包括数十种您可能从未考虑过的查询变体。

解决方案: 此 MCP 使用来自 Google 和学术论文的研究支持技术来:

  1. 将复杂主题分解为用户实际提出的问题
  2. 使用 Google 获得专利的扇出方法生成查询变体
  3. 评估您的内容能否回答每个查询(并提供证据)
  4. 找出具体缺口并提供可执行的建议

结果: 针对**生成式引擎优化(GEO)**优化内容——回答 AI 搜索引擎需要引用您作品的查询。


功能介绍

三种分析模式

1. 仅内容分析(默认) 根据内容结构和主题,分析内容自然能够回答哪些问题。

Analyze https://your-site.com/article with standard depth

2. 混合分析(内容 + 关键词定位) 将内容分析与特定关键词查询变体相结合。这是强力模式。

Analyze https://your-site.com/article with target_keyword "direct drive racing wheels"

默认情况下会生成 15-25 个查询变体,涵盖 5 种类型:

  • 同义变体 - “sim racing wheels”、“racing simulator wheels”
  • 规格变体 - “Fanatec DD Pro review”、“8Nm direct drive wheel”
  • 后续问题 - “how to calibrate racing wheel”、“mounting options”
  • 比较问题 - “Fanatec vs Thrustmaster”、“belt drive vs direct drive”
  • 澄清问题 - “what is direct drive technology”、“how does FFB work”

3. 仅关键词分析 仅专注于关键词变体,跳过内容推断(速度快 50%)。

Analyze https://your-site.com/article with target_keyword "sim racing" and fan_out_only true
输出内容

交互式可视化仪表板,展示:

  • 覆盖度评分(0-100)及确定的具体缺口
  • 逐条查询评估,并附证据引用
  • 按优先级排序的建议(应添加/改进的内容)
  • 技术指标(质量评分、性能数据)

另附包含所有数据的详细 Markdown 报告。


安装

前置条件
  • Claude Desktop(或任何兼容 MCP 的客户端)
  • Anthropic API 密钥
  • Node.js 18+(仅用于本地构建)
快速设置(推荐)

最快的上手方式——无需克隆或构建:

  1. 添加到 claude_desktop_config.json:
{
  "mcpServers": {
    "fanout": {
      "command": "npx",
      "args": ["-y", "@houtini/fanout-mcp@latest"],
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-api03-your-key-here"
      }
    }
  }
}

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  1. 重启 Claude Desktop
Claude Code(CLI)

Claude Code 使用不同的注册机制——它不会读取 claude_desktop_config.json。请改用 claude mcp add:

claude mcp add -e ANTHROPIC_API_KEY=sk-ant-... -s user fanout -- npx -y @houtini/fanout-mcp@latest

使用以下命令验证:

claude mcp get fanout

你应该会看到 Status: Connected。

  1. 验证安装:
List available tools

你应该会在输出中看到 fanout:analyze_content_gap。


使用方法

基本分析
Analyze https://example.com/article for query coverage gaps

Claude 会创建一个交互式仪表板,显示:

  • 你的内容覆盖了哪些查询
  • 哪些查询仅被部分覆盖
  • 哪些查询尚未覆盖(差距)
  • 针对每项差距的具体建议
关键词定向分析

**适用场景:**你正在针对特定关键词或主题进行优化。

Analyze https://example.com/sim-racing-guide with target_keyword "sim racing wheels"

这会生成 15-25 个与你的关键词相关的查询变体,并检查每个变体的覆盖情况。非常适合:

  • SEO + GEO 优化
  • 确保覆盖所有关键词变体
  • 找出关键词定位中的具体差距
高级选项

聚焦特定领域:

Quick analysis of https://example.com/pricing focusing on "enterprise plans"

全面深入分析:

Comprehensive analysis of https://example.com/installation-guide

自定义变体类型:

{
  "url": "https://example.com/article",
  "target_keyword": "sim racing",
  "fan_out_types": ["equivalent", "specification", "comparison"]
}

用于生成更智能变体的上下文信号:

{
  "url": "https://example.com/products",
  "target_keyword": "racing wheel",
  "context": {
    "intent": "shopping",
    "specificity_preference": "specific",
    "temporal": {
      "currentDate": "2024-12-15",
      "season": "winter"
    }
  }
}

了解方法论

基于研究

此工具采用了信息检索领域前沿研究中的技术:

Query Fan-Out——基于 Google 的专利方法(US 11663201 B2)和研究论文 使用生成式神经网络训练 Query Fan-Out 模型。通过 8 种类型生成查询变体,以了解用户实际如何搜索信息。

Self-RAG——自反思检索增强生成,通过证据验证覆盖情况。杜绝幻觉——每项“已覆盖”的声明都包含来自你内容的原文引述。

Query Decomposition——Least-to-Most 提示法将复杂主题拆解为前置、核心和后续查询。

想了解相关研究? 📖 阅读我们的通俗解读:

了解关键词 Fan-Out:研究解读

本文档介绍:

  • Query Fan-Out 为何对内容优化至关重要
  • Google 的方法如何运作(通俗易懂的说明)
  • 我们如何使用 Claude Sonnet 5 对其进行改进
  • 测试中的真实案例
  • 如何选择变体类型

有关实现细节,请参阅 research/google-fanout-adaptation.md。


功能深入介绍

关键词扩展变体

默认:5 种变体类型(最具可操作性)

  1. 同义表达(3-5 个变体)- 意图相同的其他说法

    • “sim racing wheel” → “racing simulator wheel”、“sim rig controller”
  2. 规格细化(3-5 个变体)- 包含具体细节的版本

    • “sim racing wheel” → “Fanatec DD Pro wheel review”、“direct drive 8Nm wheel”
  3. 后续问题(3-5 个变体)- 合乎逻辑的后续问题

    • “sim racing wheel” → “how to calibrate wheel”、“best pedals for wheel”
  4. 对比(3-5 个变体)- “Vs”和替代方案

    • “Fanatec vs Thrustmaster wheels”、“direct drive vs belt driven”
  5. 澄清(2-3 个变体)- 用于理解的问题

    • “what is direct drive technology”、“how does force feedback work”

可选:另外 3 种类型(通过 fan_out_types 参数请求)

  1. 泛化 - 范围更广的概括性查询
  2. 相关方面 - 关联主题和隐含需求
  3. 时间因素 - 带日期限定的特定时间查询

为什么默认提供 5 种? 这 5 种类型生成的查询最具可操作性,也最贴近用户实际输入的内容。其他 3 种类型也可用,但往往会:

  • 偏离主题(泛化、相关方面)
  • 需要明确的时间背景(时间因素)

想要全部 8 种类型?

{
  "target_keyword": "your keyword",
  "fan_out_types": ["equivalent", "specification", "generalization", "followUp", "comparison", "clarification", "relatedAspects", "temporal"]
}
上下文感知的变体生成

提供上下文信号,以生成更相关的变体:

购物意图:

{
  "context": {
    "intent": "shopping",
    "specificity_preference": "specific"
  }
}

生成:“where to buy X”、“X Black Friday deals”、“best budget X 2024”

时间背景:

{
  "context": {
    "temporal": {
      "currentDate": "2024-12-15",
      "season": "winter"
    }
  }
}

生成:“X 2024”、“new X December 2024”、“latest X winter 2024”

研究意图:

{
  "context": {
    "intent": "research",
    "specificity_preference": "balanced"
  }
}

生成:“how does X work”、“X comparison guide”、“X vs Y detailed analysis”

基于证据的覆盖度评估

每项查询评估都包含:

已覆盖(置信度 90-100%) - 找到了直接证据

Query: "best PS5 racing wheels under £300"
Evidence: "For most PlayStation owners getting into sim racing, I'd recommend 
starting with the Logitech G29. It's proven kit, widely available, and you 
can sell it easily if sim racing doesn't stick. Current Amazon pricing sits 
at £200..."
Location: Entry Level: The £200-300 Sweet Spot

部分覆盖(置信度 40-89%) - 提及了主题,但内容不完整

Query: "how to calibrate PS5 racing wheel"
Evidence: "Whatever you do, always write down your force feedback settings 
for each car in Gran Turismo 7."
Gap: Only mentions saving settings but provides no actual calibration steps
Recommendation: Add detailed calibration guide with step-by-step instructions

缺口(置信度 0-39%) - 未找到覆盖内容

Query: "wireless PS5 racing wheel options"
Gap: No wireless racing wheel options discussed
Recommendation: Add section on wireless PS5 racing wheel options if any exist
性能与扩展

基于对一篇 6,491 词文章的测试:

模式查询数耗时速度
仅内容1490s基准
仅关键词1986s比混合模式快 50%
混合(5 种类型)35174s全面
混合(复杂关键词)36217s可处理 11 词关键词

关键结论: 每项查询评估约需 4-5 秒。查询越多,耗时越长,但质量保持稳定。

优化建议:

  • 快速扫描时使用 quick 深度(5 个查询,约 25s)
  • 只需要覆盖变体时使用 keyword-only 模式
  • 减少变体类型以加快结果生成
  • 评估耗时占主导(75-85%),生成速度很快

质量指标(经测试验证)

所有指标均经全面测试验证:

查询质量:

  • 平均自然度:0.75/1.0(查询听起来很自然)
  • 平均具体度:0.44/1.0(细节程度适当)
  • 泛化查询数:0(没有偏向“what is X”的情况)
  • 领域术语使用率:0.55(技术词汇使用得当)

证据质量:

  • 引文准确率:100%(所有引文均为原文)
  • 幻觉率:0%(严格验证证据)
  • 平均置信度:77.8%(评分较为保守)
  • 评估准确率:83%(高估或低估的情况较少)

覆盖结果(来自真实测试):

  • 内容查询:69-71% 完全覆盖
  • 扩展变体:57-64% 已覆盖(探索更广泛的范围)
  • 部分覆盖:19-23%(可采取行动的改进方向)
  • 明确缺口:9-14%(显而易见的机会)

实际示例

示例 1:博客文章优化

场景: 关于“直驱模拟赛车方向盘”的技术博客文章

分析:

Analyze https://simracingcockpit.gg/ps5-sim-racing-guide with target_keyword "direct drive sim racing wheels"

结果:

  • 分析了 35 个查询(14 个内容查询 + 21 个扩展查询)
  • 覆盖度评分为 80/100
  • 发现 3 个缺口:无线选项、设置指南、校准说明
  • 建议:新增 3 个章节(预计增加 800 多个单词)

影响: 添加建议的章节后:

  • 覆盖度评分:80 → 94
  • AI 搜索引用量:+40%(通过 Perplexity、ChatGPT 衡量)
  • 自然流量:3 个月内 +25%
示例 2:产品页面分析

场景: 模拟赛车方向盘的电商产品页面

分析:

Analyze https://shop.com/racing-wheels with target_keyword "buy racing wheel" and context {"intent": "shopping", "specificity_preference": "specific"}

结果:

  • 生成以购物为重点的变体:定价、比较、库存情况、配送
  • 覆盖度:45/100(缺少关键购买决策信息)
  • 缺口:没有价格表、没有配送信息、没有对比图表
  • 建议:新增 5 个侧重购买决策因素的章节

影响: 发现了传统 SEO 无法察觉的关键缺口。


工具参数参考

analyze_content_gap
参数类型必填默认值描述
urlstring✅ 是-要分析的 URL
depthenum否standard分析深度:quick(5 个查询)、standard(15 个)、comprehensive(30 个)
focus_areastring否-聚焦特定主题(例如,“定价”“安装”)
target_keywordstring否-启用带有查询变体的关键词扩展模式
fan_out_typesarray否[5 types]变体类型:equivalent、specification、generalization、followUp、comparison、clarification、relatedAspects、temporal
fan_out_onlyboolean否false跳过内容推断,仅生成关键词变体
contextobject否-用于生成变体的上下文信号
context.temporalobject否-时间上下文,包含 currentDate 和 season
context.intentenum否-用户意图:shopping、research、navigation、entertainment
context.specificity_preferenceenum否-具体程度:broad、specific、balanced

已知限制

评估时间

耗时随查询数量线性增长(每个查询约 4–5 秒)。大型分析(50 个以上查询)需要 4–5 分钟。可考虑:

  • 使用 quick 深度进行快速扫描
  • 适当时使用 keyword-only 模式
  • 限制变体类型以加快结果生成
内容长度

针对 2,000–10,000 个单词的文章进行了优化:

  • 非常短的内容(少于 500 个单词):可能生成的查询较少
  • 非常长的内容(超过 20,000 个单词):可能超出上下文窗口
  • 对于大型文档,请使用 focus_area 参数
变体数量

默认生成 15–25 个变体(5 种类型):

  • 如需全面覆盖,请使用全部 8 种类型(24–40 个变体)
  • 类型越多 = 耗时越长,但覆盖度越高
  • 需要在速度和全面性之间权衡
语言支持

仅支持英语:

  • 可以分析非英语内容,但查询质量可能会降低
  • 国际内容需要针对语言进行调整
内容理解

最适用于主题集中的内容:

  • 技术文章:出色
  • 产品页面:出色
  • 新闻/一般内容:良好,但生成的变体针对性较弱
  • 主题混杂的页面:结果可能不够聚焦

故障排除

“未找到工具”错误
  • 更改配置后重启 Claude Desktop
  • 检查 claude_desktop_config.json 语法(末尾不能有逗号)
  • 确保文件路径使用正确的转义方式(Windows 使用 \\,Unix 使用 /)
  • 确认已设置 ANTHROPIC_API_KEY
性能缓慢
  • 正常情况下:每个查询评估需要 4–5 秒
  • 使用 quick 深度以加快结果生成
  • 使用 keyword-only 模式(比混合模式快 50%)
  • 如有需要,减少变体类型
覆盖度评分偏低
  • 预期情况:扩展变体的覆盖度(57–64%)低于内容查询(69–71%)
  • 这是正常行为——扩展会探索更广泛的查询范围
  • 优先处理高优先级建议指出的缺口
质量关注点
  • 查询自然度:应达到 0.70+(自然语言)
  • 证据准确度:应为 100%(精确引用)
  • 幻觉率:应为 0%
  • 检查工件中的技术指标以进行验证

开发

项目结构
fanout-mcp/
├── src/
│   ├── index.ts              # MCP server setup
│   ├── types.ts              # TypeScript types
│   ├── tools/
│   │   └── analyze-content-gap.ts  # Main tool implementation
│   └── services/
│       ├── content-fetcher.ts      # Web scraping
│       ├── query-decomposer.ts     # Query generation
│       ├── keyword-fanout.ts       # Variant generation
│       ├── coverage-assessor.ts    # Self-RAG assessment
│       └── report-formatter.ts     # Output formatting
├── research/
│   ├── keyword-fanout-explained.md  # Accessible research explainer ⭐
│   ├── google-fanout-adaptation.md  # Technical implementation
│   └── [other research docs]
├── dist/                     # Compiled output
└── package.json
构建命令
npm install          # Install dependencies
npm run build       # Compile TypeScript
npm run dev         # Watch mode for development
测试

完整的测试套件见 TESTING-REPORT.md:

  • 8 项测试,涵盖所有模式和边缘情况
  • 已验证查询质量、覆盖率准确性和性能
  • 使用一篇 6,491 词的测试文章进行真实场景测试

路线图

v0.2.0(当前)✅
  • 关键词扇出,包含 8 种变体类型
  • 混合分析模式
  • 上下文感知的变体生成
  • 交互式可视化仪表盘
  • 全面的质量指标
v0.3.0(计划中)
  • 批量 URL 分析
  • 多个页面的覆盖率矩阵
  • 网站地图分析
  • 用于自动化的 JSON 导出
v1.0.0(未来)
  • 历史记录与比较
  • 多语言支持
  • 自定义变体类型训练
  • 用于 CI/CD 集成的 API 端点

技术栈

  • MCP SDK - 用于工具集成的 Model Context Protocol
  • Anthropic SDK - 用于分析的 Claude Sonnet 5
  • cheerio - HTML 解析与内容提取
  • turndown - HTML 转 Markdown
  • TypeScript - 类型安全的实现
  • React(通过 Claude 工件)- 交互式可视化

设计系统

工件使用了受 Claude Visual Style Guide 启发的组件,以实现一致且易于访问的渲染效果:

组件:

  • Button(默认、outline 变体)
  • Card / CardHeader / CardTitle / CardContent
  • Badge(成功、警告、错误)
  • Progress(动画)
  • 可折叠分区

重要: 工件必须使用内联 SVG 图标——window.lucide 在 Claude 的沙盒环境中并非始终可用。

所有样式均使用 Tailwind CSS 实用类,并采用支持深色模式的语义令牌。


贡献

欢迎贡献!感兴趣的方向:

  • 多语言支持
  • 性能优化
  • 其他变体类型
  • 与 SEO 工具集成

提交 PR 前,请先创建 issue 进行讨论。


许可证

Apache License 2.0

Copyright 2024 Houtini Ltd

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

如需商业许可咨询,请访问 https://houtini.com


联系与支持

Richard Baxter
Houtini.ai
GitHub:https://github.com/houtini-ai

有问题? 请在 GitHub 上创建 issue
商业咨询: https://houtini.com


状态: ✅ 已可用于生产环境 - v0.2.0(关键词扇出版本)

评论

支持 Markdown

第一次接触 MCP?

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

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