Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
35 changes: 9 additions & 26 deletions DEVELOPER.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# DEVELOPER.md

This document provides instructions for setting up your development environment
and contributing to the Knowledge Catalog (formerly known as Dataplex) Gemini CLI Extension project.
and contributing to the Knowledge Catalog (formerly known as Dataplex) Agent skills project.

## Prerequisites

Expand All @@ -16,39 +16,23 @@ Before you begin, ensure you have the following:

### Running from Local Source

The core logic for this extension is handled by a pre-built `toolbox` binary. The development process involves installing the extension locally into the Gemini CLI to test changes.

1. **Clone the Repository:**

```bash
git clone https://github.com/gemini-cli-extensions/knowledge-catalog.git
cd knowledge-catalog
```

2. **Download the Toolbox Binary:** The required version of the `toolbox` binary
is specified in `toolbox_version.txt`. Download it for your platform.

```bash
# Read the required version
VERSION=$(cat toolbox_version.txt)

# Example for macOS/amd64
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/geminicli/v$VERSION/darwin/amd64/toolbox
chmod +x toolbox
```
Adjust the URL for your operating system (`linux/amd64`, `darwin/arm64`, `windows/amd64`).

3. **Link the Extension Locally:** Use the Gemini CLI to install the
2. **Install the Extension Locally:** Use the Gemini CLI to install the
extension from your local directory.

```bash
gemini extensions link .
gemini extensions install .
```
The CLI will prompt you to confirm the linking. Accept it to proceed.
The CLI will prompt you to confirm the installation. Accept it to proceed.

4. **Testing Changes:** After linking, start the Gemini CLI (`gemini`).
You can now interact with the `knowledge-catalog` tools to manually test your changes
against your connected database.
3. **Testing Changes:** After installation, start the Gemini CLI (`gemini`).
You can now interact with the `knowledge-catalog` skills to manually test your changes.

## Testing

Expand All @@ -58,9 +42,9 @@ A GitHub Actions workflow (`.github/workflows/presubmit-tests.yml`) is triggered
for every pull request. This workflow primarily verifies that the extension can
be successfully installed by the Gemini CLI.

Currently, there are no automated unit or integration test suites
within this repository. All functional testing must be performed manually. All tools
are currently tested in the [MCP Toolbox GitHub](https://github.com/googleapis/mcp-toolbox).
All skills are currently tested in the [MCP Toolbox GitHub](https://github.com/googleapis/mcp-toolbox).

The skills themselves are validated using the `skills-validate.yml` workflow.

### Other GitHub Checks

Expand All @@ -73,7 +57,6 @@ are currently tested in the [MCP Toolbox GitHub](https://github.com/googleapis/m
* **Dependency Updates:** [Renovate](https://github.com/apps/forking-renovate)
is configured to automatically create pull requests for dependency updates.


## Maintainer Information

### Team
Expand Down
28 changes: 21 additions & 7 deletions KNOWLEDGE_CATALOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ Your primary objective is to help discover, organize and manage metadata related

To install this extension, the Gemini CLI version must be v0.6.0 or above. The version can be found by running: `gemini --version`.

## Knowledge Catalog(formerly known as Dataplex) MCP Server (Data Plane: Connecting and Querying)
## Knowledge Catalog (formerly known as Dataplex) Agent Skills (Data Plane: Connecting and Querying)

This section covers connecting to a Knowledge Catalog instance.

1. **Verify Environment Variables**: The extension requires the following environment variables to be set before the Gemini CLI is started:
1. **Verify Environment Variables**: The extension requires the following environment variables to be set before the agent is started:

* `DATAPLEX_PROJECT`: The GCP project ID.

Expand All @@ -24,6 +24,20 @@ This section covers connecting to a Knowledge Catalog instance.

---

# Usage Guidelines

## Reusing Project Values

Users may have set project environment variables:

* `DATAPLEX_PROJECT`: The GCP project ID.

Instead of prompting the user for these values for specific skill calls, prompt the user to verify the reuse of a specific setting value.
Make sure to not use the environment variable name like `DATAPLEX_PROJECT`, `${DATAPLEX_PROJECT}`, or `$DATAPLEX_PROJECT`.
The value can be verified by the user using the `gemini extensions config knowledge-catalog` command or by checking their local settings.

---

# Data Model

## Entries
Expand Down Expand Up @@ -145,9 +159,9 @@ Entries are organized within Entry Groups, which are logical groupings of Entrie

Entries can be linked together using EntryLinks to represent relationships between data assets (e.g. foreign keys).

# Tool instructions
# Skill instructions

## Tool: search_entries
## Skill: search_entries

## General

Expand Down Expand Up @@ -341,12 +355,12 @@ This abbreviated syntax works for the qualified predicates except for `label` in
1. Explain that no search result was found
2. Suggest to provide a more specific search query.

## Tool: lookup_entry
## Skill: lookup_entry

### Request

1. Always try to limit the size of the response by specifying `aspect_types` parameter. Make sure to include to select view=CUSTOM when using aspect_types parameter. If you do not know the name of the aspect type, use the `search_aspect_types` tool.
2. If you do not know the name of the entry, use `search_entries` tool
1. Always try to limit the size of the response by specifying `aspect_types` parameter. Make sure to include to select view=CUSTOM when using aspect_types parameter. If you do not know the name of the aspect type, use the `search_aspect_types` skill.
2. If you do not know the name of the entry, use `search_entries` skill

### Response

Expand Down
Loading
Loading