com.googleapis.firestore/mcp
Official15 toolsInteract with your Google Cloud Firestore resources using natural language commands.
Manages Google Cloud Firestore NoSQL database resources via natural language.
Captured live from the server via tools/list.
get_document
Get a document from a Firestore database.
Parameters (5)
- maskany
The 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.
- namestringrequired
Required. The resource name of the Document to get. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
- readTimestring
Reads 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 minute timestamp within the past 7 days.
- requestOptionsany
Optional. The request options for this request.
- transactionstring
Reads the document in a transaction.
add_document
Create a document from a Firestore database.
Parameters (6)
- collectionIdstringrequired
Required. The collection ID, relative to `parent`, to list. For example: `chatrooms`.
- documentanyrequired
Required. The document to create. `name` must not be set.
- documentIdstring
The client-assigned document ID to use for this document. Optional. If not specified, an ID will be assigned by the service.
- maskany
The 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.
- parentstringrequired
Required. The parent resource. For example: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`
- requestOptionsany
Optional. The request options for this request.
update_document
Update a document from a Firestore database.
Parameters (5)
- currentDocumentany
An optional precondition on the document. The request will fail if this is set and not met by the target document.
- documentanyrequired
Required. The updated document. Creates the document if it does not already exist.
- maskany
The 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.
- requestOptionsany
Optional. The request options for this request.
- updateMaskany
The 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 referenced in the mask, but not present in the input document, are deleted from the document on the server.
delete_document
Delete a document from a Firestore database.
Parameters (3)
- currentDocumentany
An optional precondition on the document. The request will fail if this is set and not met by the target document.
- namestringrequired
Required. The resource name of the Document to delete. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
- requestOptionsany
Optional. The request options for this request.
list_documents
List documents from a Firestore database.
Parameters (11)
- collectionIdstring
Optional. 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 the provided `parent`.
- maskany
Optional. 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.
- orderBystring
Optional. 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 absent, documents are ordered based on `__name__ ASC`.
- pageSizeinteger
Optional. The maximum number of documents to return in a single response. Firestore may return fewer than this value.
- pageTokenstring
Optional. 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 match the values set in the request that generated the page token.
- parentstringrequired
Required. 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: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
- readTimestring
Perform 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 within the past 7 days.
- recursiveboolean
Optional. 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 collection under the parent. This is optional, and when not provided, Firestore will only list documents nested immediately under the parent. Requests with `recursive` may not specify `show_missing`.
- requestOptionsany
Optional. The request options for this request.
- showMissingboolean
If 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 but will not have fields, `create_time`, or `update_time` set. Requests with `show_missing` may not specify `where` or `order_by`.
- transactionstring
Perform the read as part of an already active transaction.
list_collections
List all the collection IDs underneath a document.
Parameters (5)
- pageSizeinteger
The maximum number of results to return.
- pageTokenstring
A page token. Must be a value from ListCollectionIdsResponse.
- parentstringrequired
Required. 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-chatroom` Use `projects/{project_id}/databases/{database_id}/documents` to list top-level collections.
- readTimestring
Reads 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 timestamp within the past 7 days.
- requestOptionsany
Optional. The request options for this request.
create_database
Create a Firestore database.
Parameters (3)
- databaseanyrequired
Required. The Database to create.
- databaseIdstringrequired
Required. 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 a letter and the last a letter or a number. Must not be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. "(default)" database ID is also valid if the database is Standard edition.
- parentstringrequired
Required. A parent name of the form `projects/{project_id}`
get_database
Get a Firestore database.
Parameters (1)
- namestringrequired
Required. A name of the form `projects/{project_id}/databases/{database_id}`
list_databases
List Firestore databases.
Parameters (2)
- parentstringrequired
Required. A parent name of the form `projects/{project_id}`
- showDeletedboolean
If true, also returns deleted resources.
update_database
Update a Firestore database.
Parameters (2)
- databaseanyrequired
Required. The database to update.
- updateMaskstring
The list of fields to be updated.
delete_database
Delete a Firestore database.
Parameters (2)
- etagstring
The 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.
- namestringrequired
Required. A name of the form `projects/{project_id}/databases/{database_id}`
create_index
Create a composite index.
Parameters (2)
- indexanyrequired
Required. The composite index to create.
- parentstringrequired
Required. A parent name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
get_index
Get a Firestore index.
Parameters (1)
- namestringrequired
Required. A name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
list_indexes
List Firestore indexes.
Parameters (4)
- filterstring
The filter to apply to list results.
- pageSizeinteger
The number of results to return.
- pageTokenstring
A page token, returned from a previous call to FirestoreAdmin.ListIndexes, that may be used to get the next page of results.
- parentstringrequired
Required. A parent name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}`
delete_index
Delete a Firestore index.
Parameters (1)
- namestringrequired
Required. A name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}`
README not available yet.
Install
claude_desktop_config.json
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://firestore.googleapis.com/mcp"
]
}
}
}Desktop config is stdio-only; this bridges via mcp-remote. Native remote: Settings > Connectors.