Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
5b47370
Add ListDataProducts method to Dataplex source
theantagonist9509 Jun 2, 2026
56df565
Add dataplex-list-data-products tool
theantagonist9509 Jun 2, 2026
8a316a3
Add documentation for dataplex-list-data-products tool
theantagonist9509 Jun 3, 2026
9dcf8f7
Merge branch 'googleapis:main' into main
theantagonist9509 Jun 3, 2026
b12df0a
Fix potential resource leak in integration test for Dataplex
theantagonist9509 Jun 3, 2026
d0a9e67
Add defensive parameter checks to Dataplex source method ListDataProd…
theantagonist9509 Jun 3, 2026
dfda14a
Add prebuilt tool for dataplex-list-data-products
theantagonist9509 Jun 8, 2026
d386226
Add dataplex-get-data-product tool
theantagonist9509 Jun 8, 2026
aa84d25
Make dataplex-list-data-products tool return only necessary fields
theantagonist9509 Jun 8, 2026
da96441
Merge main into feat/dataplex-get-data-product to sync dataplex-list-…
theantagonist9509 Jun 8, 2026
3c997de
Add dataplex-list-data-assets tool
theantagonist9509 Jun 9, 2026
52e0b4e
Add dataplex-get-data-asset tool
theantagonist9509 Jun 9, 2026
fca8a20
Fix existing Dataplex integration test teardown resource leaks and ma…
theantagonist9509 Jun 16, 2026
2577247
Merge branch 'main' into feat/dataplex-get-data-product
theantagonist9509 Jun 16, 2026
178b098
Merge branch 'feat/dataplex-get-data-product' into feat/dataplex-list…
theantagonist9509 Jun 16, 2026
832e1e3
Merge branch 'feat/dataplex-list-data-assets' into feat/dataplex-get-…
theantagonist9509 Jun 16, 2026
988b62d
Reduce sleep time for aspect type propagation in Dataplex integration…
theantagonist9509 Jun 16, 2026
8d10d68
Merge branch 'feat/dataplex-get-data-product' into feat/dataplex-list…
theantagonist9509 Jun 16, 2026
d780946
Merge branch 'feat/dataplex-list-data-assets' into feat/dataplex-get-…
theantagonist9509 Jun 16, 2026
4336b2f
Reduce sleep time for aspect type propagation in Dataplex integration…
theantagonist9509 Jun 17, 2026
35cb5fc
Update dataplex-list-data-products tool output format
theantagonist9509 Jun 17, 2026
d3c482a
Merge branch 'main' into feat/dataplex-get-data-product
theantagonist9509 Jun 17, 2026
18fe088
Update dataplex-get-data-product tool API
theantagonist9509 Jun 17, 2026
badac0b
Merge branch 'feat/dataplex-get-data-product' into feat/dataplex-list…
theantagonist9509 Jun 17, 2026
2227d05
Update dataplex-list-data-assets tool API
theantagonist9509 Jun 17, 2026
5e50c0a
Merge branch 'feat/dataplex-list-data-assets' into feat/dataplex-get-…
theantagonist9509 Jun 17, 2026
9fb3726
Update dataplex-get-data-asset tool API
theantagonist9509 Jun 17, 2026
f655e6d
Merge upstream into PR
theantagonist9509 Jun 17, 2026
59658a7
Update Dataplex data-products toolset
theantagonist9509 Jun 18, 2026
469590f
Reference Data Products usage guide in dataplex-list-data-products to…
theantagonist9509 Jun 18, 2026
c4b1d5e
Fix failing prebuilt configs test
theantagonist9509 Jun 18, 2026
c2f10b3
Update dataplex-list-data-products tool doc formatting
theantagonist9509 Jun 18, 2026
21db8d4
Merge upstream into PR
theantagonist9509 Jun 19, 2026
8a43669
Merge branch 'main' into feat/dataplex-get-data-product
theantagonist9509 Jun 20, 2026
3d734c9
Merge branch 'feat/dataplex-get-data-product' into feat/dataplex-list…
theantagonist9509 Jun 20, 2026
3e7d9a8
Merge branch 'feat/dataplex-list-data-assets' into feat/dataplex-get-…
theantagonist9509 Jun 20, 2026
1986679
Apply suggestions from code review
theantagonist9509 Jun 23, 2026
5e3a58f
Merge branch 'feat/dataplex-get-data-product' into feat/dataplex-list…
theantagonist9509 Jun 23, 2026
7cab2ba
Revert accidental removal of error check
theantagonist9509 Jun 23, 2026
73f81fb
Fix typo in tool parameter annotation
theantagonist9509 Jun 23, 2026
90f7b73
Merge branch 'feat/dataplex-list-data-assets' into feat/dataplex-get-…
theantagonist9509 Jun 23, 2026
f7c451a
Address PR comments
theantagonist9509 Jun 24, 2026
2502e92
Merge branch 'main' into feat/dataplex-get-data-product
theantagonist9509 Jun 24, 2026
76a5c60
Merge branch 'feat/dataplex-get-data-product' into feat/dataplex-list…
theantagonist9509 Jun 24, 2026
270cb0f
Merge branch 'feat/dataplex-list-data-assets' into feat/dataplex-get-…
theantagonist9509 Jun 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions cmd/internal/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1860,6 +1860,10 @@ func TestPrebuiltTools(t *testing.T) {
Name: "discovery",
ToolNames: []string{"search_entries", "lookup_entry", "search_aspect_types", "lookup_context", "search_dq_scans"},
},
"data-products": tools.ToolsetConfig{
Name: "data-products",
ToolNames: []string{"search_entries", "lookup_entry", "search_aspect_types", "lookup_context", "list_data_products", "get_data_product", "list_data_assets", "get_data_asset"},
},
"enrich": tools.ToolsetConfig{
Name: "enrich",
ToolNames: []string{"search_entries", "lookup_entry", "lookup_context", "generate_data_insights", "get_data_insights", "generate_data_profile", "get_data_profile", "discover_metadata", "get_discovery_results", "check_data_quality", "get_data_quality_results", "get_operation", "get_run_status"},
Expand Down
4 changes: 4 additions & 0 deletions cmd/internal/imports.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,12 +163,16 @@ import (
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexdiscovermetadata"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexgeneratedatainsights"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexgeneratedataprofile"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexgetdataasset"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexgetdatainsights"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexgetdataproduct"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexgetdataprofile"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexgetdataqualityresults"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexgetdiscoveryresults"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexgetoperation"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexgetrunstatus"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexlistdataassets"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexlistdataproducts"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexlookupcontext"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexlookupentry"
_ "github.com/googleapis/mcp-toolbox/internal/tools/dataplex/dataplexsearchaspecttypes"
Expand Down
14 changes: 12 additions & 2 deletions docs/KNOWLEDGE_CATALOG_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ The Knowledge Catalog (formerly known as Dataplex) Model Context Protocol (MCP)
An editor configured to use the Knowledge Catalog MCP server can use its AI capabilities to help you:

- **Search Catalog** - Search for entries in Knowledge Catalog
- **Explore Metadata** - Lookup specific entries and search aspect types
- **Explore Metadata** - Lookup specific entries, search aspect types, and list/retrieve Data Products and Data Assets
- **Data Quality** - Search for data quality scans

## Prerequisites

Expand Down Expand Up @@ -41,17 +42,26 @@ Once configured, the MCP server will automatically provide Knowledge Catalog cap

* "Search for entries related to 'sales' in Knowledge Catalog."
* "Look up details for the entry 'projects/my-project/locations/us-central1/entryGroups/my-group/entries/my-entry'."
* "List all Data Products."
* "Get details of the Data Product 'projects/my-project/locations/us-central1/dataProducts/my-product'."
* "List Data Assets for the Data Product 'projects/my-project/locations/us-central1/dataProducts/my-product'."
* "Get details of the Data Asset 'projects/my-project/locations/us-central1/dataProducts/my-product/dataAssets/my-asset'."

## Server Capabilities

The Knowledge Catalog MCP server provides the following tools:

| Tool Name | Description |
|:----------------------|:-----------------------------------------------------------------------------------------------------------------------------|
| `search_entries` | Search for entries in Knowledge Catalog. |
| `search_entries` | Search for entries in Knowledge Catalog. |
| `lookup_entry` | Retrieve specific subset of metadata (for example, schema, usage, business overview, and contacts) of a specific data asset. |
| `search_aspect_types` | Find aspect types relevant to the query. |
| `lookup_context` | Retrieve rich metadata regarding one or more data assets along with their relationships. |
| `search_dq_scans` | Search for Data Quality scans. |
| `list_data_products` | List Data Products for the current project. |
| `get_data_product` | Retrieve a specific Data Product. |
| `list_data_assets` | List Data Assets under a Data Product. |
| `get_data_asset` | Retrieve specific metadata regarding a Data Asset. |

## Custom MCP Server Configuration

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ aliases:
* `lookup_entry`: Retrieves a specific entry from Knowledge Catalog.
* `search_aspect_types`: Finds aspect types relevant to the query.
* `lookup_context`: Retrieves rich metadata regarding one or more data assets along with their relationships.
* `search_dq_scans`: Search for data quality scans in Dataplex.
* `search_dq_scans`: Searches for data quality scans in Dataplex.
* `list_data_products`: Lists Data Products across all locations.
* `get_data_product`: Retrieves a specific Data Product.
* `list_data_assets`: Lists Data Assets under a Data Product.
* `get_data_asset`: Retrieves specific metadata regarding a Data Asset.
* `generate_data_insights`: Creates a new Dataplex Data Documentation scan template and triggers the run.
* `get_data_insights`: Retrieves the final generated data insights for a completed scan.
* `generate_data_profile`: Creates a new Dataplex Data Profile scan template and triggers the run.
Expand All @@ -33,5 +37,6 @@ aliases:
* `get_run_status`: Retrieves the execution status of the latest background job run.
* **Toolsets:**
* `discovery`: Metadata discovery and search toolset (`search_entries`, `lookup_entry`, `search_aspect_types`, `lookup_context`, `search_dq_scans`).
* `data-products`: Data Products and Data Assets curation and management toolset (`search_entries`, `lookup_entry`, `search_aspect_types`, `lookup_context`, `list_data_products`, `get_data_product`, `list_data_assets`, `get_data_asset`).
* `enrich`: Metadata enrichment pipeline orchestration and execution toolset (`search_entries`, `lookup_entry`, `lookup_context`, `generate_data_insights`, `get_data_insights`, `generate_data_profile`, `get_data_profile`, `discover_metadata`, `get_discovery_results`, `check_data_quality`, `get_data_quality_results`, `get_operation`, `get_run_status`).

33 changes: 31 additions & 2 deletions docs/en/integrations/knowledge-catalog/source.md
Original file line number Diff line number Diff line change
Expand Up @@ -373,5 +373,34 @@ This abbreviated syntax works for the qualified predicates except for `label` in
1. Use this tool to retrieve rich metadata regarding one or more data assets along with their relationships.
2. You must provide the `resources` list with full resource names.
### Response
1. Present the requested metadata and relationship information.
```
1. Present the requested metadata and relationship information.

## Tool: list_data_products
### Request
1. Use this tool to retrieve all Data Products globally across all locations.
2. You can optionally filter by `display_name` (e.g., "`display_name:\"my-product\"`") or other fields using the Dataplex filter syntax.
### Response
1. Unless asked for a specific data product, respond with all entries returned.

## Tool: get_data_product
### Request
1. Use this tool to retrieve detailed metadata for a specific Data Product.
2. You must provide `locationId` and `dataProductId`.
### Response
1. Present the retrieved metadata for the Data Product, including its display name, description, owner emails, asset count, labels, and access groups.

## Tool: list_data_assets
### Request
1. Use this tool to retrieve all Data Assets under a specific Data Product.
2. You must provide `locationId` and `dataProductId`.
3. You can optionally filter the listed assets using `filter` or limit the response using `pageSize`.
### Response
1. Present the retrieved list of Data Assets, including their names, resources, and labels.

## Tool: get_data_asset
### Request
1. Use this tool to retrieve detailed metadata for a specific Data Asset.
2. You must provide `locationId`, `dataProductId`, and `dataAssetId`.
### Response
1. Present the retrieved metadata for the Data Asset, including its name, resource, labels, and access group configurations.
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
title: "dataplex-get-data-asset"
type: docs
weight: 1
description: >
A "dataplex-get-data-asset" tool retrieve specific metadata regarding a Data Asset.
---

## About

A `dataplex-get-data-asset` tool retrieves detailed metadata for a specific Data Asset in Knowledge Catalog (formerly known as Dataplex).

View the [Data Products guide][guide] for more information.

[guide]: https://docs.cloud.google.com/dataplex/docs/data-products-overview

## Compatible Sources

{{< compatible-sources >}}

## Requirements

### IAM Permissions

Knowledge Catalog uses [Identity and Access Management (IAM)][iam-overview] to control
user and group access to Knowledge Catalog resources. Toolbox will use your
[Application Default Credentials (ADC)][adc] to authorize and authenticate when
interacting with [Knowledge Catalog][dataplex-docs].

In addition to [setting the ADC for your server][set-adc], you need to ensure
the IAM identity has been given the correct IAM permissions for the tasks you
intend to perform. See [Knowledge Catalog IAM permissions][iam-permissions]
and [Knowledge Catalog IAM roles][iam-roles] for more information on
applying IAM permissions and roles to an identity.

[iam-overview]: https://cloud.google.com/dataplex/docs/iam-and-access-control
[adc]: https://cloud.google.com/docs/authentication#adc
[set-adc]: https://cloud.google.com/docs/authentication/provide-credentials-adc
[iam-permissions]: https://cloud.google.com/dataplex/docs/iam-permissions
[iam-roles]: https://cloud.google.com/dataplex/docs/iam-roles
[dataplex-docs]: https://cloud.google.com/dataplex

## Parameters

The `dataplex-get-data-asset` tool has the following parameters:

| **field** | **type** | **required** | **description** |
| ------------- | -------- | ------------ | --------------------------------------------------------------- |
| locationId | string | true | The location ID (e.g. `us`, `us-central1`) of the Data Product. |
| dataProductId | string | true | The unique ID of the parent Data Product. |
| dataAssetId | string | true | The unique ID of the Data Asset. |

## Example

```yaml
kind: tool
name: get_data_asset
type: dataplex-get-data-asset
source: my-dataplex-source
description: Use this tool to retrieve a Data Asset.
```

## Reference

| **field** | **type** | **required** | **description** |
| ----------- | -------- | ------------ | -------------------------------------------------- |
| type | string | true | Must be "dataplex-get-data-asset". |
| source | string | true | Name of the source the tool should execute on. |
| description | string | true | Description of the tool that is passed to the LLM. |
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
title: "dataplex-get-data-product"
type: docs
weight: 1
description: >
A "dataplex-get-data-product" tool allows to retrieve a specific Data Product.
---

## About

A `dataplex-get-data-product` tool retrieves detailed metadata for a specific Data Product in Knowledge Catalog (formerly known as Dataplex).

View the [Data Products guide][guide] for more information.

[guide]: https://docs.cloud.google.com/dataplex/docs/data-products-overview

## Compatible Sources

{{< compatible-sources >}}

## Requirements

### IAM Permissions

Knowledge Catalog uses [Identity and Access Management (IAM)][iam-overview] to control
user and group access to Knowledge Catalog resources. Toolbox will use your
[Application Default Credentials (ADC)][adc] to authorize and authenticate when
interacting with [Knowledge Catalog][dataplex-docs].

In addition to [setting the ADC for your server][set-adc], you need to ensure
the IAM identity has been given the correct IAM permissions for the tasks you
intend to perform. See [Knowledge Catalog IAM permissions][iam-permissions]
and [Knowledge Catalog IAM roles][iam-roles] for more information on
applying IAM permissions and roles to an identity.

[iam-overview]: https://cloud.google.com/dataplex/docs/iam-and-access-control
[adc]: https://cloud.google.com/docs/authentication#adc
[set-adc]: https://cloud.google.com/docs/authentication/provide-credentials-adc
[iam-permissions]: https://cloud.google.com/dataplex/docs/iam-permissions
[iam-roles]: https://cloud.google.com/dataplex/docs/iam-roles
[dataplex-docs]: https://cloud.google.com/dataplex

## Parameters

The `dataplex-get-data-product` tool has the following parameters:

| **field** | **type** | **required** | **description** |
| ------------- | -------- | ------------ | --------------------------------------------------------------- |
| locationId | string | true | The location ID (e.g. `us`, `us-central1`) of the Data Product. |
| dataProductId | string | true | The unique ID of the Data Product. |

## Example

```yaml
kind: tool
name: get_data_product
type: dataplex-get-data-product
source: my-dataplex-source
description: Use this tool to retrieve a Data Product.
```

## Reference

| **field** | **type** | **required** | **description** |
| ----------- | -------- | ------------ | -------------------------------------------------- |
| type | string | true | Must be "dataplex-get-data-product". |
| source | string | true | Name of the source the tool should execute on. |
| description | string | true | Description of the tool that is passed to the LLM. |
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
title: "dataplex-list-data-assets"
type: docs
weight: 1
description: >
A "dataplex-list-data-assets" tool allows to list Data Assets under a Data Product.
---

## About

A `dataplex-list-data-assets` tool retrieves a list of Data Assets associated with a specific Data Product in Knowledge Catalog (formerly known as Dataplex).

View the [Data Products guide][guide] for more information.

[guide]: https://docs.cloud.google.com/dataplex/docs/data-products-overview

## Compatible Sources

{{< compatible-sources >}}

## Requirements

### IAM Permissions

Knowledge Catalog uses [Identity and Access Management (IAM)][iam-overview] to control
user and group access to Knowledge Catalog resources. Toolbox will use your
[Application Default Credentials (ADC)][adc] to authorize and authenticate when
interacting with [Knowledge Catalog][dataplex-docs].

In addition to [setting the ADC for your server][set-adc], you need to ensure
the IAM identity has been given the correct IAM permissions for the tasks you
intend to perform. See [Knowledge Catalog IAM permissions][iam-permissions]
and [Knowledge Catalog IAM roles][iam-roles] for more information on
applying IAM permissions and roles to an identity.

[iam-overview]: https://cloud.google.com/dataplex/docs/iam-and-access-control
[adc]: https://cloud.google.com/docs/authentication#adc
[set-adc]: https://cloud.google.com/docs/authentication/provide-credentials-adc
[iam-permissions]: https://cloud.google.com/dataplex/docs/iam-permissions
[iam-roles]: https://cloud.google.com/dataplex/docs/iam-roles
[dataplex-docs]: https://cloud.google.com/dataplex

## Parameters

The `dataplex-list-data-assets` tool has the following parameters:

| **field** | **type** | **required** | **description** |
| ------------- | -------- | ------------ | --------------------------------------------------------------- |
| locationId | string | true | The location ID (e.g. `us`, `us-central1`) of the Data Product. |
| dataProductId | string | true | The unique ID of the parent Data Product. |
| filter | string | false | Filter string to list data assets. |
| pageSize | integer | false | Number of returned data assets in the page. |
| orderBy | string | false | Specifies the ordering of results. |

## Example

```yaml
kind: tool
name: list_data_assets
type: dataplex-list-data-assets
source: my-dataplex-source
description: Use this tool to list Data Assets under a Data Product.
```

## Reference

| **field** | **type** | **required** | **description** |
| ----------- | -------- | ------------ | -------------------------------------------------- |
| type | string | true | Must be "dataplex-list-data-assets". |
| source | string | true | Name of the source the tool should execute on. |
| description | string | true | Description of the tool that is passed to the LLM. |
Loading
Loading