Skip to content

Commit 3393ba3

Browse files
authored
Merge branch 'main' into feat/add-codex-plugin-config
2 parents d80772b + 0d47ec6 commit 3393ba3

File tree

11 files changed

+570
-165
lines changed

11 files changed

+570
-165
lines changed

.github/workflows/package-and-upload-assets.yml

Lines changed: 0 additions & 140 deletions
This file was deleted.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Copyright 2026 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
name: lint
16+
17+
on:
18+
push:
19+
paths-ignore:
20+
- "skills/**"
21+
pull_request:
22+
paths-ignore:
23+
- "skills/**"
24+
pull_request_target:
25+
types: [labeled]
26+
paths-ignore:
27+
- "skills/**"
28+
workflow_dispatch:
29+
30+
jobs:
31+
skills-validate:
32+
runs-on: ubuntu-latest
33+
steps:
34+
- name: Skip Skill Validation
35+
run: |
36+
echo "No changes detected in 'skills/' directory. Skipping validation."
37+
echo "This job ensures the required 'skills-validate' status check passes."
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Copyright 2026 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
name: Validate Skills
16+
17+
on:
18+
push:
19+
paths:
20+
- "skills/**"
21+
pull_request:
22+
paths:
23+
- "skills/**"
24+
pull_request_target:
25+
types: [labeled]
26+
paths:
27+
- "skills/**"
28+
29+
jobs:
30+
skills-validate:
31+
runs-on: ubuntu-latest
32+
steps:
33+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
34+
35+
- name: Set up Python
36+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
37+
with:
38+
python-version: "3.11"
39+
40+
- name: Install skills-ref
41+
run: |
42+
pip install "git+https://github.com/agentskills/agentskills.git#subdirectory=skills-ref"
43+
44+
- name: Validate Skills
45+
run: |
46+
failed=0
47+
for skill_dir in skills/*/; do
48+
if [ -d "$skill_dir" ]; then
49+
echo "Validating $skill_dir..."
50+
if ! skills-ref validate "$skill_dir"; then
51+
echo "Validation failed for $skill_dir"
52+
failed=1
53+
fi
54+
fi
55+
done
56+
exit $failed

DEVELOPER.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,6 @@ are currently tested in the [MCP Toolbox GitHub](https://github.com/googleapis/m
7373
* **Dependency Updates:** [Renovate](https://github.com/apps/forking-renovate)
7474
is configured to automatically create pull requests for dependency updates.
7575

76-
## Building the Extension
77-
78-
The "build" process for this extension involves packaging the extension's
79-
metadata files (`gemini-extension.json`, `KNOWLEDGE_CATALOG.md`, `LICENSE`) along with the
80-
pre-built `toolbox` binary into platform-specific archives (`.tar.gz` or `.zip`).
81-
82-
This process is handled automatically by the
83-
[`package-and-upload-assets.yml`](.github/workflows/package-and-upload-assets.yml)
84-
GitHub Actions workflow when a new release is created. Manual building is not
85-
required.
8676

8777
## Maintainer Information
8878

@@ -104,7 +94,3 @@ The release process is automated using `release-please`.
10494
2. **Merge Release PR:** A maintainer approves and merges the Release PR. This
10595
action triggers `release-please` to create a new GitHub tag and a
10696
corresponding GitHub Release.
107-
3. **Package and Upload:** The new release triggers the
108-
`package-and-upload-assets.yml` workflow. This workflow builds the
109-
platform-specific extension archives and uploads them as assets to the
110-
GitHub Release.

gemini-extension.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,6 @@
22
"name": "knowledge-catalog",
33
"version": "0.4.0",
44
"description": "Connect to Knowledge Catalog (formerly known as Dataplex) to discover, manage, monitor, and govern data and AI artifacts across your data platform",
5-
"mcpServers": {
6-
"knowledgeCatalog": {
7-
"command": "${extensionPath}${/}toolbox",
8-
"args": [
9-
"--prebuilt",
10-
"dataplex",
11-
"--stdio"
12-
]
13-
}
14-
},
155
"contextFileName": "KNOWLEDGE_CATALOG.md",
166
"settings": [
177
{

release-please-config.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,23 @@
2828
"release-type": "simple",
2929
"package-name": "dataplex",
3030
"extra-files": [
31+
"README.md",
3132
{
3233
"type": "json",
3334
"path": "gemini-extension.json",
3435
"jsonpath": "$.version"
36+
},
37+
{
38+
"type": "json",
39+
"path": ".codex-plugin/plugin.json",
40+
"jsonpath": "$.version"
41+
},
42+
{
43+
"type": "json",
44+
"path": ".claude-plugin/plugin.json",
45+
"jsonpath": "$.version"
3546
}
3647
]
3748
}
3849
}
39-
}
50+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
---
2+
name: knowledge-catalog-discovery
3+
description: Use these skills when you need to discover and explore data assets in the Knowledge Catalog. It allows you to search for entries, lookup specific metadata, and explore aspect types to understand your data platform's assets.
4+
---
5+
6+
## Usage
7+
8+
All scripts can be executed using Node.js. Replace `<param_name>` and `<param_value>` with actual values.
9+
10+
**Bash:**
11+
`node <skill_dir>/scripts/<script_name>.js '{"<param_name>": "<param_value>"}'`
12+
13+
**PowerShell:**
14+
`node <skill_dir>/scripts/<script_name>.js '{\"<param_name>\": \"<param_value>\"}'`
15+
16+
Note: The scripts automatically load the environment variables from various .env files. Do not ask the user to set vars unless skill executions fails due to env var absence.
17+
18+
19+
## Scripts
20+
21+
22+
### lookup_context
23+
24+
Retrieves rich metadata regarding one or more data assets along with their relationships.
25+
26+
#### Parameters
27+
28+
| Name | Type | Description | Required | Default |
29+
| :--- | :--- | :--- | :--- | :--- |
30+
| resources | array | Required. A list of up to 10 resource names. Resources may belong to different projects, but all must belong to the same location. | Yes | |
31+
32+
33+
---
34+
35+
### lookup_entry
36+
37+
Retrieves a specific metadata regarding a data asset (e.g. table/dataset/view) from Catalog
38+
39+
#### Parameters
40+
41+
| Name | Type | Description | Required | Default |
42+
| :--- | :--- | :--- | :--- | :--- |
43+
| entry | string | Required. The resource name of the Entry in the following form: projects/{project}/locations/{location}/entryGroups/{entryGroup}/entries/{entry}. | Yes | |
44+
| view | integer |
45+
## Argument: view
46+
47+
**Type:** Integer
48+
49+
**Description:** Optional. Specifies the parts of the entry and its aspects to return.
50+
51+
**Possible Values:**
52+
53+
* 1 (BASIC): Returns entry without aspects.
54+
* 2 (FULL): Return all required aspects and the keys of non-required aspects. (Default)
55+
* 3 (CUSTOM): Return the entry and aspects requested in aspect_types field (at most 100 aspects). Always use this view when aspect_types is not empty.
56+
* 4 (ALL): Return the entry and both required and optional aspects (at most 100 aspects)
57+
| No | `2` |
58+
| aspectTypes | array | Optional. Limits the aspects returned to the provided aspect types. It only works when used together with CUSTOM view. | No | `[]` |
59+
60+
61+
---
62+
63+
### search_aspect_types
64+
65+
Search aspect types relevant to the query.
66+
67+
#### Parameters
68+
69+
| Name | Type | Description | Required | Default |
70+
| :--- | :--- | :--- | :--- | :--- |
71+
| query | string | The query against which aspect type should be matched. | Yes | |
72+
| pageSize | integer | Number of returned aspect types in the search page. | No | `5` |
73+
| orderBy | string | Specifies the ordering of results. Supported values are: relevance, last_modified_timestamp, last_modified_timestamp asc | No | `relevance` |
74+
75+
76+
---
77+
78+
### search_entries
79+
80+
Searches for data assets (eg. table/dataset/view) in Catalog based on the provided search query.
81+
82+
#### Parameters
83+
84+
| Name | Type | Description | Required | Default |
85+
| :--- | :--- | :--- | :--- | :--- |
86+
| query | string | A query string for searching entries, following Dataplex search syntax. Supports logical operators (AND, OR, NOT) and grouping. For example, to find a table that might have been renamed, you could use 'type:table (name:books OR fiction)'. This can be more efficient than multiple separate calls.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 pageSize parameter to limit the number of results returned. | Yes | |
87+
| scope | string | A scope limits the search space to a particular project or organization. It must be in the format: organizations/<org_id> or projects/<project_id> or projects/<project_number>. | No | `` |
88+
| pageSize | integer | Number of results in the search page. | No | `5` |
89+
| orderBy | string | Specifies the ordering of results. Supported values are: relevance, last_modified_timestamp, last_modified_timestamp asc | No | `relevance` |
90+
91+
92+
---
93+

0 commit comments

Comments
 (0)