{
  "name": "firebase",
  "display_name": "Firebase",
  "description": "Server to interact with Firebase services including Firebase Authentication, Firestore, and Firebase Storage.",
  "repository": {
    "type": "git",
    "url": "https://github.com/gannonh/firebase-mcp"
  },
  "homepage": "https://github.com/gannonh/firebase-mcp",
  "author": {
    "name": "gannonh"
  },
  "license": "MIT",
  "categories": [
    "Databases"
  ],
  "tags": [
    "Firebase",
    "LLM",
    "Server"
  ],
  "installations": {
    "npm": {
      "type": "npm",
      "command": "npx",
      "args": [
        "-y",
        "@gannonh/firebase-mcp"
      ],
      "env": {
        "SERVICE_ACCOUNT_KEY_PATH": "${SERVICE_ACCOUNT_KEY_PATH}",
        "FIREBASE_STORAGE_BUCKET": "${FIREBASE_STORAGE_BUCKET}"
      }
    }
  },
  "arguments": {
    "SERVICE_ACCOUNT_KEY_PATH": {
      "description": "Path to your Firebase service account key JSON file",
      "required": true,
      "example": "/absolute/path/to/serviceAccountKey.json"
    },
    "FIREBASE_STORAGE_BUCKET": {
      "description": "Bucket name for Firebase Storage",
      "required": false,
      "example": "your-project-id.firebasestorage.app"
    }
  },
  "tools": [
    {
      "name": "firestore_add_document",
      "description": "Add a document to a Firestore collection",
      "inputSchema": {
        "type": "object",
        "properties": {
          "collection": {
            "type": "string",
            "description": "Collection name"
          },
          "data": {
            "type": "object",
            "description": "Document data"
          }
        },
        "required": [
          "collection",
          "data"
        ]
      }
    },
    {
      "name": "firestore_list_documents",
      "description": "List documents from a Firestore collection with filtering and ordering",
      "inputSchema": {
        "type": "object",
        "properties": {
          "collection": {
            "type": "string",
            "description": "Collection name"
          },
          "filters": {
            "type": "array",
            "description": "Array of filter conditions",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "description": "Field name to filter"
                },
                "operator": {
                  "type": "string",
                  "description": "Comparison operator (==, >, <, >=, <=, array-contains, in, array-contains-any)"
                },
                "value": {
                  "description": "Value to compare against (use ISO format for dates)"
                }
              },
              "required": [
                "field",
                "operator",
                "value"
              ]
            }
          },
          "limit": {
            "type": "number",
            "description": "Number of documents to return",
            "default": 20
          },
          "pageToken": {
            "type": "string",
            "description": "Token for pagination to get the next page of results"
          },
          "orderBy": {
            "type": "array",
            "description": "Array of fields to order by",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string",
                  "description": "Field name to order by"
                },
                "direction": {
                  "type": "string",
                  "description": "Sort direction (asc or desc)",
                  "enum": [
                    "asc",
                    "desc"
                  ],
                  "default": "asc"
                }
              },
              "required": [
                "field"
              ]
            }
          }
        },
        "required": [
          "collection"
        ]
      }
    },
    {
      "name": "firestore_get_document",
      "description": "Get a document from a Firestore collection",
      "inputSchema": {
        "type": "object",
        "properties": {
          "collection": {
            "type": "string",
            "description": "Collection name"
          },
          "id": {
            "type": "string",
            "description": "Document ID"
          }
        },
        "required": [
          "collection",
          "id"
        ]
      }
    },
    {
      "name": "firestore_update_document",
      "description": "Update a document in a Firestore collection",
      "inputSchema": {
        "type": "object",
        "properties": {
          "collection": {
            "type": "string",
            "description": "Collection name"
          },
          "id": {
            "type": "string",
            "description": "Document ID"
          },
          "data": {
            "type": "object",
            "description": "Updated document data"
          }
        },
        "required": [
          "collection",
          "id",
          "data"
        ]
      }
    },
    {
      "name": "firestore_delete_document",
      "description": "Delete a document from a Firestore collection",
      "inputSchema": {
        "type": "object",
        "properties": {
          "collection": {
            "type": "string",
            "description": "Collection name"
          },
          "id": {
            "type": "string",
            "description": "Document ID"
          }
        },
        "required": [
          "collection",
          "id"
        ]
      }
    },
    {
      "name": "auth_get_user",
      "description": "Get a user by ID or email from Firebase Authentication",
      "inputSchema": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "User ID or email address"
          }
        },
        "required": [
          "identifier"
        ]
      }
    },
    {
      "name": "storage_list_files",
      "description": "List files in a given path in Firebase Storage",
      "inputSchema": {
        "type": "object",
        "properties": {
          "directoryPath": {
            "type": "string",
            "description": "The optional path to list files from. If not provided, the root is used."
          }
        },
        "required": []
      }
    },
    {
      "name": "storage_get_file_info",
      "description": "Get file information including metadata and download URL",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filePath": {
            "type": "string",
            "description": "The path of the file to get information for"
          }
        },
        "required": [
          "filePath"
        ]
      }
    },
    {
      "name": "firestore_list_collections",
      "description": "List root collections in Firestore",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    }
  ]
}