MCP Datastore Server
Enables interaction with Google Cloud Datastore, providing tools for listing entity kinds, retrieving specific entities by key, querying and filtering entities with pagination, and counting entities with optional filters.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Datastore Serverlist all user entities with status active"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Google Cloud MCP Server
Setup
Install dependencies:
npm installSet up authentication:
Set
GOOGLE_CLOUD_PROJECTenvironment variableSet
GOOGLE_APPLICATION_CREDENTIALSto point to your service account key fileOr use Application Default Credentials (ADC)
Build the project:
npm run buildRun the server:
npm startAvailable 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"}}Available Tools
5 toolsdatastore_countC
Count entities in a kind, optionally with a filter
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | The field name to filter on (optional) | |
| kind | Yes | The entity kind to count | |
| value | No | The value to match exactly (required if field is provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions optional filtering but doesn't disclose behavioral traits such as performance implications, rate limits, authentication needs, or what happens with large datasets. For a read operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Count entities in a kind') and adds necessary detail ('optionally with a filter') without any wasted words. Every part earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a counting tool with filtering, no annotations, and no output schema, the description is incomplete. It doesn't explain the return value (e.g., integer count), error conditions, or how filtering works semantically, leaving the agent with insufficient context to use the tool effectively beyond basic parameter passing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (kind, field, value) with their descriptions and requirements. The description adds minimal value by hinting at the optional filter but doesn't provide additional semantics beyond what the schema specifies, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('count') and resource ('entities in a kind'), making the purpose specific and understandable. It distinguishes from siblings like datastore_filter (which likely returns entities) and datastore_list_kinds (which lists kinds), though it doesn't explicitly name alternatives. The optional filter mention adds useful context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like datastore_query or datastore_filter, nor does it mention prerequisites or exclusions. It implies usage for counting with optional filtering but lacks explicit context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datastore_filterC
Query entities with a simple equality filter on any field
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | The field name to filter on (can be key field or property) | |
| kind | Yes | The entity kind to query | |
| limit | No | Maximum number of results to return (default: 100) | |
| value | Yes | The value to match exactly |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the query behavior ('simple equality filter'), but lacks details on permissions, rate limits, error handling, or what happens with no matches. For a query tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (query operation with 4 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover return values, error cases, or usage context, leaving the agent with insufficient information for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (field, kind, limit, value). The description adds minimal value by implying the parameters are used for filtering, but doesn't provide additional context like examples or constraints beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Query') and resource ('entities'), and specifies the filtering mechanism ('simple equality filter on any field'). It distinguishes from siblings like datastore_count (counting) and datastore_get (retrieving by key), but doesn't explicitly differentiate from datastore_query, which might offer more complex queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like datastore_query or datastore_list_kinds. It mentions the filtering type ('simple equality filter'), but doesn't specify scenarios where this is preferred over more complex queries or when it's insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datastore_getC
Get an entity by its key
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The entity key (name or ID) | |
| kind | Yes | The entity kind | |
| parent | No | Parent key if the entity has a parent (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool gets an entity, implying a read operation, but lacks details on permissions, error handling (e.g., if the key doesn't exist), rate limits, or return format. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 3 parameters, the description is incomplete. It doesn't cover behavioral aspects like error cases or return values, leaving gaps for an agent to use the tool effectively in a datastore context with siblings like datastore_query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (key, kind, parent) with descriptions. The description adds minimal value beyond implying key-based retrieval, aligning with the schema but not providing additional syntax or format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get an entity by its key' clearly states the action (get) and resource (entity), specifying the key as the identifier. It distinguishes from siblings like datastore_count (counting) and datastore_query (querying), but doesn't explicitly differentiate from datastore_filter (which might also retrieve entities).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like datastore_filter or datastore_query. The description implies it's for direct key-based retrieval, but there's no explicit context, exclusions, or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datastore_list_kindsA
List all available entity kinds (tables) in the Datastore
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool lists kinds, but doesn't describe traits like whether it's read-only (implied but not explicit), performance characteristics, error handling, or output format. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It's appropriately sized for a simple tool with no parameters, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate but incomplete. It covers the basic purpose but lacks details on behavioral traits and output format, which are important for an agent to use it correctly. It meets the minimum viable threshold but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description adds no parameter information, which is appropriate here. Baseline is 4 for zero parameters, as no compensation is needed for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List') and resource ('all available entity kinds (tables) in the Datastore'), distinguishing it from siblings like datastore_get (retrieve specific entities) and datastore_query (complex queries). It precisely communicates what the tool does without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for discovering available kinds/tables, but provides no explicit guidance on when to use this versus alternatives like datastore_query (which might list kinds indirectly) or prerequisites. It lacks clear when/when-not statements or named alternatives, leaving usage context inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datastore_queryC
Execute a query on entities with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | The entity kind to query | |
| limit | No | Maximum number of results to return (default: 100) | |
| offset | No | Number of results to skip (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'optional filters' but doesn't explain what types of filters are supported, how queries are executed (e.g., syntax, performance), or what the output looks like (e.g., format, pagination). This leaves significant gaps for a query tool, making it inadequate for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action, making it easy to parse quickly, though it lacks depth due to its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a query tool with no annotations and no output schema, the description is incomplete. It fails to explain key aspects like query syntax, filter options, result format, or error handling, leaving the agent with insufficient context to use the tool effectively. This is a significant gap for a tool with multiple parameters and sibling alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters (kind, limit, offset) with descriptions. The description adds no additional meaning beyond implying filtering capabilities, which doesn't compensate for any gaps. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Execute a query') and target ('on entities'), which clarifies the basic purpose. However, it's vague about what 'query' entails compared to siblings like datastore_filter or datastore_list_kinds, lacking specific differentiation. It doesn't fully distinguish itself from alternatives, keeping it at a minimal viable level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings such as datastore_count, datastore_filter, datastore_get, or datastore_list_kinds. It mentions 'optional filters' but doesn't specify contexts or exclusions, leaving the agent with no usage direction beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
datastore_count - First observed
datastore_filter - First observed
datastore_get - First observed
datastore_list_kinds - First observed
datastore_query
TDQS
Most tools have distinct purposes, but datastore_filter and datastore_query overlap significantly in functionality, which could cause confusion. The other tools (count, get, list_kinds) are clearly differentiated, but the boundary between filtering and querying is ambiguous.
All tool names follow a consistent datastore_verb_noun pattern with snake_case, making them predictable and easy to understand. The naming convention is uniform across all five tools, with no deviations in style or structure.
Five tools is a reasonable number for a datastore server, providing core operations like count, get, list, filter, and query. It's slightly lean but covers essential functions without being overwhelming, though it might benefit from additional CRUD operations for completeness.
The toolset includes read operations (get, filter, query, count, list) but lacks create, update, and delete tools, which are fundamental for a datastore's lifecycle. This gap limits agents to querying and reading data without the ability to modify it, making the surface notably incomplete for full datastore management.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Google Ads MCP server — manage campaigns, keywords, and metrics.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP (Multi-Agent Conversation Protocol) Server providing natural language access to Google's Cloud Datastore services through the v1beta1 API.-
- AlicenseDqualityDmaintenanceAn MCP server that enables querying and interacting with Google Cloud services including Logging, Spanner, Monitoring, and Cloud Trace through natural language.17541MIT
- FlicenseAqualityDmaintenanceAn MCP server that enables interaction with Google Firestore in Datastore mode for entity management and querying. It provides tools for CRUD operations, aggregation queries, and transaction execution within Google Cloud projects.11-
- AlicenseAqualityCmaintenanceA Python MCP server that retrieves and caches BigQuery metadata (datasets, tables, columns) and enables secure SQL query execution with cost control, file export, and keyword search.6MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/johnreitano/daisy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server