Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

com.googleapis.firestore/mcp

REMOTE · FIRESTORE.GOOGLEAPIS.COM · SCANNED AUG 3

Interact with your Google Cloud Firestore resources using natural language commands.

+2 this week 60 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security46
Transport & Reachability100
Schema Quality & AI Usability64
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2017 tokens (~134/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · firestore.googleapis.com

# add to Claude Code
claude mcp add --transport http com-googleapis-firestore-mcp https://firestore.googleapis.com/mcp
# ~/.codex/config.toml
[mcp_servers.com-googleapis-firestore-mcp]
url = "https://firestore.googleapis.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-googleapis-firestore-mcp": {
      "type": "remote",
      "url": "https://firestore.googleapis.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-googleapis-firestore-mcp --url https://firestore.googleapis.com/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-googleapis-firestore-mcp:
    url: "https://firestore.googleapis.com/mcp"
// mcp.json
{
  "mcpServers": {
    "com-googleapis-firestore-mcp": {
      "type": "http",
      "url": "https://firestore.googleapis.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 −1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 58

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://firestore.googleapis.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=edgecert.googleapis.com CN=WR2,O=Google Trust Services,C=US 29 Jun 2026 21 Sept 2026 ECDSA 256 SHA256-RSA ba12c5d603744ace10f5aabb9a4d111d
SANs: edgecert.googleapis.com, android.googleapis.com, bigtable.googleapis.com, clouderrorreporting.googleapis.com, cloudtrace.googleapis.com, container.googleapis.com, dataflow.googleapis.com, datastore.googleapis.com, dlp.googleapis.com, firestore.googleapis.com, iamcredentials.googleapis.com, logging.googleapis.com and 5 more
CN=WR2,O=Google Trust Services,C=US (CA) CN=GTS Root R1,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 RSA 2048 SHA256-RSA 7ff005a07c4cded100ad9d66a5107b98
CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 19 Jun 2020 28 Jan 2028 RSA 4096 SHA256-RSA 77bd0d6cdb36f91aea210fc4f058d30d
DNSSEC insecure

Validation of firestore.googleapis.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
googleapis.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
x-content-type-options nosniff
x-frame-options SAMEORIGIN
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://firestore.googleapis.com/mcp Verified 200
http (plaintext) http://firestore.googleapis.com/mcp Inconclusive 405
MCP tools — 15 exposed · ~2,017 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
add_document ~189

Create a document from a Firestore database.

NameTypeReqDescription
collectionIdstringyesRequired. The collection ID, relative to `parent`, to list. For example: `chatrooms`.
documentyesRequired. The document to create. `name` must not be set.
documentIdstringThe client-assigned document ID to use for this document. Optional. If not specified, an ID will be assigned by the service.
maskThe fields to return. If not set, returns all fields. If the document has a field that is not present in this mask, that field will not be returned in the response.
parentstringyesRequired. The parent resource. For example: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`
NameTypeReqDescription
createTimestringOutput only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `…
fieldsobjectThe document's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts.…
namestringThe resource name of the document, for example `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
updateTimestringOutput only. The time at which the document was last changed. This value is initially set to the `create_time` then increases monotonically with each change to the document. It can also be compared t…

No examples provided.

create_database ~159

Create a Firestore database.

NameTypeReqDescription
databaseyesRequired. The Database to create.
databaseIdstringyesRequired. The ID to use for the database, which will become the final component of the database's resource name. This value should be 4-63 characters. Valid characters are /a-z-/ with first character…
parentstringyesRequired. A parent name of the form `projects/{project_id}`
NameTypeReqDescription
donebooleanIf the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
errorThe error result of the operation in case of failure or cancellation.
metadataobjectService-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method…
namestringThe server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{u…
responseobjectThe normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get…

No examples provided.

create_index ~57

Create a composite index.

NameTypeReqDescription
indexyesRequired. The composite index to create.
parentstringyesRequired. A parent name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
NameTypeReqDescription
donebooleanIf the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
errorThe error result of the operation in case of failure or cancellation.
metadataobjectService-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method…
namestringThe server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{u…
responseobjectThe normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get…

No examples provided.

delete_database ~87

Delete a Firestore database.

NameTypeReqDescription
etagstringThe current etag of the Database. If an etag is provided and does not match the current etag of the database, deletion will be blocked and a FAILED_PRECONDITION error will be returned.
namestringyesRequired. A name of the form `projects/{project_id}/databases/{database_id}`
NameTypeReqDescription
donebooleanIf the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
errorThe error result of the operation in case of failure or cancellation.
metadataobjectService-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method…
namestringThe server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{u…
responseobjectThe normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get…

No examples provided.

delete_document ~85

Delete a document from a Firestore database.

NameTypeReqDescription
currentDocumentAn optional precondition on the document. The request will fail if this is set and not met by the target document.
namestringyesRequired. The resource name of the Document to delete. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.

Structured output declared, but exposes no named fields.

No examples provided.

delete_index ~50

Delete a Firestore index.

NameTypeReqDescription
namestringyesRequired. A name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`

Structured output declared, but exposes no named fields.

No examples provided.

get_database ~39

Get a Firestore database.

NameTypeReqDescription
namestringyesRequired. A name of the form `projects/{project_id}/databases/{database_id}`
NameTypeReqDescription
appEngineIntegrationModestringThe App Engine integration mode to use for this database.
cmekConfigOptional. Presence indicates CMEK is enabled for this database.
concurrencyModestringThe default concurrency control mode to use for this database. If unspecified in a CreateDatabase request, this will default based on the database edition: Optimistic for Enterprise and Pessimistic f…
createTimestringOutput only. The timestamp at which this database was created. Databases created before 2016 do not populate create_time.
databaseEditionstringImmutable. The edition of the database.
deleteProtectionStatestringState of delete protection for the database.
deleteTimestringOutput only. The timestamp at which this database was deleted. Only set if the database has been deleted.
earliestVersionTimestringOutput only. The earliest timestamp at which older versions of the data can be read from the database. See [version_retention_period] above; this field is populated with `now - version_retention_peri…
etagstringThis checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
firestoreDataAccessModestringOptional. The Firestore API data access mode to use for this database. If not set on write: - the default value is DATA_ACCESS_MODE_DISABLED for Enterprise Edition. - the default value is DATA_ACCESS…
freeTierbooleanOutput only. Background: Free tier is the ability of a Firestore database to use a small amount of resources every day without being charged. Once usage exceeds the free tier limit further usage is c…
keyPrefixstringOutput only. The key_prefix for this database. This key_prefix is used, in combination with the project ID ("~") to construct the application ID that is returned from the Cloud Datastore APIs in Goog…
locationIdstringRequired. The location of the database. Available locations are listed at https://cloud.google.com/firestore/docs/locations.
mongodbCompatibleDataAccessModestringOptional. The MongoDB compatible API data access mode to use for this database. If not set on write, the default value is DATA_ACCESS_MODE_ENABLED for Enterprise Edition. The value is always DATA_ACC…
namestringThe resource name of the Database. Format: `projects/{project}/databases/{database}`
pointInTimeRecoveryEnablementstringWhether to enable the PITR feature on this database.
previousIdstringOutput only. The database resource's prior database ID. This field is only populated for deleted databases.
realtimeUpdatesModestringImmutable. The default Realtime Updates mode to use for this database.
sourceInfoOutput only. Information about the provenance of this database.
tagsobjectOptional. Input only. Immutable. Tag keys/values directly bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
typestringRequired. The type of the database. See https://cloud.google.com/datastore/docs/firestore-or-datastore for information about how to choose.
uidstringOutput only. The system-generated UUID4 for this Database.
updateTimestringOutput only. The timestamp at which this database was most recently updated. Note this only includes updates to the database resource and not data contained by the database.
versionRetentionPeriodstringOutput only. The period during which past versions of data are retained in the database. Any read or query can specify a `read_time` within this window, and will read the state of the database at tha…

No examples provided.

get_document ~165

Get a document from a Firestore database.

NameTypeReqDescription
maskThe fields to return. If not set, returns all fields. If the document has a field that is not present in this mask, that field will not be returned in the response.
namestringyesRequired. The resource name of the Document to get. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
readTimestringReads the version of the document at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minu…
transactionstringReads the document in a transaction.
NameTypeReqDescription
createTimestringOutput only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `…
fieldsobjectThe document's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts.…
namestringThe resource name of the document, for example `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
updateTimestringOutput only. The time at which the document was last changed. This value is initially set to the `create_time` then increases monotonically with each change to the document. It can also be compared t…

No examples provided.

get_index ~50

Get a Firestore index.

NameTypeReqDescription
namestringyesRequired. A name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
NameTypeReqDescription
apiScopestringThe API scope supported by this index.
densitystringImmutable. The density configuration of the index.
fieldsarrayThe fields supported by this index. For composite indexes, this requires a minimum of 2 and a maximum of 100 fields. The last field entry is always for the field path `__name__`. If, on creation, `__…
multikeybooleanOptional. Whether the index is multikey. By default, the index is not multikey. For non-multikey indexes, none of the paths in the index definition reach or traverse an array, except via an explicit…
namestringOutput only. A server defined name for this index. The form of this name for composite indexes will be: `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{compos…
queryScopestringIndexes with a collection query scope specified allow queries against a collection that is the child of a specific document, specified at query time, and that has the same collection ID. Indexes with…
searchIndexOptionsOptional. Options for search indexes that are at the index definition level. This field is only currently supported for indexes with MONGODB_COMPATIBLE_API ApiScope.
shardCountintegerOptional. The number of shards for the index.
statestringOutput only. The serving state of the index.
uniquebooleanOptional. Whether it is an unique index. Unique index ensures all values for the indexed field(s) are unique across documents.

No examples provided.

list_collections ~183

List all the collection IDs underneath a document.

NameTypeReqDescription
pageSizeintegerThe maximum number of results to return.
pageTokenstringA page token. Must be a value from ListCollectionIdsResponse.
parentstringyesRequired. The parent document. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents/chatrooms/my…
readTimestringReads documents as they were at the given time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute ti…
NameTypeReqDescription
collectionIdsarrayThe collection ids.
nextPageTokenstringA page token that may be used to continue the list.

No examples provided.

list_databases ~49

List Firestore databases.

NameTypeReqDescription
parentstringyesRequired. A parent name of the form `projects/{project_id}`
showDeletedbooleanIf true, also returns deleted resources.
NameTypeReqDescription
databasesarrayThe databases in the project.
unreachablearrayIn the event that data about individual databases cannot be listed they will be recorded here. An example entry might be: projects/some_project/locations/some_location This can happen if the Cloud Re…

No examples provided.

list_documents ~581

List documents from a Firestore database.

NameTypeReqDescription
collectionIdstringOptional. The collection ID, relative to `parent`, to list. For example: `chatrooms` or `messages`. This is optional, and when not provided, Firestore will list documents from all collections under t…
maskOptional. The fields to return. If not set, returns all fields. If a document has a field that is not present in this mask, that field will not be returned in the response.
orderBystringOptional. The optional ordering of the documents to return. For example: `priority desc, __name__ desc`. This mirrors the `ORDER BY` used in Firestore queries but in a string representation. When abs…
pageSizeintegerOptional. The maximum number of documents to return in a single response. Firestore may return fewer than this value.
pageTokenstringOptional. A page token, received from a previous `ListDocuments` response. Provide this to retrieve the subsequent page. When paginating, all other parameters (with the exception of `page_size`) must…
parentstringyesRequired. The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example:…
readTimestringPerform the read at the provided time. This must be a microsecond precision timestamp within the past one hour, or if Point-in-Time Recovery is enabled, can additionally be a whole minute timestamp w…
recursivebooleanOptional. If the list should recursively include all documents nested under the parent at any level. If the request specifies a `collection_id`, then the list will include all nested documents in the…
showMissingbooleanIf the list should show missing documents. A document is missing if it does not exist, but there are sub-documents nested underneath it. When true, such missing documents will be returned with a key…
transactionstringPerform the read as part of an already active transaction.
NameTypeReqDescription
documentsarrayThe Documents found.
nextPageTokenstringA token to retrieve the next page of documents. If this field is omitted, there are no subsequent pages.

No examples provided.

list_indexes ~108

List Firestore indexes.

NameTypeReqDescription
filterstringThe filter to apply to list results.
pageSizeintegerThe number of results to return.
pageTokenstringA page token, returned from a previous call to FirestoreAdmin.ListIndexes, that may be used to get the next page of results.
parentstringyesRequired. A parent name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
NameTypeReqDescription
indexesarrayThe requested indexes.
nextPageTokenstringA page token that may be used to request another page of results. If blank, this is the last page.

No examples provided.

update_database ~40

Update a Firestore database.

NameTypeReqDescription
databaseyesRequired. The database to update.
updateMaskstringThe list of fields to be updated.
NameTypeReqDescription
donebooleanIf the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
errorThe error result of the operation in case of failure or cancellation.
metadataobjectService-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method…
namestringThe server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{u…
responseobjectThe normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get…

No examples provided.

update_document ~175

Update a document from a Firestore database.

NameTypeReqDescription
currentDocumentAn optional precondition on the document. The request will fail if this is set and not met by the target document.
documentyesRequired. The updated document. Creates the document if it does not already exist.
maskThe fields to return. If not set, returns all fields. If the document has a field that is not present in this mask, that field will not be returned in the response.
updateMaskThe fields to update. None of the field paths in the mask may contain a reserved name. If the document exists on the server and has fields not referenced in the mask, they are left unchanged. Fields…
NameTypeReqDescription
createTimestringOutput only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `…
fieldsobjectThe document's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts.…
namestringThe resource name of the document, for example `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
updateTimestringOutput only. The time at which the document was last changed. This value is initially set to the `create_time` then increases monotonically with each change to the document. It can also be compared t…

No examples provided.