🔥 Firestore高级MCP
Firebase Firestore的高级模型上下文协议(MCP)服务器,允许像Claude这样的大型语言模型与Firebase数据库完全交互。
✨ 功能
- 📝 消防仓库配套 :CRUD、复合查询、多个过滤器
- ⚡ 高级操作 :事务、原子操作、批量更新
- 🔄 特殊数据类型 :geopoint、文档引用、时间戳
- ⏱️ 妊娠TTL :配置文档的生存时间
- 🔍 缺失索引的智能检测 :创建必要索引的自动说明
- 🎯 高级搜索 :对集合组、复杂过滤器的查询
📋 Prérequis
- 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🔧 配置
- 获取您的Firebase服务帐户密钥 :
- 去 控制台Firebase - 选择您的项目 - 项目设置>服务帐户 - 生成新私钥并下载JSON文件
- 设置环境变量 :
export SERVICE_ACCOUNT_KEY_PATH="/chemin/vers/votre/serviceAccountKey.json"🖥️ 使用
与NPM Global合作
SERVICE_ACCOUNT_KEY_PATH="/chemin/vers/votre/serviceAccountKey.json" firestore-advanced-mcp使用NPX
SERVICE_ACCOUNT_KEY_PATH="/chemin/vers/votre/serviceAccountKey.json" npx firestore-advanced-mcp从克隆目录
SERVICE_ACCOUNT_KEY_PATH="/chemin/vers/votre/serviceAccountKey.json" node index.jsClaude中的配置
要将此MCP服务器与Claude一起使用,请在文件中添加以下配置: claude_desktop_config.json :
"firebase-mcp": {
"command": "npx",
"args": ["firestore-advanced-mcp"],
"env": {
"SERVICE_ACCOUNT_KEY_PATH": "/chemin/vers/votre/serviceAccountKey.json"
}
}或者对于本地安装的版本:
"firebase-mcp": {
"command": "node",
"args": ["/chemin/vers/firestore-advanced-mcp/index.js"],
"env": {
"SERVICE_ACCOUNT_KEY_PATH": "/chemin/vers/votre/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-管理地理点和参考firestore_set_ttl-配置文档的自动到期firestore_transaction-执行由多个操作组成的事务firestore_batch-执行批处理操作firestore_field_operations-原子操作(增量、arrayunion等)firestore_full_text_search-文档中的文本搜索
📝 例子
恢复文档
{
"collection": "users",
"id": "user123"
}创建引用其他文档的文档
{
"collection": "orders",
"data": {
"product": "Laptop",
"price": 999.99,
"fields": [
{
"fieldPath": "user",
"type": "reference",
"value": "users/user123"
}
]
}
}在文档上配置TTL
{
"collection": "temporaryData",
"id": "session123",
"expiresIn": 86400000,
"fieldName": "expires_at"
}使用多个筛选器运行查询
{
"collection": "products",
"filters": [
{
"field": "category",
"operator": "==",
"value": "electronics"
},
{
"field": "price",
"operator": "<",
"value": 1000
}
],
"orderBy": {
"field": "price",
"direction": "asc"
},
"limit": 10
}📄 许可证
本项目获得MIT许可-请参阅文件 许可证 更多详情。
👨🏽💻 作者
- 迪兹7lm
🙏 致谢
🦾 贡献
欢迎捐款!请随时提交拉取请求或通过GitHub问题报告问题。
📚 补充文件
有关在Firebase中使用Firestore的更多信息,请参阅 Firebase官方文档.
要了解有关模型上下文协议(MCP)及其与Claude的使用的更多信息,请参阅 人类学文献.
