Skip to main content
Server path: /datastore-unstructured | Type: Embedded | PCID required: No

Tools

ToolDescription
datastore-unstructured_batch_create_itemsCreate multiple items at once (max 500). More efficient than calling create_item repeatedly. Each item can have any content type. Returns { created, failed } with counts.
datastore-unstructured_create_collectionCreate a new unstructured datastore collection (flexible key-value storage with no schema). Content can be any type. Returns { id, isStructured: false } - use the “id” field as collectionId for subsequent operations. For structured datastores with schemas, use the datastore-structured server.
datastore-unstructured_delete_collectionDelete an unstructured datastore collection and all its data. Returns { message } on success. WARNING: This is a destructive operation that cannot be undone.
datastore-unstructured_create_itemCreate a new item in an unstructured datastore (or update if key exists). Content can be ANY type - string, number, object, array. No schema validation. Returns { id, key } - use “id” as itemId for get/update/delete operations.
datastore-unstructured_delete_itemDelete an item by itemId (recommended) or by key. Returns { message } on success. Using key without sortField deletes ALL items with that key. Prefer itemId for precision.
datastore-unstructured_get_collectionGet collection details for an unstructured datastore. Returns { id, name, description, type, isStructured: false }. Use this to verify a collection is unstructured before performing operations.
datastore-unstructured_get_itemGet a single item by its itemId. Returns { id, key, content, metadata, createdAt, updatedAt }. Use when you have the specific item ID from a previous create/list operation.
datastore-unstructured_get_item_by_keyGet item(s) by their key. Returns an array of all items with matching key (may be multiple). Use when you know the item key but not the itemId.
datastore-unstructured_list_collectionsList all available unstructured datastore collections (flexible key-value storage). Returns an array of collections, each with { id, name, type, isStructured: false }. Use the “id” field as collectionId for subsequent operations. For structured datastores with schemas, use the datastore-structured server.
datastore-unstructured_list_itemsList/browse items with pagination and sorting. Returns items with pagination metadata (totalCount, hasNextPage, hasPrevPage). Use format=“full” to include content, or “light” for metadata only. Supports sorting by createdAt, updatedAt, key, or sortField.
datastore-unstructured_searchSearch items by text query with fuzzy/exact/prefix matching. Returns an array of matching items with relevance scores. Use when you need to find items containing specific text but don’t know their key or ID.
datastore-unstructured_update_itemUpdate an existing item by itemId. Returns { id, key } on success. Only provided fields are changed - others remain unchanged. Requires itemId from create/list/get operations.
datastore-unstructured_analytics_queryRun analytics on collection data using natural language. Translates questions into BigQuery aggregations (COUNT, SUM, AVG, MIN, MAX), groupings, computed columns, and filtered summaries. Returns dynamic columns and rows — not full datastore items. Use this for questions like “how many items per key prefix?”, “average content length”, “count items by metadata category”, “items created per month”. For filtering/returning full items, use datastore-unstructured_natural_query instead.
datastore-unstructured_natural_queryQuery data using natural language. Two modes:
• “natural-search” — filters and returns matching items (e.g. “find items with key containing test”). • “natural-answer” — generates an AI analysis with calculations (e.g. “how many items have metadata category=work?”). PAGINATION (natural-search only): The first call translates your query into SQL via an LLM. The response includes a translation object and pagination metadata. To fetch the next page, pass the SAME translation back (this skips the LLM) and increment offset by your limit. Example — page through 100 items at a time: Page 1: { query: “recent items”, mode: “natural-search”, limit: 100 } Page 2: { query: “recent items”, mode: “natural-search”, limit: 100, offset: 100, translation: <translation from page 1> } Page 3: { query: “recent items”, mode: “natural-search”, limit: 100, offset: 200, translation: <translation from page 1> } Stop when pagination.hasNextPage is false. RETURN ALL (natural-search only): Set returnAll: true to fetch every matching item in one call (up to 50,000 rows). WARNING: The response payload is limited to ~6 MB (AWS Lambda). Wide rows or large text fields may hit this before 50,000. If you get a payload error, switch to paginated mode with a smaller limit. CHOOSING A LIMIT: You control the page size via limit. Pick a value that balances throughput vs. payload size. Common choices: 100-500 for interactive use, 1000-5000 for batch processing, returnAll for workflows needing the full dataset. |

