返回市场
高级_firestore_MCP

高级_firestore_MCP

作者:diez7lm4 星标更新:2025-04-06

项目介绍

🔥 Firestore 高级 MCP

版本 许可证 Node

用于 Firebase Firestore 的高级 MCP 服务器,允许像 Claude 这样的大型语言模型与您的 Firebase 数据库进行完全交互。

✨ 功能

  • 📝 完整的 Firestore 支持:CRUD 操作,复合查询,多重过滤器
  • 高级操作:事务处理,原子操作,批量更新
  • 🔄 特殊数据类型:GeoPoint,文档引用,时间戳
  • ⏱️ TTL 管理:为文档设置生存时间
  • 🔍 智能缺失索引检测:自动提供创建所需索引的指令
  • 🎯 高级搜索:集合组查询,复杂过滤器

📋 先决条件

  • Node.js >= 16.0.0
  • 启用了 Firestore 的 Firebase 项目
  • Firebase 服务账户密钥文件(JSON 文件)

🚀 安装

通过 npm

npm install -g firestore-advanced-mcp

通过 GitHub

git clone https://github.com/diez7lm/firestore-advanced-mcp.git
cd firestore-advanced-mcp
npm install

🔧 配置

  1. 获取您的 Firebase 服务账户密钥

    • 访问 Firebase 控制台
    • 选择您的项目
    • 项目设置 > 服务账户
    • 生成新的私钥并下载 JSON 文件
  2. 设置环境变量

export SERVICE_ACCOUNT_KEY_PATH="/路径/到/您的/serviceAccountKey.json"

🖥️ 使用方法

使用全局 npm

SERVICE_ACCOUNT_KEY_PATH="/路径/到/您的/serviceAccountKey.json" firestore-advanced-mcp

使用 npx

SERVICE_ACCOUNT_KEY_PATH="/路径/到/您的/serviceAccountKey.json" npx firestore-advanced-mcp

从克隆的目录中运行

SERVICE_ACCOUNT_KEY_PATH="/路径/到/您的/serviceAccountKey.json" node index.js

在 Claude 中配置

要使用此 MCP 服务器与 Claude,需在您的 claude_desktop_config.json 文件中添加以下配置:

"firebase-mcp": {
  "command": "npx",
  "args": ["firestore-advanced-mcp"],
  "env": {
    "SERVICE_ACCOUNT_KEY_PATH": "/路径/到/您的/serviceAccountKey.json"
  }
}

或对于本地安装的版本:

"firebase-mcp": {
  "command": "node",
  "path": ["/路径/到/firestore-advanced-mcp/index.js"],
  "env": {
    "SERVICE_ACCOUNT_KEY_PATH": "/路径/到/您的/serviceAccountKey.json"
  }
}

🛠️ 提供给 Claude 的工具

基本操作

  • firestore_get - 获取文档
  • firestore_create - 创建新文档
  • firestore_update - 更新现有文档
  • firestore_delete - 删除文档
  • firestore_query - 执行带有过滤器的查询
  • firestore_list_collections - 列出可用的集合

高级查询

  • firestore_collection_group_query - 集合组查询
  • firestore_composite_query - 复合查询
  • firestore_count_documents - 计算文档数量而不全部检索

特殊类型和高级功能

  • firestore_special_data_types - 处理 GeoPoint 和引用
  • firestore_set_ttl - 设置文档的自动过期时间
  • firestore_transaction - 执行由多个操作组成的事务
  • firestore_batch - 执行批量操作
  • firestore_field_operations - 原子操作(递增、数组联合等)
  • firestore_full_text_search - 文档全文搜索

📝 示例

获取文档

{
  "collection": "users",
  "id": "user123"
}

创建带有对其他文档引用的新文档

{
  "collection": "orders",
  "data": {
    "product": "笔记本电脑",
    "price": 999.99,
    "fields": [
      {
        "fieldPath": "user",
        "type": "reference",
        "value": "users/user123"
      }
    ]
  }
}

为文档设置 TTL

{
  "collection": "临时数据",
  "id": "会话123",
  "expiresIn": 86400000,
  "fieldName": "过期时间"
}

执行带有多重过滤器的查询

{
  "collection": "产品",
  "filters": [
    {
      "field": "类别",
      "operator": "==",
      "value": "电子产品"
    },
    {
      "field": "价格",
      "operator": "<",
      "value": 1000
    }
  ],
  "orderBy": {
    "field": "价格",
    "direction": "asc"
  },
  "limit": 10
}

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件以获取更多详情。

👨🏽‍💻 作者

  • Diez7lm

🙏 致谢

  • Anthropic 提供了 Claude 和 Model Context Protocol
  • Firebase 提供了 Firestore 和开发工具

🦾 贡献

欢迎贡献!请随时提交拉取请求或通过 GitHub 问题报告问题。

📚 更多文档

有关如何使用 Firebase 的 Firestore 的更多信息,请参阅 Firebase 官方文档

有关 Model Context Protocol (MCP) 及其与 Claude 的使用,请参阅 Anthropic 文档。 </中文翻译>