fanout について
Fan-Out MCP は、ウェブページがどのユーザー検索に答えられるかを分析し、トピックの不足箇所を見つけます。コンテンツや検索の最適化に向け、クエリの展開と根拠の確認を行い、評価と改善案を提示します。
主な機能
- 01コンテンツの網羅性分析
- 02キーワード検索クエリの生成
- 03根拠に基づく網羅性評価
- 04部分的な網羅と不足箇所の特定
- 05優先度付き改善案の提示
- 06ビジュアルダッシュボードとレポートの作成
活用シーン
- 01記事の対象トピックの網羅性確認
- 02キーワード関連の質問に対する不足箇所の発見
- 03AI 検索向けコンテンツ更新の計画
MCP 対応
MCP サーバーとして、MCP 対応クライアントにコンテンツギャップ分析ツールを提供します。ページ URL、対象キーワード、分析オプションを受け取り、網羅性評価、根拠、改善案を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 4 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 分析対象コンテンツの URL |
| depth | enum | いいえ | 分析の深さ:quick(5 クエリ)、standard(15 クエリ)、comprehensive(30 クエリ)quick | standard | comprehensive |
| context | object | いいえ | バリエーション生成に使う任意のコンテキストシグナル |
| context.intent | enum | いいえ | コンテキストに応じたバリエーション生成のためのユーザーの意図shopping | research | navigation | entertainment |
| context.temporal | object | いいえ | |
| context.temporal.season | string | いいえ | 現在の季節(winter、spring、summer、fall) |
| context.temporal.currentDate | string | いいえ | 現在の日付(YYYY-MM-DD 形式) |
| context.specificity_preference | enum | いいえ | 希望するクエリの具体性のレベルbroad | specific | balanced |
| focus_area | string | いいえ | クエリ生成の任意の重点分野(例:'pricing'、'installation') |
| fan_out_only | boolean | いいえ | コンテンツの推論をスキップし、キーワードのバリエーションのみを生成します |
| fan_out_types | array | いいえ | 生成するバリアントの種類(デフォルト:equivalent、specification、followUp、comparison、clarification) |
| target_keyword | string | いいえ | キーワード拡張モードを有効にします。Google の手法に基づいてクエリのバリアントを生成します |
詳細
Fan-Out MCP
AI 検索時代に向けた高度なコンテンツギャップ分析
AI 検索エンジンが内部で使用するのと同じ手法を使ってコンテンツを分析し、どのようなユーザーのクエリに対応できているか(また、できていないか)を明らかにします。
クイックナビゲーション
重要な理由 | 機能 | インストール | 使い方 | 手法 | 機能の詳細 | パラメーター | トラブルシューティング
重要な理由
問題: 従来の SEO はキーワードと被リンクに重点を置いていました。AI 検索エンジン(ChatGPT、Perplexity、Gemini)はそのようには動作しません。AI 検索エンジンは、あなたが考えたこともないような数十種類のクエリのバリエーションに対して、コンテンツがユーザーの質問に回答できるかどうかを評価します。
解決策: この MCP は、Google や学術論文に基づく研究で実証された手法を使って、次のことを行います。
- 複雑なトピックを、ユーザーが実際に尋ねる質問に分解します
- Google の特許取得済みファンアウト手法を使って、クエリのバリエーションを生成します
- 根拠を示しながら、コンテンツが各クエリに回答できるかを評価します
- 具体的なギャップを特定し、実行可能な改善案を提示します
結果: **Generative Engine Optimization(GEO)**に最適化されたコンテンツを作成し、AI 検索エンジンがあなたのコンテンツを引用するために必要なクエリに回答できるようにします。
機能
3 つの分析モード
1. コンテンツのみの分析(デフォルト) 構成やトピックに基づいて、コンテンツが自然にどのような質問に回答しているかを分析します。
Analyze https://your-site.com/article with standard depth
2. ハイブリッド分析(コンテンツ+キーワードターゲティング) コンテンツ分析と、キーワードに特化したクエリのバリエーションを組み合わせます。これが本領を発揮するモードです。
Analyze https://your-site.com/article with target_keyword "direct drive racing wheels"
デフォルトでは、次の 5 種類のクエリのバリエーションを 15~25 個生成します。
- 同等表現 - 「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+(ローカルビルドのみ)
クイックセットアップ(推奨)
すぐに始められます — クローンやビルドは不要です:
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
- 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 と表示されます。
- インストールを確認します:
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"
}
}
}
方法論について
研究に基づく手法
このツールは、情報検索分野の最先端の研究で使われている手法を実装しています:
クエリのファンアウト — Google の特許取得済みの手法(US 11663201 B2)と研究論文 Training Query Fan-Out Models with Generative Neural Networks に基づいています。8 種類のクエリ候補を生成し、ユーザーが実際にどのように情報を検索しているかを明らかにします。
Self-RAG — 自己内省型の検索拡張生成によって、根拠に基づいてカバー状況を検証します。ハルシネーションはありません。「カバー済み」とする主張にはすべて、コンテンツからの正確な引用が含まれます。
クエリ分解 — Least-to-Most プロンプティングによって、複雑なトピックを前提となるクエリ、中心となるクエリ、フォローアップのクエリに分解します。
研究について詳しく知りたい方へ 📖 わかりやすい解説をご覧ください:
キーワードのファンアウトを理解する:研究の解説
このドキュメントでは、次の内容を解説しています:
- コンテンツ最適化にクエリのファンアウトが重要な理由
- Google の手法の仕組み(平易な言葉で解説)
- Claude Sonnet 5 を使った当社の応用方法
- テストで得られた実例
- バリエーションの種類ごとの使い分け
実装の詳細については、research/google-fanout-adaptation.md をご覧ください。
機能の詳細
キーワードのファンアウトのバリエーション
デフォルト:5 種類のバリエーション(最も実用的)
-
同等表現(3~5 個のバリエーション) - 同じ意図を持つ別の言い回し
- 「sim racing wheel」→「racing simulator wheel」、「sim rig controller」
-
仕様(3~5 個のバリエーション) - 詳細を含む、より具体的な表現
- 「sim racing wheel」→「Fanatec DD Pro wheel review」、「direct drive 8Nm wheel」
-
フォローアップ(3~5 個のバリエーション) - 論理的に続く質問
- 「sim racing wheel」→「how to calibrate wheel」、「best pedals for wheel」
-
比較(3~5 個のバリエーション) - 「Vs」や代替案
- 「Fanatec vs Thrustmaster wheels」、「direct drive vs belt driven」
-
明確化(2~3 個のバリエーション) - 理解を深めるための質問
- 「what is direct drive technology」、「how does force feedback work」
任意:追加の 3 種類(fan_out_types パラメーターでリクエスト)
- 一般化 - より広範な内容を扱うクエリ
- 関連する側面 - 関連トピックや暗黙のニーズ
- 時間的要素 - 日付を指定した、時期に関するバージョン
デフォルトが 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"
}
}
生成例:「X の購入場所」、「X のブラックフライデーセール」、「予算に合うおすすめの X 2024」
時間的コンテキスト:
{
"context": {
"temporal": {
"currentDate": "2024-12-15",
"season": "winter"
}
}
}
生成例:「X 2024」、「2024 年 12 月の新しい X」、「2024 年冬の最新 X」
調査意図:
{
"context": {
"intent": "research",
"specificity_preference": "balanced"
}
}
生成例:「X の仕組み」、「X の比較ガイド」、「X と Y の詳細な分析」
根拠に基づく網羅性の評価
すべてのクエリの評価には、次の項目が含まれます。
網羅済み(信頼度 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 語の記事を使ったテストに基づきます。
| モード | クエリ数 | 時間 | 速度 |
|---|---|---|---|
| コンテンツのみ | 14 | 90s | ベースライン |
| キーワードのみ | 19 | 86s | ハイブリッドより 50%高速 |
| ハイブリッド(5 種類) | 35 | 174s | 包括的 |
| ハイブリッド(複雑なキーワード) | 36 | 217s | 11 語のキーワードに対応 |
重要なポイント: 評価するクエリ 1 件あたり約 4~5 秒です。クエリが増えると時間も増えますが、品質は一貫して保たれます。
最適化のヒント:
- 素早くスキャンするには、
quickの深度を使います(5 クエリ、約 25s) - バリエーションの網羅性だけが必要な場合は、
keyword-onlyモードを使います - 結果を早く得るには、バリエーションの種類を減らします
- 評価が時間の大半を占めます(75~85%)。生成は高速です
品質指標(テストで検証済み)
すべての指標は、包括的なテストを通じて検証済みです。
クエリの品質:
- 平均的な自然さ:0.75/1.0(クエリが自然に聞こえる)
- 平均的な具体性:0.44/1.0(詳細度が適切)
- 汎用的なクエリの数:0(「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:商品ページの分析
**シナリオ:**シムレーシングホイールの EC 商品ページ
分析:
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
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
url | string | ✅ Yes | - | 分析する URL |
depth | enum | No | standard | 分析の深さ:quick(5 クエリ)、standard(15)、comprehensive(30) |
focus_area | string | No | - | 特定のトピックに焦点を当てます(例:「価格」、「インストール」) |
target_keyword | string | No | - | クエリのバリエーションを含むキーワードファンアウトモードを有効にします |
fan_out_types | array | No | [5 types] | バリエーションの種類:equivalent、specification、generalization、followUp、comparison、clarification、relatedAspects、temporal |
fan_out_only | boolean | No | false | コンテンツの推定を省略し、キーワードのバリエーションのみを生成します |
context | object | No | - | バリエーション生成のためのコンテキストシグナル |
context.temporal | object | No | - | currentDate と season を含む時間的コンテキスト |
context.intent | enum | No | - | ユーザーの意図:shopping、research、navigation、entertainment |
context.specificity_preference | enum | No | - | 詳細度: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 個のバリエーション)
- 種類が多いほど時間はかかりますが、網羅性が高まります
- 速度と網羅性のトレードオフがあります
言語サポート
英語のみ:
- 英語以外のコンテンツも分析できますが、クエリの品質が低下する場合があります
- 国際的なコンテンツには、言語に応じた調整が必要です
コンテンツの理解
特定のトピックに焦点を当てたコンテンツで最も効果を発揮します:
- 技術記事:非常に良好
- 商品ページ:非常に良好
- ニュース/一般的なコンテンツ:良好ですが、バリエーションの焦点はやや絞られません
- 複数のトピックを扱うページ:結果の焦点がややぼやける場合があります
トラブルシューティング
「Tool not found」エラー
- 設定を変更した後、Claude Desktop を再起動してください
claude_desktop_config.jsonの構文を確認してください(末尾のカンマがないこと)- ファイルパスで正しいエスケープを使用していることを確認してください(Windows は
\\、Unix は/) ANTHROPIC_API_KEYが設定されていることを確認してください
動作が遅い
- 通常:評価するクエリ 1 件あたり 4~5 秒
- 結果を速くするには
quickの深さを使用してください keyword-onlyモードを使用してください(ハイブリッドより 50%高速)- 必要に応じてバリエーションの種類を減らしてください
カバレッジスコアが低い
- 想定どおりです:ファンアウトのバリエーションは、コンテンツクエリ(69~71%)よりカバレッジが低くなります(57~64%)
- これは正しい動作です。ファンアウトでは、より広いクエリの範囲を探索します
- 優先度の高い推奨事項の不足項目に注目してください
品質に関する懸念事項
- クエリの自然さ:平均 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(デフォルト、アウトラインのバリアント)
- 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(キーワードファンアウトリリース)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。