datastore-unstructured_batch_create_items

Create multiple items at once (max 500). More efficient than calling create_item repeatedly. Each item can have any content type. Returns { created, failed } with counts. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID (not name) to add the items to - e.g. “KCny7nGXpBzWNYpJzC0b”. Use datastore-unstructured_list_collections tool to get collection ID.
itemsanyYesArray of items to create, each with key, content (any type), optional metadata object, and optional sortField
triggerChangesbooleanNotrueWhether to trigger webhooks on change
proxyIdstringNoProxy ID to access a shared datastore collection. Requires X-API-Key header.

datastore-unstructured_create_collection

Create a new unstructured datastore collection (flexible key-value storage with no schema). Content can be any type. Returns { id, isStructured: false } - use the “id” field as collectionId for subsequent operations. For structured datastores with schemas, use the datastore-structured server. Parameters:
ParameterTypeRequiredDefaultDescription
namestringYesDisplay name for the collection
descriptionstringNoOptional description of the collection purpose
createdBystringYesUser ID creating the collection - use the current user ID or a service identifier
createdByNamestringYesDisplay name shown as creator - use the current user name or service name

datastore-unstructured_delete_collection

Delete an unstructured datastore collection and all its data. Returns { message } on success. WARNING: This is a destructive operation that cannot be undone. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID to delete - e.g. “KCny7nGXpBzWNYpJzC0b”. Use datastore-unstructured_list_collections tool to get collection ID.

datastore-unstructured_create_item

Create a new item in an unstructured datastore (or update if key exists). Content can be ANY type - string, number, object, array. No schema validation. Returns { id, key } - use “id” as itemId for get/update/delete operations. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID (not name) to add the item to - e.g. “KCny7nGXpBzWNYpJzC0b”. Use datastore-unstructured_list_collections tool to get collection ID.
keystringYesUnique identifier key for the item within the collection (required)
contentstringYesContent to store (required). Can be any type - string, number, boolean, object, or array. No schema validation.
sortFieldstringNoOptional sort field for organizing items with the same key
metadataobjectNoOptional metadata object for categorization (e.g. {“category”: “work”, “priority”: “high”})
triggerChangesbooleanNotrueWhether to trigger webhooks on change
proxyIdstringNoProxy ID to access a shared datastore collection. Requires X-API-Key header.

datastore-unstructured_delete_item

Delete an item by itemId (recommended) or by key. Returns { message } on success. Using key without sortField deletes ALL items with that key. Prefer itemId for precision. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID (not name) that the item belongs to - e.g. “KCny7nGXpBzWNYpJzC0b”. Use datastore-unstructured_list_collections tool to get collection ID.
itemIdstringNoItem ID to delete (recommended method - use either itemId or key, not both)
keystringNoItem key to delete (alternative method - use either itemId or key, not both). WARNING: Deletes ALL items with this key if sortField not provided.
sortFieldstringNoSort field to delete a specific key+sortField combination (only used with key parameter)
proxyIdstringNoProxy ID to access a shared datastore collection. Requires X-API-Key header.

datastore-unstructured_get_collection

Get collection details for an unstructured datastore. Returns { id, name, description, type, isStructured: false }. Use this to verify a collection is unstructured before performing operations. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID to get details for - e.g. “KCny7nGXpBzWNYpJzC0b”. Use datastore-unstructured_list_collections to find the collection ID.

datastore-unstructured_get_item

Get a single item by its itemId. Returns { id, key, content, metadata, createdAt, updatedAt }. Use when you have the specific item ID from a previous create/list operation. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID (not name) that the item belongs to - e.g. “KCny7nGXpBzWNYpJzC0b”. Use datastore-unstructured_list_collections tool to get collection ID.
itemIdstringYesUnique datastore item ID to retrieve (itemId, not key)
proxyIdstringNoProxy ID to access a shared datastore collection. Requires X-API-Key header.

