Skip to main content
Glama
petekmet

MCP Datastore Server

by petekmet

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

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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