Google Cloud Firestore · Capability

Google Cloud Firestore API

The Cloud Firestore API provides RESTful access to Google Cloud Firestore, a flexible, scalable NoSQL cloud database for storing and syncing data. It enables CRUD operations on documents and collections, querying with filters and ordering, managing indexes, and handling real-time data synchronization across client apps.

Run with Naftiko GoogleCloudFirestoreAPI

What You Can Do

GET
Listdatabases — Google Cloud Firestore List databases
/projects/{project}/databases
POST
Createdatabase — Google Cloud Firestore Create a database
/projects/{project}/databases
GET
Getdatabase — Google Cloud Firestore Get a database
/projects/{project}/databases/{database}
DELETE
Deletedatabase — Google Cloud Firestore Delete a database
/projects/{project}/databases/{database}
GET
Listdocuments — Google Cloud Firestore List documents
/projects/{project}/databases/{database}/documents/{collectionId}
POST
Createdocument — Google Cloud Firestore Create a document
/projects/{project}/databases/{database}/documents/{collectionId}
GET
Getdocument — Google Cloud Firestore Get a document
/projects/{project}/databases/{database}/documents/{collectionId}/{documentId}
PATCH
Updatedocument — Google Cloud Firestore Update a document
/projects/{project}/databases/{database}/documents/{collectionId}/{documentId}
DELETE
Deletedocument — Google Cloud Firestore Delete a document
/projects/{project}/databases/{database}/documents/{collectionId}/{documentId}
POST
Runquery — Google Cloud Firestore Run a query
/projects/{project}/databases/{database}/documents:runQuery

MCP Tools

listdatabases

Google Cloud Firestore List databases

read-only idempotent
createdatabase

Google Cloud Firestore Create a database

getdatabase

Google Cloud Firestore Get a database

read-only idempotent
deletedatabase

Google Cloud Firestore Delete a database

idempotent
listdocuments

Google Cloud Firestore List documents

read-only idempotent
createdocument

Google Cloud Firestore Create a document

getdocument

Google Cloud Firestore Get a document

read-only idempotent
updatedocument

Google Cloud Firestore Update a document

deletedocument

Google Cloud Firestore Delete a document

idempotent
runquery

Google Cloud Firestore Run a query

Capability Spec

