コンテンツにスキップ
Blume
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

MCP サーバー

Model Context Protocol サーバーをホストして、コーディングエージェントがドキュメントを直接検索・読み取りできるようにします — ツール、リソース、ディスカバリードキュメント、コンテンツタイプおよびファセットフィルター、Connect to MCP メニュー、そしてそれに必要なサーバー出力について。

Model Context Protocol サーバーをホストすると、コーディングエージェント(Claude Code、Cursor、VS Code、claude.ai コネクター)がスクレイピングなしでドキュメントを直接検索・読み取りできるようになります。これはオプトイン方式です。

agents: {
  mcp: {
    enabled: true,
    route: "/mcp", // where the server is mounted
  },
}
オプション デフォルト 説明
enabled false MCP サーバーを生成してホストします。
route /mcp Streamable-HTTP エンドポイントをマウントするパスです。
name title クライアントに表示されるサーバー名(デフォルトは title)です。
instructions — 接続するエージェントに渡される任意のシステムヒントです。
clients true Connect to MCP メニューがインストール先として表示するクライアントです。

コンテンツページまたはカスタムページがすでにそのルートを使用している場合、サーバーは生成されません。ビルド時に警告が表示され、llms.txt やその他の ディスカバリードキュメント にもサーバーは含まれません。

ドキュメントに MCP サーバーを追加する では、有効化からサーバーのデプロイ、クライアントの接続までを順を追って説明しています。

ツールとリソース

サーバーは読み取り専用のツール(search_docs、get_page、list_pages、get_navigation)と、すべてのページを MCP リソースとして公開します(resources/list は、list_pages と同様に未翻訳ページの i18n フォールバックコピーを除いて、各ページを配信 URL 上で text/markdown タイプとして列挙し、resources/read はそのページの エージェント向け Markdown(get_page と同じ出力)を返します)。そのため、URI でコンテキストを添付するクライアントは、ツールを呼び出さずにドキュメントを閲覧できます。また、ディスカバリードキュメントを /.well-known/mcp.json と /.well-known/mcp/server-card.json で公開します。サーバーカードは SEP-2127 Server Card 拡張スキーマ(逆 DNS 形式の name、remotes トランスポートエンドポイント)に準拠しており、提案の以前のリビジョンに対して構築されたスキャナー向けに initialize 形式の互換フィールド(serverInfo、capabilities、transports)も備えています。各ページの Connect to MCP メニューでは、Claude Code、Cursor、VS Code、Codex 向けのコピー&実行式インストールを提供しています(deployment.site が設定されている場合に表示されます)。また、メニューに表示されるクライアントは 選択することもできます。

search_docs は独自の全文検索インデックスを実行するため、search プロバイダーに関係なく動作します — search: false の場合でも同様です。MCP サーバーはページ内検索とは別の機能です。

非表示ページ は、サイト内検索や llms.txt から除外されるのと同様に、list_pages と resources/list から除外され、search.indexing.includeHiddenPages が有効でない限り search_docs からも除外されます。ただし、get_page と resources/read はルートを指定すれば非表示ページも返します。非表示は非公開という意味ではなく、ページは引き続きその URL で、また Markdown としても配信されます。

MCP に対応していないフレームワーク向けに、同じツールが JSON API としてプレーンな HTTP 経由でも利用できます。

エンドポイントはリクエストボディを 64 KB までしか読み取らず、それより大きいリクエストには 413 を返します。存在しないツールの呼び出しや、arguments がオブジェクトではない呼び出しには、JSON-RPC の Invalid params エラー(-32602)が返されます。

コンテンツタイプとファセットによるスコープ設定

search_docs と list_pages はどちらも任意の contentTypes フィルターを受け取り、指定したフロントマターの type(["rfc"]、["blog", "changelog"] など)のページに結果を絞り込みます。そのため、ドキュメントと RFC、ランブック、ポリシーが混在するサイトを扱うエージェントは、必要な種類のページに取得範囲を限定できます。すべての結果はそのコンテンツタイプを示し、list_pages の出力では使用中のタイプが表示されます。

どちらのツールも、サイトがコンテンツタイプごとに宣言するファセット(content.types.<type>.facets)— 値がフィルター可能なメタデータになるカスタムフロントマターキー — と照合する filters オブジェクトも受け取ります。

{
  "query": "OpenAPI request schemas",
  "contentTypes": ["rfc"],
  "filters": { "domain": "architecture", "status": "enforced" }
}

filters のすべてのエントリが一致する必要があります(結果にはそのファセット値が含まれ、list_pages は各ページの値を表示します)。そのため、ナレッジベースは独自のサーバーを一切用意せずに、段階的開示型のエージェントワークフロー(適用済みの標準を列挙し、その中だけを検索する)を実現できます。

値は list_pages に表示されるとおりに、大文字と小文字の区別も含めて完全一致で照合されます。たとえば "enforced" は、status が Enforced のページには一致しません。ファセット値は文字列であるため、filters 内の数値や真偽値はその文字列表現と照合されます({"priority": 1} は priority: 1 のページに一致します)。また、リストなどそれ以外の形式の値は、フィルターとして使われずに無視されます。

Connect to MCP メニュー

Connect to MCP ページアクションは、サーバーの URL をコピーする項目に続けて、サーバーのインストール先となるクライアントを一覧表示します。Claude Code と Codex にはコピー用のコマンド、Cursor と VS Code にはインストールリンクが表示されます。表示するクライアントは clients で選択します。true(デフォルト)はすべての組み込みクライアントを表示し、false はいずれも表示しないため、メニューには Copy server URL のみが残ります。リストを指定すると、指定したクライアントがその順序で表示され、コマンドとリンクの間には区切り線が入ります。

Blume に組み込まれていないクライアントは、label とコピーする command を持つオブジェクトとして指定します。コマンド内の {name} は、ID 形式にしたサーバー名に置き換えられます。これは name(未指定の場合はサイトのタイトル)を小文字に変換し、a–z と 0–9 以外の文字が連続する部分をそれぞれハイフンに置き換えて、先頭と末尾を取り除いたものです(何も残らない場合は docs)。{url} はサーバーの URL に置き換えられます。多言語 サイトでは、label にロケールコードからテキストへのマップを指定できます。icon には 組み込みアイコン の名前、画像のパスまたは URL、インライン SVG のいずれかを指定でき、デフォルトは terminal です。

agents: {
  mcp: {
    enabled: true,
    clients: [
      "claude-code",
      "codex",
      {
        label: "Copy Copilot CLI command",
        command: "copilot mcp add --transport http {name} {url}",
      },
      "cursor",
      "vscode",
    ],
  },
}
キー メニューの項目
claude-code Claude Code 用の claude mcp add コマンドをコピーします。
codex Codex 用の codex mcp add コマンドをコピーします。
cursor Cursor の MCP インストールリンクを開きます。
vscode VS Code の MCP インストールリンクを開きます。

サーバー出力が必要です

MCP サーバーはライブエンドポイント(/mcp)であるため、静的ビルドでは実行できません。blume/deploy からホストアダプターを指定して、サーバー出力に切り替えてください。

import { node } from "blume/deploy"; // or vercel, netlify, cloudflare

export default defineConfig({
  deployment: node({ site: "https://docs.example.com" }),
});

agents.mcp.enabled を有効にした静的ビルドは、ホストアダプターを設定するよう促すメッセージとともに即座に失敗します。アダプターについては デプロイ を参照してください。デプロイ後は、次のコマンドで Claude Code から接続できます。

claude mcp add --transport http my-docs https://docs.example.com/mcp

最終更新

このページは役に立ちましたか?