datastore-unstructured_get_item_by_key

Get item(s) by their key. Returns an array of all items with matching key (may be multiple). Use when you know the item key but not the itemId. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID (not name) that the item belongs to - e.g. “KCny7nGXpBzWNYpJzC0b”
keystringYesUnique key identifier for the item within the collection
sortFieldstringNoOptional sort field to uniquely identify the item when multiple items have the same key
proxyIdstringNoProxy ID to access a shared datastore collection. Requires X-API-Key header.

datastore-unstructured_list_collections

List all available unstructured datastore collections (flexible key-value storage). Returns an array of collections, each with { id, name, type, isStructured: false }. Use the “id” field as collectionId for subsequent operations. For structured datastores with schemas, use the datastore-structured server. Parameters: None

datastore-unstructured_list_items

List/browse items with pagination and sorting. Returns items with pagination metadata (totalCount, hasNextPage, hasPrevPage). Use format=“full” to include content, or “light” for metadata only. Supports sorting by createdAt, updatedAt, key, or sortField. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID (not name) - e.g. “KCny7nGXpBzWNYpJzC0b”. Use datastore-unstructured_list_collections tool to get collection ID.
limitnumberNo50Maximum number of items to return (default: 50, max: 1000)
offsetnumberNoOffset for pagination (default: 0). Use with limit to page through results. Example: limit=50&offset=50 for page 2.
orderedBystringNo"createdAt:desc"Sorting field and direction - format: “<field>:<asc|desc>“
formatstringNo"light"Response format: “light” for metadata only (id, key, createdAt, updatedAt), “full” to include content
proxyIdstringNoProxy ID to access a shared datastore collection. Requires X-API-Key header.

Search items by text query with fuzzy/exact/prefix matching. Returns an array of matching items with relevance scores. Use when you need to find items containing specific text but don’t know their key or ID. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID (not name) to search in - e.g. “KCny7nGXpBzWNYpJzC0b”. Use datastore-unstructured_list_collections tool to get collection ID.
qstringYesSearch query string to find in documents (required). For multi-word queries, words must be adjacent in the source text (phrase-based search). Example: “quick brown” matches “The quick brown fox” but “quick fox” won’t match if words are separated.
fieldstringNo"all"Field to search: “all” for comprehensive search, “content” for main item content, “key” for primary identifier, “sortField” for secondary identifier.
typestringNo"fuzzy"Search type: “fuzzy” (default - handles typos), “exact” (precise matches), “prefix” (starts with)
thresholdnumberNo0.3Fuzzy matching sensitivity from 0.0 (strict) to 1.0 (lenient), default: 0.3
limitnumberNo50Maximum number of results to return (default: 50, max: 1000)
compiledbooleanNofalseOutput format: false (default - JSON with snippets & scores), true (plain text with full content, RAG-like)
queryParamsobjectNo{}Pre-filter by document fields using “content.” or “metadata.” keys (e.g. {“metadata.category”: “work”})
proxyIdstringNoProxy ID to access a shared datastore collection. Requires X-API-Key header.

datastore-unstructured_update_item

Update an existing item by itemId. Returns { id, key } on success. Only provided fields are changed - others remain unchanged. Requires itemId from create/list/get operations. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID (not name) that the item belongs to - e.g. “KCny7nGXpBzWNYpJzC0b”. Use datastore-unstructured_list_collections tool to get collection ID.
itemIdstringYesItem ID to update (itemId not the key). Can be obtained when creating the item or by listing/getting/searching items. Required for updates.
contentstringYesUpdated content - can be any type. Only provided fields are updated; others remain unchanged.
metadataobjectNoOptional updated metadata object with key-value pairs. Only provided metadata fields are updated; original key and sortField are preserved.
triggerChangesbooleanNotrueWhether to trigger webhooks on change
proxyIdstringNoProxy ID to access a shared datastore collection. Requires X-API-Key header.