google-cloud-firestore-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Cloud Firestore API
  description: The Cloud Firestore API provides RESTful access to Google Cloud Firestore, a flexible, scalable NoSQL cloud
    database for storing and syncing data. It enables CRUD operations on documents and collections, querying with filters
    and ordering, managing indexes, and handling real-time data synchronization across client apps.
  tags:
  - Google
  - Cloud
  - Firestore
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: google-cloud-firestore
    baseUri: https://firestore.googleapis.com/v1
    description: Google Cloud Firestore API HTTP API.
    authentication:
      type: bearer
      token: '{{GOOGLE_CLOUD_FIRESTORE_TOKEN}}'
    resources:
    - name: projects-project-databases
      path: /projects/{project}/databases
      operations:
      - name: listdatabases
        method: GET
        description: Google Cloud Firestore List databases
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createdatabase
        method: POST
        description: Google Cloud Firestore Create a database
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: databaseId
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-databases-database
      path: /projects/{project}/databases/{database}
      operations:
      - name: getdatabase
        method: GET
        description: Google Cloud Firestore Get a database
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: database
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletedatabase
        method: DELETE
        description: Google Cloud Firestore Delete a database
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: database
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-databases-database-documents-co
      path: /projects/{project}/databases/{database}/documents/{collectionId}
      operations:
      - name: listdocuments
        method: GET
        description: Google Cloud Firestore List documents
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: database
          in: path
          type: string
          required: true
        - name: collectionId
          in: path
          type: string
          required: true
        - name: pageSize
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        - name: orderBy
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createdocument
        method: POST
        description: Google Cloud Firestore Create a document
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: database
          in: path
          type: string
          required: true
        - name: collectionId
          in: path
          type: string
          required: true
        - name: documentId
          in: query
          type: string
          description: Optional client-assigned document ID.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-databases-database-documents-co
      path: /projects/{project}/databases/{database}/documents/{collectionId}/{documentId}
      operations:
      - name: getdocument
        method: GET
        description: Google Cloud Firestore Get a document
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: database
          in: path
          type: string
          required: true
        - name: collectionId
          in: path
          type: string
          required: true
        - name: documentId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatedocument
        method: PATCH
        description: Google Cloud Firestore Update a document
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: database
          in: path
          type: string
          required: true
        - name: collectionId
          in: path
          type: string
          required: true
        - name: documentId
          in: path
          type: string
          required: true
        - name: updateMask.fieldPaths
          in: query
          type: array
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletedocument
        method: DELETE
        description: Google Cloud Firestore Delete a document
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: database
          in: path
          type: string
          required: true
        - name: collectionId
          in: path
          type: string
          required: true
        - name: documentId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-project-databases-database-documents-ru
      path: /projects/{project}/databases/{database}/documents:runQuery
      operations:
      - name: runquery
        method: POST
        description: Google Cloud Firestore Run a query
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: database
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: google-cloud-firestore-rest
    description: REST adapter for Google Cloud Firestore API.
    resources:
    - path: /projects/{project}/databases
      name: listdatabases
      operations:
      - method: GET
        name: listdatabases
        description: Google Cloud Firestore List databases
        call: google-cloud-firestore.listdatabases
        with:
          project: rest.project
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project}/databases
      name: createdatabase
      operations:
      - method: POST
        name: createdatabase
        description: Google Cloud Firestore Create a database
        call: google-cloud-firestore.createdatabase
        with:
          project: rest.project
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project}/databases/{database}
      name: getdatabase
      operations:
      - method: GET
        name: getdatabase
        description: Google Cloud Firestore Get a database
        call: google-cloud-firestore.getdatabase
        with:
          project: rest.project
          database: rest.database
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project}/databases/{database}
      name: deletedatabase
      operations:
      - method: DELETE
        name: deletedatabase
        description: Google Cloud Firestore Delete a database
        call: google-cloud-firestore.deletedatabase
        with:
          project: rest.project
          database: rest.database
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project}/databases/{database}/documents/{collectionId}
      name: listdocuments
      operations:
      - method: GET
        name: listdocuments
        description: Google Cloud Firestore List documents
        call: google-cloud-firestore.listdocuments
        with:
          project: rest.project
          database: rest.database
          collectionId: rest.collectionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project}/databases/{database}/documents/{collectionId}
      name: createdocument
      operations:
      - method: POST
        name: createdocument
        description: Google Cloud Firestore Create a document
        call: google-cloud-firestore.createdocument
        with:
          project: rest.project
          database: rest.database
          collectionId: rest.collectionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project}/databases/{database}/documents/{collectionId}/{documentId}
      name: getdocument
      operations:
      - method: GET
        name: getdocument
        description: Google Cloud Firestore Get a document
        call: google-cloud-firestore.getdocument
        with:
          project: rest.project
          database: rest.database
          collectionId: rest.collectionId
          documentId: rest.documentId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project}/databases/{database}/documents/{collectionId}/{documentId}
      name: updatedocument
      operations:
      - method: PATCH
        name: updatedocument
        description: Google Cloud Firestore Update a document
        call: google-cloud-firestore.updatedocument
        with:
          project: rest.project
          database: rest.database
          collectionId: rest.collectionId
          documentId: rest.documentId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project}/databases/{database}/documents/{collectionId}/{documentId}
      name: deletedocument
      operations:
      - method: DELETE
        name: deletedocument
        description: Google Cloud Firestore Delete a document
        call: google-cloud-firestore.deletedocument
        with:
          project: rest.project
          database: rest.database
          collectionId: rest.collectionId
          documentId: rest.documentId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{project}/databases/{database}/documents:runQuery
      name: runquery
      operations:
      - method: POST
        name: runquery
        description: Google Cloud Firestore Run a query
        call: google-cloud-firestore.runquery
        with:
          project: rest.project
          database: rest.database
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: google-cloud-firestore-mcp
    transport: http
    description: MCP adapter for Google Cloud Firestore API for AI agent use.
    tools:
    - name: listdatabases
      description: Google Cloud Firestore List databases
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-cloud-firestore.listdatabases
      with:
        project: tools.project
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: createdatabase
      description: Google Cloud Firestore Create a database
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-cloud-firestore.createdatabase
      with:
        project: tools.project
        databaseId: tools.databaseId
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: databaseId
        type: string
        description: databaseId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getdatabase
      description: Google Cloud Firestore Get a database
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-cloud-firestore.getdatabase
      with:
        project: tools.project
        database: tools.database
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: database
        type: string
        description: database
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletedatabase
      description: Google Cloud Firestore Delete a database
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-cloud-firestore.deletedatabase
      with:
        project: tools.project
        database: tools.database
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: database
        type: string
        description: database
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listdocuments
      description: Google Cloud Firestore List documents
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-cloud-firestore.listdocuments
      with:
        project: tools.project
        database: tools.database
        collectionId: tools.collectionId
        pageSize: tools.pageSize
        pageToken: tools.pageToken
        orderBy: tools.orderBy
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: database
        type: string
        description: database
        required: true
      - name: collectionId
        type: string
        description: collectionId
        required: true
      - name: pageSize
        type: integer
        description: pageSize
      - name: pageToken
        type: string
        description: pageToken
      - name: orderBy
        type: string
        description: orderBy
      outputParameters:
      - type: object
        mapping: $.
    - name: createdocument
      description: Google Cloud Firestore Create a document
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-cloud-firestore.createdocument
      with:
        project: tools.project
        database: tools.database
        collectionId: tools.collectionId
        documentId: tools.documentId
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: database
        type: string
        description: database
        required: true
      - name: collectionId
        type: string
        description: collectionId
        required: true
      - name: documentId
        type: string
        description: Optional client-assigned document ID.
      outputParameters:
      - type: object
        mapping: $.
    - name: getdocument
      description: Google Cloud Firestore Get a document
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-cloud-firestore.getdocument
      with:
        project: tools.project
        database: tools.database
        collectionId: tools.collectionId
        documentId: tools.documentId
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: database
        type: string
        description: database
        required: true
      - name: collectionId
        type: string
        description: collectionId
        required: true
      - name: documentId
        type: string
        description: documentId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updatedocument
      description: Google Cloud Firestore Update a document
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-cloud-firestore.updatedocument
      with:
        project: tools.project
        database: tools.database
        collectionId: tools.collectionId
        documentId: tools.documentId
        updateMask.fieldPaths: tools.updateMask.fieldPaths
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: database
        type: string
        description: database
        required: true
      - name: collectionId
        type: string
        description: collectionId
        required: true
      - name: documentId
        type: string
        description: documentId
        required: true
      - name: updateMask.fieldPaths
        type: array
        description: updateMask.fieldPaths
      outputParameters:
      - type: object
        mapping: $.
    - name: deletedocument
      description: Google Cloud Firestore Delete a document
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-cloud-firestore.deletedocument
      with:
        project: tools.project
        database: tools.database
        collectionId: tools.collectionId
        documentId: tools.documentId
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: database
        type: string
        description: database
        required: true
      - name: collectionId
        type: string
        description: collectionId
        required: true
      - name: documentId
        type: string
        description: documentId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: runquery
      description: Google Cloud Firestore Run a query
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-cloud-firestore.runquery
      with:
        project: tools.project
        database: tools.database
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: database
        type: string
        description: database
        required: true
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    GOOGLE_CLOUD_FIRESTORE_TOKEN: GOOGLE_CLOUD_FIRESTORE_TOKEN