火场MCP

概览
火场MCP 使AI助理能够直接与Firebase服务合作,包括:
- 消防车: 文档数据库操作
- 存储: 具有强大上传能力的文件管理
- 认证: 用户管理和核查
服务器与 MCP 客户端应用程序合作, 例如 克劳德桌面, (中文(简体) ), 增强码, (中文(简体) ), VS 代码,以及 光标。 。 。 .
⚠️ 已知问题编号:
firestore_list_collections工具可能返回客户端日志中的 Zod 验证错误。 这在MCP SDK中是一个错误的验证错误,因为我们的调查证实答复中没有布尔值. 尽管有错误消息,但查询仍然正确,并返回适当的收集数据. 这是一个日志级别错误,不影响功能.
QQ 快速启动
先决条件
- 具有服务账户证书的消防基地项目
- 节点.js 环境
1. 安装 MCP 服务器
将服务器配置添加到您的 MCP 设置文件 :
- 克劳德桌面 :
~/Library/Application Support/Claude/claude_desktop_config.json - 增强:
~/Library/Application Support/Code/User/settings.json - 光标 :
[project root]/.cursor/mcp.json
MCP服务器可以通过npx(被推荐)手动安装或在运行时间安装. 您如何安装决定您的配置 :
Npx 配置( 建议)
{
"firebase-mcp": {
"command": "npx",
"args": [
"-y",
"@gannonh/firebase-mcp"
],
"env": {
"SERVICE_ACCOUNT_KEY_PATH": "/absolute/path/to/serviceAccountKey.json",
"FIREBASE_STORAGE_BUCKET": "your-project-id.firebasestorage.app"
}
}
}
本地安装配置
{
"firebase-mcp": {
"command": "node",
"args": [
"/absolute/path/to/firebase-mcp/dist/index.js"
],
"env": {
"SERVICE_ACCOUNT_KEY_PATH": "/absolute/path/to/serviceAccountKey.json",
"FIREBASE_STORAGE_BUCKET": "your-project-id.firebasestorage.app"
}
}
}
2. 测试安装
询问你的AI客户端:"请测试所有的Firebase MCP工具"
QQ 设置配置( S)
1. 消防基地配置
- 转到 火地控台 项目设置 服务账户
- 点击“ 生成新私人密钥 ”
- 安全保存 JSON 文件
2. 环境变量
需求
SERVICE_ACCOUNT_KEY_PATH: 您的 Firebase 服务账户密钥的路径( 需要)
可选
FIREBASE_STORAGE_BUCKET: Firebase 存储(默认为[projectId].appspot.com(中文(简体) )MCP_TRANSPORT: 要使用的运输类型(stdio或者说http) (违约stdio(中文(简体) )MCP_HTTP_PORT: HTTP 运输的端口(默认为3000(中文(简体) )MCP_HTTP_HOSTHTTP 传输主机( 默认为localhost(中文(简体) )MCP_HTTP_PATH: HTTP 传输路径( 默认为/mcp(中文(简体) )DEBUG_LOG_FILE: 启用文件记录 :- 设定为
true日志为~/.firebase-mcp/debug.log - 设定为要登录到自定义位置的文件路径
- 设定为
3. 客户一体化
克劳德桌面
编辑 : ~/Library/Application Support/Claude/claude_desktop_config.json
VS 代码/ 增加
编辑 : ~/Library/Application Support/Code/User/settings.json
光标
编辑 : [project root]/.cursor/mcp.json
API 参考
消防工具
| 工具 | 说明 | 所需参数 |
|---|---|---|
firestore_add_document | 将文档添加到收藏中 | collection, (中文(简体) ), data |
firestore_list_documents | 列出带有过滤功能的文档 | collection |
firestore_get_document | 获取特定文档 | collection, (中文(简体) ), id |
firestore_update_document | 更新现有文档 | collection, (中文(简体) ), id, (中文(简体) ), data |
firestore_delete_document | 删除文档 | collection, (中文(简体) ), id |
firestore_list_collections | 列出根收藏 | 无 |
firestore_query_collection_group | 查询所有子收藏 | collectionId |
存储工具
| 工具 | 说明 | 所需参数 |
|---|---|---|
storage_list_files | 在目录中列出文件 | 无( 可选 : directoryPath(中文(简体) ) |
storage_get_file_info | 获取文件元数据和 URL | filePath |
storage_upload | 从内容上传文件 | filePath, (中文(简体) ), content |
storage_upload_from_url | 从 URL 上传文件 | filePath, (中文(简体) ), url |
认证工具
| 工具 | 说明 | 所需参数 |
|---|---|---|
auth_get_user | 通过ID或电子邮件获取用户 | identifier |
QQ 开发者指南
安装和大楼
git clone https://github.com/gannonh/firebase-mcp
cd firebase-mcp
npm install
npm run build
运行测试
首先,安装并启动 Firebase 模拟器:
npm install -g firebase-tools
firebase init emulators
firebase emulators:start
然后运行测试:
# Run tests with emulator
npm run test:emulator
# Run tests with coverage
npm run test:coverage:emulator
项目结构
src/
├── index.ts # Server entry point
├── utils/ # Utility functions
└── lib/
└── firebase/ # Firebase service clients
├── authClient.ts # Authentication operations
├── firebaseConfig.ts # Firebase configuration
├── firestoreClient.ts # Firestore operations
└── storageClient.ts # Storage operations
HTTP 运输
Firebase MCP现在除了默认的stdio运输外,还支持HTTP运输. 这使得您可以将服务器运行为一个独立的HTTP服务,可以被多个客户端访问.
与 HTTP 运输运行
用 HTTP 传输运行服务器 :
# Using environment variables
MCP_TRANSPORT=http MCP_HTTP_PORT=3000 node dist/index.js
# Or with npx
MCP_TRANSPORT=http MCP_HTTP_PORT=3000 npx @gannonh/firebase-mcp
HTTP 客户端配置
当使用 HTTP 传输时, 配置您的 MCP 客户端连接到 HTTP 端点 :
{
"firebase-mcp": {
"url": "http://localhost:3000/mcp"
}
}
会话管理
HTTP运输支持会话管理,允许多个客户端连接到同一个服务器实例. 每个客户端都会收到一个独特的会话ID,用于在请求之间保持状态.
* 解决问题
共同问题
未找到存储桶
如果您看到“ 指定的桶不存在 ” 错误 :
- 在 Firebase 控制台中验证您的桶名 – 存储
- 设置正确的桶名
FIREBASE_STORAGE_BUCKET环境变量
启动失败
如果您看到“ Firebase 未初始化 ” 错误 :
- 检查您的服务账户密钥路径是否正确和绝对
- 确保服务账户对消防基地服务有适当的授权
所需综合指数
如果您收到“ 此查询需要综合索引” 错误 :
- 查找错误消息中提供的 URL
- 跟踪链接在 Firebase 控制台创建所需的索引
- 在索引创建后重试您的查询( 可能需要几分钟)
Zod 校验错误 firestore_list_collections
如果您看到 Zod 验证错误, 信件“ 期望对象 ” , 在使用时为布尔 firestore_list_collections 工具:
⚠️ 已知问题编号:
firestore_list_collections工具可能返回客户端日志中的 Zod 验证错误。 这在MCP SDK中是一个错误的验证错误,因为我们的调查证实答复中没有布尔值. 尽管有错误消息,但查询仍然正确,并返回适当的收集数据. 这是一个日志级别错误,不影响功能.
调试
启用文件日志
为了帮助诊断问题, 您可以启用文件记录 :
# Log to default location (~/.firebase-mcp/debug.log)
DEBUG_LOG_FILE=true npx @gannonh/firebase-mcp
# Log to a custom location
DEBUG_LOG_FILE=/path/to/custom/debug.log npx @gannonh/firebase-mcp
您也可以在 MCP 客户端配置中启用日志 :
{
"firebase-mcp": {
"command": "npx",
"args": ["-y", "@gannonh/firebase-mcp"],
"env": {
"SERVICE_ACCOUNT_KEY_PATH": "/path/to/serviceAccountKey.json",
"FIREBASE_STORAGE_BUCKET": "your-project-id.firebasestorage.app",
"DEBUG_LOG_FILE": "true"
}
}
}
实时日志查看
要实时查看日志 :
# Using tail to follow the log file
tail -f ~/.firebase-mcp/debug.log
# Using a split terminal to capture stderr
npm start 2>&1 | tee logs.txt
使用 MCP 检查员
MCP检查员提供交互式调试:
# Install MCP Inspector
npm install -g @mcp/inspector
# Connect to your MCP server
mcp-inspector --connect stdio --command "node ./dist/index.js"
答复格式
存储上传响应示例
{
"name": "reports/quarterly.pdf",
"size": "1024000",
"contentType": "application/pdf",
"updated": "2025-04-11T15:37:10.290Z",
"downloadUrl": "https://storage.googleapis.com/bucket/reports/quarterly.pdf?alt=media",
"bucket": "your-project.appspot.com"
}
显示为用户 :
## File Successfully Uploaded! 📁
Your file has been uploaded to Firebase Storage:
**File Details:**
- **Name:** reports/quarterly.pdf
- **Size:** 1024000 bytes
- **Type:** application/pdf
- **Last Updated:** April 11, 2025 at 15:37:10 UTC
**[Click here to download your file](https://storage.googleapis.com/bucket/reports/quarterly.pdf?alt=media)**
捐款
- 叉子存储器
- 创建特性分支
- 通过测试实施变革(需要80+%覆盖)
- 提交拉动请求
许可证
麻省理工学院执照 - 看 自由主义 详细文件