Skip to main content
Glama

MCP Datastore Server

A Model Context Protocol (MCP) server that provides access to Google Firestore in Datastore mode.

Features

This MCP server exposes the following tools for interacting with Google Cloud Datastore:

Entity Operations

  • datastore_get: Get an entity by kind and key

  • datastore_insert: Insert a new entity

  • datastore_update: Update an existing entity

  • datastore_upsert: Insert or update an entity

  • datastore_delete: Delete an entity by kind and key

Query Operations

  • datastore_query: Query entities with filters and ordering

  • datastore_runAggregationQuery: Run aggregation queries (count, sum, avg)

  • datastore_listKinds: List all entity kinds (types) in the Datastore

Key Operations

  • datastore_allocateIds: Allocate IDs for incomplete keys

  • datastore_createKey: Create a complete or incomplete key

Transaction Operations

  • datastore_runInTransaction: Execute multiple operations in a transaction

Setup

Prerequisites

  1. A Google Cloud project with Datastore API enabled

  2. Service account credentials with appropriate Datastore permissions

Installation

npm install npm run build

Configuration

Set the following environment variables:

# Path to your service account JSON key file export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json # Your Google Cloud project ID export GOOGLE_CLOUD_PROJECT=your-project-id

Or you can provide them when running the server:

GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json GOOGLE_CLOUD_PROJECT=your-project-id npm start

Usage

Running the Server

npm start

Using with Claude Desktop

Add this to your Claude Desktop configuration file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{ "mcpServers": { "datastore": { "command": "node", "args": [ "d:\\projects\\mcp-datastore\\build\\index.js" ], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "C:\\path\\to\\service-account-key.json", "GOOGLE_CLOUD_PROJECT": "your-project-id" } } } }

Tool Examples

Get an Entity

{ "kind": "User", "keyId": "12345" }

Insert an Entity

{ "kind": "User", "data": { "name": "John Doe", "email": "john@example.com", "age": 30 } }

Query Entities

{ "kind": "User", "filters": [ { "property": "age", "operator": ">", "value": 25 } ], "orderBy": [ { "property": "name", "descending": false } ], "limit": 10 }

Run Aggregation Query

{ "kind": "Order", "aggregations": [ { "type": "count", "alias": "total_orders" }, { "type": "sum", "property": "amount", "alias": "total_amount" } ] }

List Entity Kinds

{ "namespace": "optional-namespace" // Optional: specify namespace to list kinds from }

This returns all entity kinds (types) in your Datastore, including both user-defined kinds and system metadata kinds (prefixed with __Stat_).

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/petekmet/mcp-gcp-datastore'

If you have feedback or need assistance with the MCP directory API, please join our Discord server