Firebase Docs MCP Server Setup について
Firebase Docs MCP Server Setupは、Firebaseドキュメントをインデックス化し、MCPクライアントに提供するサンプルプロジェクトです。Go製インデクサー、stdioサーバー、テスト用のGenkitクライアントが含まれます。
主な機能
- 01Firebaseドキュメントファイルのインデックス化
- 02インデックスデータのSQLite保存
- 03stdio経由のドキュメント検索
- 04Genkit MCPテストクライアントの同梱
活用シーン
- 01インデックス化したFirebaseドキュメントの検索
- 02MCP Inspectorでドキュメント検索をテスト
- 03Genkit DevUIからツールを試用
MCP 対応
MCPサーバーは、インデックス済みドキュメントデータベースを使い、stdio経由で`find-firebase-doc`ツールを公開します。テスト用のGenkit MCPクライアントとMCP Inspectorも説明されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Firebase ドキュメント MCP サーバーのセットアップ
ディレクトリ構成
docs-mcp
Firebase ドキュメント用のインデクサーに相当します。これは Go プロジェクトで、指定されたファイルパスに含まれる Firebase ドキュメントを取得してインデックスを作成します。
docs-mcp-server
stdio トランスポート経由でコンテンツを提供する Model Context Protocol サーバーです。
genkit-mcp-tester
docs-mcp-server を使用してテストするための、MCP クライアントの Genkit 実装です。
使用方法
インデックス作成から始める
-
API キーを設定します。ドキュメントには Gemini エンベディングモデルを使用するため、AI Studio から API キーを取得する必要があります。API キーを設定するには、ターミナルで
export genaikey="APIKEY"を実行します。 -
出力ディレクトリが空であることを確認します。ホームディレクトリ内の
.indexRespというフォルダーにファイルを書き込みます。Go が Firebase ドキュメントサイトからドキュメントを取得すると、ファイルを Markdown 形式でディスクに書き込み、このディレクトリ内の SQL lite データベースにもインデックスを作成します。インデックス作成に失敗した場合は、ドキュメントを Markdown 形式で再インデックスするための再試行戦略を実行します。 -
docs-mcpフォルダーからgo run .を実行します。これにより、main.goファイルの 291 行目付近に記載されたファイルのインデックス作成が始まります。
インデクサーをテストする
-
API キーを設定します。ドキュメントには Gemini エンベディングモデルを使用するため、AI Studio から API キーを取得する必要があります。API キーを設定するには、ターミナルで
export genaikey="APIKEY"を実行します。 -
docs-mcp-serverフォルダーに移動します。 -
インデックス作成済みのデータベースをローカルの
docs-mcp-serverフォルダーにコピーします。cp $HOME/.indexResp/db.sqlite .を実行します。 -
依存関係をインストールしてプロジェクトをビルドします。
npm ciを実行し、続けてnpm run buildを実行します。プロジェクトをビルドしたら、npm run build && npx @modelcontextprotocol/inspector node build/index.jsを実行してテストできます。これによりインスペクターが起動し、STDIO サーバーを表示するための URL が出力されます。 -
インスペクターの画面で Connect をクリックし、次に tools -> List Tools -> find-firebase-doc の順にクリックして、使用したいリクエストを入力します。注: 筆者は、この手順の実行に VSCode 内蔵のターミナルを使うと問題が発生することがありました。同様の問題が起きた場合は、システムのターミナルをお試しください。
テストに Genkit を使用する
-
embedding.ts の次の行を、
const genAiKey = process.env.genaikey || "";からconst genAiKey = process.env.genaikey || "MYAPIKEY";に変更して、コード内に API キーを設定します。 -
genkit-mcp-testerディレクトリに移動します。 -
インデックス作成済みのデータベースをローカルの
genkit-mcp-testerフォルダーにコピーします。cp $HOME/.indexResp/db.sqlite .を実行します。 -
依存関係をインストールしてプロジェクトをビルドします。
npm ciを実行し、続けてnpm run buildを実行します。プロジェクトをビルドしたら、npx genkit start -- npx tsx --watch src/index.tsを実行してテストできます。これにより Genkit DevUI が起動し、フローやツールを直接操作できます。DevUI を開きます。通常は http://localhost:4000 にあります。Tools ->find-firebase-doc/find-firebase-docツールに移動し、ここでリクエストを実行します。リクエストによって、modelcontextprotocol/inspector で確認できるものと同じ結果が返されることを確認できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。