mcp-gcp-datastore

petekmet/mcp-gcp-datastore

3.2

If you are the rightful owner of mcp-gcp-datastore and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The MCP Datastore Server is a Model Context Protocol server that provides access to Google Firestore in Datastore mode, enabling seamless interaction with Google Cloud Datastore.

Tools
11
Resources
0
Prompts
0

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