Tool: search_entries
Searches for data assets matching the given query and scope in the Knowledge Catalog (formerly known as Dataplex).
Use this method to discover data assets (such as BigQuery tables, datasets, Cloud Storage buckets) across your Google Cloud organization or projects.
Best Practices for Agents: - Always make queries as specific as possible to reduce latency and token usage. Instead of searching broadly, combine filters like system, type, and name. Example: system:bigquery AND type:table AND name:customers - Use page_size to limit the volume of returned results, especially during exploratory phases. - This method returns basic entry information. To retrieve rich, LLM-ready metadata (including schemas, quality scores, and usage patterns), parse the dataplex_entry.name from the results and pass them to LookupContext. Alternatively, you can use LookupEntry to get detailed metadata about the entry.
The following sample demonstrate how to use curl to invoke the search_entries MCP tool.
| Curl Request |
|---|
curl --location 'https://dataplex.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "search_entries", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for Knowledge Catalog (formerly known as Dataplex) SearchEntries method.
SearchEntriesRequest
| JSON representation |
|---|
{ "projectId": string, "query": string, "pageSize": integer, "orderBy": enum ( |
| Fields | |
|---|---|
projectId |
Required. The project to which the request should be attributed. To execute the search, the caller must have the |
query |
Required. A query string for searching entries, following Knowledge Catalog search syntax. Supports logical operators (AND, OR, NOT) and grouping. Syntax Guide: - Filter by System: Examples: - Find a specific BigQuery table: Warning: Performing broad searches without specific filters (e.g., type:table) can be slow and consume significant resources. When performing exploratory searches, always use the page_size parameter to limit the number of results returned. |
pageSize |
Optional. Number of results in the search page. If <=0, then defaults to 10. Max limit for page_size is 1000. Throws an invalid argument for page_size > 1000. |
orderBy |
Optional. Specifies the ordering of results. |
scopeType |
Optional. Type of the scope to limit the search space. |
scopeId |
Optional. The ID of the scope to limit the search space (e.g. organization ID, or project ID/number depending on the scope_type). |
pageToken |
Optional. Page token received from a previous |
OrderBy
Specifies the ordering of results.
| Enums | |
|---|---|
ORDER_BY_UNSPECIFIED |
Default unspecified value. |
RELEVANCE |
Order by relevance. |
LAST_MODIFIED_TIMESTAMP |
Order by last modified timestamp. |
LAST_MODIFIED_TIMESTAMP_ASC |
Order by last modified timestamp in ascending order. |
LAST_MODIFIED_TIMESTAMP_DESC |
Order by last modified timestamp in descending order. |
ScopeType
Type of scope to limit the search space.
| Enums | |
|---|---|
SCOPE_TYPE_UNSPECIFIED |
Default unspecified value. |
ORGANIZATION |
Limit the search to an organization. |
PROJECT |
Limit the search to a project. |
Output Schema
Response message for Knowledge Catalog (formerly known as Dataplex) SearchEntries method.
SearchEntriesResponse
| JSON representation |
|---|
{
"results": [
{
object ( |
| Fields | |
|---|---|
results[] |
The list of entries that match the search query. |
nextPageToken |
Optional. Token to retrieve the next page of results, or empty if there are no more results in the list. |
SearchEntriesResult
| JSON representation |
|---|
{
"dataplexEntry": {
object ( |
| Fields | |
|---|---|
dataplexEntry |
The entry that matches the search query. |
Entry
| JSON representation |
|---|
{ "name": string, "entryType": string, "createTime": string, "updateTime": string, "aspects": { string: { object ( |
| Fields | |
|---|---|
name |
Identifier. The relative resource name of the entry, in the format |
entryType |
Required. Immutable. The relative resource name of the entry type that was used to create this entry, in the format |
createTime |
Output only. The time when the entry was created in Dataplex Universal Catalog. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. The time when the entry was last updated in Dataplex Universal Catalog. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
aspects |
Optional. The aspects that are attached to the entry. Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following:
An object containing a list of |
parentEntry |
Optional. Immutable. The resource name of the parent entry, in the format |
fullyQualifiedName |
Optional. A name for the entry that can be referenced by an external system. For more information, see Fully qualified names. The maximum size of the field is 4000 characters. |
entrySource |
Optional. Information related to the source system of the data resource that is represented by the entry. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
AspectsEntry
| JSON representation |
|---|
{
"key": string,
"value": {
object ( |
| Fields | |
|---|---|
key |
|
value |
|
Aspect
| JSON representation |
|---|
{
"aspectType": string,
"path": string,
"createTime": string,
"updateTime": string,
"data": {
object
},
"aspectSource": {
object ( |
| Fields | |
|---|---|
aspectType |
Output only. The resource name of the type used to create this Aspect. |
path |
Output only. The path in the entry under which the aspect is attached. |
createTime |
Output only. The time when the Aspect was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. The time when the Aspect was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
data |
Required. The content of the aspect, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8). |
aspectSource |
Optional. Information related to the source system of the aspect. |
Struct
| JSON representation |
|---|
{ "fields": { string: value, ... } } |
| Fields | |
|---|---|
fields |
Unordered map of dynamically typed values. An object containing a list of |
FieldsEntry
| JSON representation |
|---|
{ "key": string, "value": value } |
| Fields | |
|---|---|
key |
|
value |
|
Value
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field kind. The kind of value. kind can be only one of the following: |
|
nullValue |
Represents a JSON |
numberValue |
Represents a JSON number. Must not be |
stringValue |
Represents a JSON string. |
boolValue |
Represents a JSON boolean ( |
structValue |
Represents a JSON object. |
listValue |
Represents a JSON array. |
ListValue
| JSON representation |
|---|
{ "values": [ value ] } |
| Fields | |
|---|---|
values[] |
Repeated field of dynamically typed values. |
AspectSource
| JSON representation |
|---|
{ "createTime": string, "updateTime": string, "dataVersion": string } |
| Fields | |
|---|---|
createTime |
The time the aspect was created in the source system. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
The time the aspect was last updated in the source system. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
dataVersion |
The version of the data format used to produce this data. This field is used to indicated when the underlying data format changes (e.g., schema modifications, changes to the source URL format definition, etc). |
EntrySource
| JSON representation |
|---|
{
"resource": string,
"system": string,
"platform": string,
"displayName": string,
"description": string,
"labels": {
string: string,
...
},
"ancestors": [
{
object ( |
| Fields | |
|---|---|
resource |
The name of the resource in the source system. Maximum length is 4,000 characters. |
system |
The name of the source system. Maximum length is 64 characters. |
platform |
The platform containing the source system. Maximum length is 64 characters. |
displayName |
A user-friendly display name. Maximum length is 500 characters. |
description |
A description of the data resource. Maximum length is 2,000 characters. |
labels |
User-defined labels. The maximum size of keys and values is 128 characters each. An object containing a list of |
ancestors[] |
Immutable. The entries representing the ancestors of the data resource in the source system. |
createTime |
The time when the resource was created in the source system. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
The time when the resource was last updated in the source system. If the entry exists in the system and its Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
location |
Output only. Location of the resource in the source system. You can search the entry by this location. By default, this should match the location of the entry group containing this entry. A different value allows capturing the source location for data external to Google Cloud. |
LabelsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
Ancestor
| JSON representation |
|---|
{ "name": string, "type": string } |
| Fields | |
|---|---|
name |
Optional. The name of the ancestor resource. |
type |
Optional. The type of the ancestor resource. |
NullValue
Represents a JSON null.
NullValue is a sentinel, using an enum with only one value to represent the null value for the Value type union.
A field of type NullValue with any value other than 0 is considered invalid. Most ProtoJSON serializers will emit a Value with a null_value set as a JSON null regardless of the integer value, and so will round trip to a 0 value.
| Enums | |
|---|---|
NULL_VALUE |
Null value. |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