Firestore MCP Server
About
MCP Server to interact with Google Cloud Firestore
Details
- Transport
- SSE
- License
- MIT
Explore
- Create documents in Firestore collections
- Read documents from Firestore collections
- Update existing documents
- Delete documents
- Query documents with filtering, ordering, and limits
- List available collections
1. Install dependencies:
npm install
2. Build the project:
npm run build
3. Configure Claude Desktop:
Add the following to your claude_desktop_config.json:
"firestore-mcp": {
"command": "node",
"args": [
"/path/to/firestore-mcp/build/index.js"
],
"env": {
"GOOGLE_CLOUD_PROJECTS": "project-id"
}
}
Replace the path in args with the actual path to index.js.
Define a comma-separated list of project ids in GOOGLE_CLOUD_PROJECTS.
Example: google-project-id1,google-project-id2
The first listed project is the default.
The application expects to find .json credential file(s) in the keys folder for each project.
Example: keys/google-project-id1.json, keys/google-project-id2.json
Ensure the cloud service account has appropriate permission to interact with Cloud Firestore, e.g. Cloud Datastore Owner or lesser permission(s).
Here are examples of how to use each tool in Claude Desktop:
firestore-list-collections
List Firestore collections
firestore-get-collection
Get documents from a Firestore collection
firestore-get-document
Get a document from Firestore
firestore-create-document
Create a new document in Firestore
firestore-update-document
Update an existing Firestore document
firestore-delete-document
Delete a document from Firestore
firestore-query-collection
Query documents in a Firestore collection
firestore-list-subcollections
List subcollections of a document
firestore-get-collection-by-path
Get documents from a collection using full path (supports subcollections)
firestore-get-document-by-path
Get a document using full path (supports subcollections)
firestore-create-document-by-path
Create a document in a collection using full path (supports subcollections)
firestore-update-document-by-path
Update a document using full path (supports subcollections)
firestore-delete-document-by-path
Delete a document using full path (supports subcollections)
firestore-query-collection-by-path
Query documents in a collection using full path (supports subcollections)
firestore-batch-write
Execute multiple write operations in a single atomic batch
firestore-batch-read
Read multiple documents in a single operation
firestore-transaction
Execute a transaction with read and write operations
firestore-increment-field
Atomically increment a numeric field value
firestore-array-union
Add elements to an array field without duplicates
firestore-array-remove
Remove elements from an array field
firestore-server-timestamp
Set a field to the server timestamp
firestore-delete-field
Delete specific fields from a document
firestore-field-value-batch
Execute multiple field value operations in a batch
- getDocument: Get a document by ID from a collection
- createDocument: Create a new document in a collection
- updateDocument: Update an existing document
- deleteDocument: Delete a document
- queryDocuments: Query documents with filters, ordering, and limits
- listCollections: List all available collections
An MCP (Model Context Protocol) server for interacting with Google Firestore directly. This server provides a clean interface for creating, reading, updating, and deleting Firestore documents through Claude Desktop.
Features
- Create documents in Firestore collections
- Read documents from Firestore collections
- Update existing documents
- Delete documents
- Query documents with filtering, ordering, and limits
- List available collections
Setup
1. Install dependencies:
npm install
2. Build the project:
npm run build
3. Configure Claude Desktop:
Add the following to your claude_desktop_config.json:
"firestore-mcp": {
"command": "node",
"args": [
"/path/to/firestore-mcp/build/index.js"
],
"env": {
"GOOGLE_CLOUD_PROJECTS": "project-id"
}
}
Replace the path in args with the actual path to index.js.
Define a comma-separated list of project ids in GOOGLE_CLOUD_PROJECTS.
Example: google-project-id1,google-project-id2
The first listed project is the default.
The application expects to find .json credential file(s) in the keys folder for each project.
Example: keys/google-project-id1.json, keys/google-project-id2.json
Ensure the cloud service account has appropriate permission to interact with Cloud Firestore, e.g. Cloud Datastore Owner or lesser permission(s).
Available Tools
- getDocument: Get a document by ID from a collection
- createDocument: Create a new document in a collection
- updateDocument: Update an existing document
- deleteDocument: Delete a document
- queryDocuments: Query documents with filters, ordering, and limits
- listCollections: List all available collections
Example Usage in Claude Desktop
Here are examples of how to use each tool in Claude Desktop:
Get a Document
Get the document with ID "user123" from the "users" collection
Create a Document
Create a new document in the "users" collection with the following data:
{
"name": "John Doe",
"email": "[email protected]",
"age": 30
}
Update a Document
Update the document with ID "user123" in the "users" collection to change the age to 31
Delete a Document
Delete the document with ID "user123" from the "users" collection
Query Documents
Find all users over 25 years old, ordered by name
List Collections
List all available Firestore collections
Development
- Watch mode: npm run dev
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



