mcpField
M
MCP Server Firebase

MCP Server Firebase

ローカル
github.com/sheep52031クラウド・インフラ084 週間前に更新

MCP Server Firebase について

MCP Server Firebase は、Firestore の操作を MCP クライアントに提供し、Node.js のローカル実行と Cloudflare Workers に対応します。MCP 経由で Firebase のドキュメントを検索・管理したい開発者向けです。

主な機能

  1. 01ドキュメントの読み取り・作成・更新・削除
  2. 02コレクションとサブコレクションの一覧表示
  3. 03条件を指定した Firestore クエリ
  4. 04Node.js と Workers の実行モード

活用シーン

  1. 01MCP 経由で Firestore ドキュメントを取得・変更
  2. 02コレクションを条件で絞り込んで検索

MCP 対応

MCP サーバーとして、Firestore のドキュメント操作、コレクション一覧、条件付き検索のツールをクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"firebase-sheep52031": {
"command": "npx",
"args": [
"-y",
"wrangler"
]
}
}
}
起動コマンドnpx -y wrangler

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmwrangler

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

プロジェクトの README より

MCP Server Firebase

這是一個基於 Firebase 的 Model Context Protocol (MCP) 服務器實現,提供兩種運行模式:

  1. 本地 Node.js 模式 (使用 Firebase Admin SDK)
  2. Cloudflare Workers 模式 (使用 Firebase REST API)

功能

  • Firestore 資料庫操作 (讀取、寫入、更新、刪除文檔)
  • 集合和子集合的列表查詢
  • 支援過濾條件的查詢

必要條件

  • Node.js 18 或更高版本
  • Firebase 專案
  • Firebase 服務帳號 (用於本地模式)
  • Firebase Web API 密鑰 (用於 Cloudflare Workers 模式)

安裝

  1. 克隆此專案:
git clone https://github.com/[您的用戶名]/mcp-server-firebase.git
cd mcp-server-firebase
  1. 安裝依賴:
npm install

配置

本地模式配置 (Firebase Admin SDK)
  1. 從 Firebase 控制台下載服務帳號金鑰檔案:

    • 前往 Firebase 控制台 > 專案設置 > 服務帳號 > 生成新的私鑰
  2. 將下載的 JSON 文件保存到專案目錄中 (檔名不重要,但請記住路徑)

  3. 設置環境變量:

export SERVICE_ACCOUNT_KEY_PATH="/path/to/your-service-account.json"
Cloudflare Workers 模式配置
  1. 更新 wrangler.toml 文件中的環境變量:

    • FIREBASE_PROJECT_ID: 您的 Firebase 專案 ID
    • FIREBASE_API_KEY: 您的 Firebase Web API 密鑰
    • FIREBASE_AUTH_DOMAIN: 通常是 [PROJECT_ID].firebaseapp.com
  2. 或者使用 Cloudflare Secrets 設置環境變量:

npx wrangler secret put FIREBASE_PROJECT_ID
npx wrangler secret put FIREBASE_API_KEY
npx wrangler secret put FIREBASE_AUTH_DOMAIN

運行

本地模式 (Firebase Admin SDK)
# 編譯 TypeScript 並運行服務器
npm run dev

或使用提供的腳本設置環境變量並運行:

# 互動式設置 Firebase 環境變量
node setup-firebase-env.js

# 根據腳本提示運行後續命令
Cloudflare Workers 模式 (本地開發)
# 編譯 TypeScript 並在本地運行 Workers
npm run dev:worker
同時運行兩種模式
npm run dev:all

部署

部署到 Cloudflare Workers
# 部署到開發環境
npm run deploy:worker

# 部署到生產環境
npm run deploy:production

目錄結構

  • src/index.ts - 本地 Node.js 模式的入口點
  • src/worker.ts - Cloudflare Workers 模式的入口點
  • src/mcp/ - MCP 服務器實現代碼
  • src/lib/ - 公共工具函數

使用方法

連接到 MCP 服務器

在您的客戶端應用中,使用 MCP SDK 連接到服務器:

// 本地模式連接
const mcp = createMcpClient({
  endpoint: "http://localhost:8765"
});

// Cloudflare Workers 模式連接
const mcp = createMcpClient({
  endpoint: "https://your-worker.workers.dev"
});
使用 MCP 工具操作 Firestore
// 添加文檔
const result = await mcp.tools.mcp_firebase_mcp_firestore_add_document({
  documentPath: "collection/documentId",
  data: { field1: "value1", field2: 42 }
});

// 獲取文檔
const doc = await mcp.tools.mcp_firebase_mcp_firestore_get_document({
  documentPath: "collection/documentId"
});

// 更新文檔
await mcp.tools.mcp_firebase_mcp_firestore_update_document({
  documentPath: "collection/documentId",
  data: { field1: "updated value" }
});

// 刪除文檔
await mcp.tools.mcp_firebase_mcp_firestore_delete_document({
  documentPath: "collection/documentId"
});

// 列出集合中的文檔
const docs = await mcp.tools.mcp_firebase_mcp_firestore_list_documents({
  collectionPath: "collection",
  filters: [
    { field: "field2", operator: ">", value: 40 }
  ]
});

// 列出集合
const collections = await mcp.tools.mcp_firebase_mcp_firestore_list_collections({
  parentPath: "collection/documentId"  // 可選
});

安全注意事項

  • 請勿將服務帳號金鑰或 API 密鑰提交到 Git 存儲庫
  • 在部署前確保所有敏感信息已設置為環境變量或 Secrets
  • 為 Firestore 設置適當的安全規則

注意事項

  • src/worker.ts 是 Cloudflare Workers 部署版本
  • src/index.ts 是本地運行版本
  • 請確保 Firebase 服務帳號具有適當的權限

許可證

此專案使用 MIT 許可證。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。