johnreitano/daisy
If you are the rightful owner of daisy and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
An MCP (Model Context Protocol) server for Google Cloud Datastore that provides simple query capabilities.
datastore_list_kinds
Lists all available entity kinds in the Datastore.
datastore_get
Gets an entity by its key.
datastore_query
Queries entities with optional pagination.
datastore_filter
Filters entities by field equality.
datastore_count
Counts entities in a kind with optional filtering.
MCP Datastore Server
An MCP (Model Context Protocol) server for Google Cloud Datastore that provides simple query capabilities.
Features
- List Kinds: Get all available entity kinds (tables) in your Datastore
- Get Entity: Retrieve a specific entity by key
- Query Entities: Basic querying with pagination
- Filter Entities: Simple equality filtering on any field (including key fields)
- Count Entities: Count entities in a kind with optional filtering
Setup
- Install dependencies:
npm install
-
Set up authentication:
- Set
GOOGLE_CLOUD_PROJECT
environment variable - Set
GOOGLE_APPLICATION_CREDENTIALS
to point to your service account key file - Or use Application Default Credentials (ADC)
- Set
-
Build the project:
npm run build
- Run the server:
npm start
Available Tools
datastore_list_kinds
Lists all available entity kinds in the Datastore.
datastore_get
Gets an entity by its key.
kind
: Entity kindkey
: Entity key (name or ID)parent
: Parent key (optional)
datastore_query
Queries entities with optional pagination.
kind
: Entity kind to querylimit
: Maximum results (default: 100)offset
: Results to skip (default: 0)
datastore_filter
Filters entities by field equality.
kind
: Entity kind to queryfield
: Field name to filter on (including__key__
orkey
)value
: Value to match exactlylimit
: Maximum results (default: 100)
datastore_count
Counts entities in a kind with optional filtering.
kind
: Entity kind to countfield
: Field name to filter on (optional)value
: Value to match exactly (required if field is provided)
Examples
// List kinds
{"name": "datastore_list_kinds", "arguments": {}}
// Get entity
{"name": "datastore_get", "arguments": {"kind": "User", "key": "12345"}}
// Query with pagination
{"name": "datastore_query", "arguments": {"kind": "User", "limit": 10}}
// Filter by field
{"name": "datastore_filter", "arguments": {"kind": "User", "field": "status", "value": "active"}}
// Filter by key
{"name": "datastore_filter", "arguments": {"kind": "User", "field": "__key__", "value": "12345"}}
// Count all entities
{"name": "datastore_count", "arguments": {"kind": "User"}}
// Count with filter
{"name": "datastore_count", "arguments": {"kind": "User", "field": "status", "value": "active"}}