【こんなこといいな Vol.3】Firebase環境で動かしたい!Claudeと作ったADC対応GA4 MCPサーバー開発・npm公開記

皆さん、こんにちは。okamoです。

「こんなこといいな できたらいいな・・」シリーズ、待望の第3回目です。 この企画は、のび太(私、okamo)がドラえもん(Claude)に泣きついて、技術的な無理難題を解決してもらうという夢の企画です。

今回のテーマは**「MCPサーバーの作成とnpm公開」**。 既存ツールの改修からnpmへの公開作業まで、そのほとんどをClaudeにお任せで実施してしまいました。

開発のきっかけ:Firebase App HostingでGA4 MCPを使いたい

事の発端は、Firebase App Hosting (Next.js環境) で、Google Analytics 4 (GA4) のデータをAIアシスタントに連携させる「MCPサーバー」を動かしたいと考えたことでした。

しかし、ここで壁にぶつかります。

  1. 環境の不一致: Google公式のMCPツールはPython版ですが、App Hostingのランタイムに合わせてNode.js (npx) 版を使う必要がありました。
  2. 既存ツールの課題: 既存のnpx版ツール(mcp-server-google-analytics)を見つけましたが、以下の問題がありました。
    • ADC (Application Default Credentials) 未対応: 秘密鍵を環境変数に直接埋め込む必要があり、セキュリティ的に不安。
    • アーカイブ済み: 元のリポジトリがメンテナンスされていない。

そこで、「ADC対応させて、Firebase環境でも安全・快適に使えるようにしたい!」とClaudeに相談を持ちかけました。

ドラえもん(Claude)との開発ログ

ここからは、実際の開発の経緯をダイジェストでお送りします。 なお、Claudeとの全会話ログは以下のリンクからご覧いただけます。 📂 Claudeとの会話履歴全文 (GitHub)

1. 無茶振り:npxでそのまま使えるように直して!

最初は、フォークしたリポジトリを npx github:user/repo の形式で直接呼び出そうと考えていました。

User (okamo):

npx版のga4 mcpについて、ADCが使えず、環境変数の秘密鍵を必須要求するのです。修正して、npm公開 (npx -y xxxxで使えるように)できますか? ドキュメントはすべて日本語にしたいです。

Claude (GitHub Copilot):

ユーザーさんの修正方針(ADC対応)は正しく、このまま進めて問題ありません。 ただし、npm公開を推奨します

ここでClaudeから意外な提案がありました。

2. プロのアドバイス:GitHub直接実行よりnpm公開すべき

Claudeは、私がやろうとしていた「GitHubリポジトリからの直接実行」に対して、明確なメリット・デメリットを提示してくれました。

方法メリットデメリット
npm公開シンプルに呼べる。バージョン管理が容易npmアカウントが必要
GitHub直接publish不要dist/フォルダをコミットする必要があり(アンチパターン)、動作も遅い

Claude:

現状の package.json には既に設定が整っているので、npm公開のほうが圧倒的に楽で安定します

さすがドラえもん、道具(手段)の選び方が的確です。私はこの提案に乗ることにしました。

3. ネーミングも丸投げ

既存のパッケージと名前が被らないように、かつユーザーが見つけやすい名前を付ける必要があります。

User:

パッケージ名はga4 mcpブログ記事にgoogle公式でない今回のnpx版のmcpへの参照が大量にあるので、そういった方が迷わず使えるように配慮したいです。いい名前提案お願いします。

Claude:

@okamoto53515606/mcp-server-google-analytics または短い名前で。 ...やっぱり、検索での見つけやすさを考慮して mcp-server-ga4 はどうでしょう?

こうして、パッケージ名は mcp-server-ga4 に決定しました。

成果物:mcp-server-ga4

Claudeの指示通りにコマンドを打ち込み、あっという間にnpmへの公開が完了しました。

npmに公開されたmcp-server-ga4パッケージのスクリーンショット

リソースリンク

何が変わったのか?

今回作成したツールの主な特徴は以下の通りです。

  • ADC完全対応: Google Cloud環境(Cloud Runなど)やローカルの gcloud auth application-default login があれば、秘密鍵の管理が不要になりました。
  • 日本語ドキュメント: READMEを完全に日本語化し、導入のハードルを下げました。

使い方は非常にシンプルです。

{
  "mcpServers": {
    "ga4": {
      "command": "npx",
      "args": ["-y", "mcp-server-ga4"],
      "env": {
        "GA_PROPERTY_ID": "123456789"
      }
    }
  }
}

これだけで、VSCode上のClaudeやCopilotからGA4のデータを自由に問い合わせることができるようになります。

実際にClaudeに使わせてみた

開発した本人が使う前に、作った張本人(Claude)に動作確認をさせました。

User:

あなたの環境でmcpアクセスできるはず。試せます?

Claude:

接続成功です! GA4 プロパティ XXXXXXXXX からデータが取得できました。 直近7日間(2/24〜3/3)のアクティブユーザー:

日付アクティブユーザー
2/241
......
2/282

無事、自分が作ったツールを使って自分自身でデータを取得することに成功しました。この「自給自足」感、たまりません。

今後の展開

今回はローカル環境(VSCode)での動作確認まで完了しました。 しかし、本当の挑戦はここからです。

「果たして、Firebase Studio (Firebase App Hosting) で、この mcp-server-ga4 は使えるのか?」

Firebase App Hosting上で、npx コマンド経由のstdioタイプMCPサーバーが正常に稼働するかどうか。これについては、以下の記事で検証結果を公開しています。

▼検証結果の記事はこちら 【Firebase Studio】環境構築不要!Genkit×MCPでGA4分析AIアプリを作る全工程とプロンプト完全ガイド

のび太とドラえもんの冒険はまだまだ続きます。ぜひ続きもご覧ください!



コメント (0)

コメントを投稿するにはログインが必要です。