Skip to main content
Glama

Genkit MCP

Official
by firebase
README.md4.67 kB
# CLI Release Scripts This directory contains scripts for managing Genkit CLI releases, including promotion from GitHub artifacts to Google Cloud Storage (GCS). ## Overview The release management process consists of two scripts: 1. `promote_cli_gcs.sh` - Downloads binaries from GitHub and uploads to GCS 2. `update_cli_metadata.sh` - Updates metadata JSON files with version information ## Prerequisites - Google Cloud SDK (`gcloud` and `gsutil`) installed and authenticated - GitHub CLI (`gh`) installed and authenticated (for artifact downloads) - Appropriate permissions on the GCS bucket ## Usage ### Promoting from a GitHub Actions Run ```bash # Promote binaries from a specific GitHub Actions run ./scripts/cli-releases/promote_cli_gcs.sh \ --github-run-id=123456789 \ --channel=next \ --version=1.15.5 # Update metadata ./scripts/cli-releases/update_cli_metadata.sh \ --channel=next \ --version=1.15.5 ``` ### Promoting from a GitHub Release ```bash # Promote binaries from a GitHub release tag ./scripts/cli-releases/promote_cli_gcs.sh \ --github-tag=v1.15.5 \ --channel=prod \ --version=1.15.5 # Update metadata ./scripts/cli-releases/update_cli_metadata.sh \ --channel=prod \ --version=1.15.5 ``` ### Dry Run Mode Both scripts support a `--dry-run` flag to see what would be done without actually doing it: ```bash ./scripts/cli-releases/promote_cli_gcs.sh \ --github-run-id=123456789 \ --channel=next \ --version=1.15.5 \ --dry-run ``` ## Script Options ### promote_cli_gcs.sh | Option | Description | Required | |--------|-------------|----------| | `--github-run-id=ID` | GitHub Actions run ID to download artifacts from | One of github-run-id or github-tag | | `--github-tag=TAG` | GitHub release tag to download artifacts from | One of github-run-id or github-tag | | `--channel=CHANNEL` | Target channel (prod/next) | No (default: next) | | `--version=VERSION` | Version string for GCS paths | Yes | | `--bucket=BUCKET` | GCS bucket name | No (default: genkit-cli-binaries) | | `--dry-run` | Show what would be done without doing it | No | ### update_cli_metadata.sh | Option | Description | Required | |--------|-------------|----------| | `--channel=CHANNEL` | Target channel (prod/next) | No (default: next) | | `--version=VERSION` | Version to mark as latest | Yes | | `--bucket=BUCKET` | GCS bucket name | No (default: genkit-cli-binaries) | | `--dry-run` | Show what would be done without doing it | No | ## GCS Bucket Structure The scripts create the following structure in GCS: ``` gs://genkit-cli-binaries/ ├── prod/ │ └── bin/ │ ├── linux-x64/ │ │ ├── latest │ │ └── v1.15.5/ │ │ └── genkit │ ├── linux-arm64/ │ │ ├── latest │ │ └── v1.15.5/ │ │ └── genkit │ ├── darwin-x64/ │ │ ├── latest │ │ └── v1.15.5/ │ │ └── genkit │ ├── darwin-arm64/ │ │ ├── latest │ │ └── v1.15.5/ │ │ └── genkit │ └── win32-x64/ │ ├── latest.exe │ └── v1.15.5/ │ └── genkit.exe ├── next/ │ └── bin/ │ └── [same structure as prod] ├── metadata-prod.json └── metadata-next.json ``` ## Metadata Format The metadata JSON files contain information about the latest version: ```json { "channel": "prod", "latestVersion": "1.15.5", "lastUpdated": "2025-01-15T10:00:00Z", "platforms": { "linux-x64": { "url": "https://cli.genkit.dev/bin/linux-x64/latest", "version": "1.15.5", "versionedUrl": "https://cli.genkit.dev/bin/linux-x64/v1.15.5/genkit" }, ... } } ``` ## Integration with Cloud Build These scripts are designed to be called from Cloud Build or other CI/CD systems. Example Cloud Build step: ```yaml steps: - name: 'gcr.io/cloud-builders/gcloud' entrypoint: 'bash' args: - '-c' - | ./scripts/cli-releases/promote_cli_gcs.sh \ --github-run-id=${_GITHUB_RUN_ID} \ --channel=${_CHANNEL} \ --version=${_VERSION} ./scripts/cli-releases/update_cli_metadata.sh \ --channel=${_CHANNEL} \ --version=${_VERSION} ``` ## Notes - Binary naming conventions match those from `build-cli-binaries.yml` - The domain `cli.genkit.dev` should be configured to serve from the GCS bucket - Cache headers are set appropriately (1 hour for versioned files, 5 minutes for latest)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/firebase/genkit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server