datastore-unstructured_analytics_query

Run analytics on collection data using natural language. Translates questions into BigQuery aggregations (COUNT, SUM, AVG, MIN, MAX), groupings, computed columns, and filtered summaries. Returns dynamic columns and rows — not full datastore items. Use this for questions like “how many items per key prefix?”, “average content length”, “count items by metadata category”, “items created per month”. For filtering/returning full items, use datastore-unstructured_natural_query instead. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID of an unstructured datastore - e.g. “KCny7nGXpBzWNYpJzC0b”
querystringYesNatural language analytics question - e.g. “how many items per key prefix?”, “average content length”, “count by metadata category”, “items created per day this week”
limitnumberNo10000Maximum number of result rows to return (default 10000, max 50000). For aggregations this is usually small.
proxyIdstringNoProxy ID to access a shared datastore collection. Requires X-API-Key header.

datastore-unstructured_natural_query

Query data using natural language. Two modes: • “natural-search” — filters and returns matching items (e.g. “find items with key containing test”). • “natural-answer” — generates an AI analysis with calculations (e.g. “how many items have metadata category=work?”). PAGINATION (natural-search only): The first call translates your query into SQL via an LLM. The response includes a translation object and pagination metadata. To fetch the next page, pass the SAME translation back (this skips the LLM) and increment offset by your limit. Example — page through 100 items at a time: Page 1: { query: “recent items”, mode: “natural-search”, limit: 100 } Page 2: { query: “recent items”, mode: “natural-search”, limit: 100, offset: 100, translation: <translation from page 1> } Page 3: { query: “recent items”, mode: “natural-search”, limit: 100, offset: 200, translation: <translation from page 1> } Stop when pagination.hasNextPage is false. RETURN ALL (natural-search only): Set returnAll: true to fetch every matching item in one call (up to 50,000 rows). WARNING: The response payload is limited to ~6 MB (AWS Lambda). Wide rows or large text fields may hit this before 50,000. If you get a payload error, switch to paginated mode with a smaller limit. CHOOSING A LIMIT: You control the page size via limit. Pick a value that balances throughput vs. payload size. Common choices: 100-500 for interactive use, 1000-5000 for batch processing, returnAll for workflows needing the full dataset. Parameters:
ParameterTypeRequiredDefaultDescription
collectionIdstringYesCollection ID of a datastore - e.g. “KCny7nGXpBzWNYpJzC0b”
querystringYesNatural language query or question (e.g. “find recent items”, “how many items have metadata category=work?”)
modestringNo"natural-search"”natural-search” returns filtered items, “natural-answer” generates AI analysis with calculations
limitnumberNoPage size — number of items to return per request (default: 1000, max: 50000). Only applies to natural-search mode. Choose based on your use case: 100-500 for interactive browsing, 1000-5000 for batch processing. The response payload is capped at ~6 MB, so very wide rows may require a smaller limit.
offsetnumberNoNumber of items to skip (default: 0). Only applies to natural-search mode. To page through results: set offset = 0 for page 1, offset = limit for page 2, offset = limit * 2 for page 3, etc. Always pass the translation from the first response when using offset > 0 to avoid redundant LLM calls.
returnAllbooleanNoWhen true, fetches ALL matching items in a single call (up to 50,000 rows). Only applies to natural-search mode. Use in workflows when you need the complete result set. WARNING: Response payload is limited to ~6 MB. If rows are wide (many columns, large text), you may hit the payload limit before 50,000 rows. In that case, use paginated mode instead.
translationanyNoCached SQL translation from a previous response. IMPORTANT: When provided, the LLM call is skipped entirely and the query goes straight to BigQuery — this is faster and cheaper. Always pass this on page 2+ to avoid re-translating the same query. Copy the entire translation object from the first page response and send it unchanged.
proxyIdstringNoProxy ID to access a shared datastore collection. Requires X-API-Key header.