diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 0000000..b343395 --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,21 @@ +{ + "name": "googlecloud-plugin-marketplace", + "plugins": [ + { + "name": "googlecloud-plugin", + "interface": { + "displayName": "GoogleCloud Plugin", + "shortDescription": "A full Google Cloud delivery team for your coding agent." + }, + "source": { + "source": "local", + "path": "." + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "NONE" + }, + "category": "Infrastructure" + } + ] +} diff --git a/.mcp.json b/.mcp.json index 8fda0ce..0bf62aa 100644 --- a/.mcp.json +++ b/.mcp.json @@ -7,9 +7,9 @@ "CLOUDSDK_CORE_PROJECT": "${GCP_PROJECT_ID}" } }, - "genai-toolbox": { - "command": "uvx", - "args": ["toolbox-core", "--tools-file", "${TOOLBOX_TOOLS_FILE}"], + "toolbox": { + "command": "npx", + "args": ["-y", "@toolbox-sdk/server", "--stdio", "--config", "${TOOLBOX_TOOLS_FILE}"], "env": { "GCP_PROJECT_ID": "${GCP_PROJECT_ID}", "GOOGLE_APPLICATION_CREDENTIALS": "${GOOGLE_APPLICATION_CREDENTIALS}", diff --git a/README.md b/README.md index 23df856..7a017b5 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,13 @@ > **Install once, and your coding agent gains a full Google Cloud delivery team — a vendor-objective solution designer, a GCP architect, an agentic-systems architect, plus security, SRE, and QA — wired into a design-first, security-first delivery gate.** +> **All the GCP skills. All the MCP servers available today. Assembled to fast-track the right architecture for your requirements.** + Skill libraries for Google Cloud are everywhere. What they miss is the operating contract: who designs before anyone writes code, who signs off on least-privilege before anything deploys, what "done" means when an agent ships to a billable cloud. This plugin ships that contract, with the GCP know-how built in. -One install gives an agent (Claude, Codex, or Antigravity) five personas, eleven service skills, the MCP server map, and a research pipeline that keeps every reference current. A plugin that goes stale in silence is worse than none. +One install gives an agent (Claude, Codex, or Antigravity) six personas, eleven service skills, and a research pipeline that keeps every reference current. A plugin that goes stale in silence is worse than none. -The plugin is **GCP-only and opinionated by design**. It covers the estate a builder touches — Firebase, Cloud Run, BigQuery, GKE — and the agent frameworks now built on top: ADK, and the MCP / A2A / AP2 protocol stack, deployed on the Gemini Enterprise Agent Platform. Refine it for your team. Keep the contract coherent as you do. +The plugin is **GCP-only and opinionated by design**. It covers the services a builder reaches for — Firebase, Cloud Run, BigQuery, GKE — and the agent frameworks now built on top: ADK, and the MCP / A2A / AP2 protocol stack, deployed on the Gemini Enterprise Agent Platform. Refine it for your team. Keep the contract coherent as you do. > **Speed is easy. Safe speed is engineered.** @@ -51,8 +53,6 @@ After cloning to work on the plugin itself, install the pre-commit gate once: make hooks # runs `make gate` (validate + manifest + mermaid + lint + test) on every commit ``` -### In action - The plugin running in Antigravity — asked what it is and how it delivers value, the agent introduces the team and the delivery gate:

@@ -128,7 +128,7 @@ The rule underneath every gate: **infer intent, never infer permission.** An AI ## What you install -**Five personas** — the team: +**Six personas** — the team: | Persona | Tier | Owns | | :--- | :--- | :--- | @@ -166,7 +166,7 @@ Freshness is a feature, not a chore: `make check` runs weekly and flags any GCP Created and maintained by **Jaroslav Pantsjoha (JP)** — Technical Director and Enterprise Agent Solution Architect at Cognizant, Google Developer Expert (Google Cloud), speaker, and author of *Building the Agentic Enterprise on Google Cloud* (Packt). -I built this to make my own Google Cloud work repeatable, then to share it. The model is the easy part; the durable engineering is the harness around it — the skills, rules, MCP servers, gates, and evals. GCP patterns outlast the week's model release, so they are worth encoding once and reusing. This plugin is that baseline aimed squarely at Google Cloud — the GCP companion to my [`join-the-team`](https://github.com/jpantsjoha/ai-native-developer-experience) harness. Part of the **#HarnessEngineering** body of work and the Google Cloud / GDE community. +I built this to make my own Google Cloud work repeatable, then to share it. The model is the easy part; the durable engineering is the harness around it — the skills, rules, MCP servers, gates, and evals. GCP patterns outlast the week's model release, so they are worth encoding once and reusing. This plugin is that baseline aimed squarely at Google Cloud — the GCP companion to my [`join-the-team`](https://github.com/jpantsjoha/ai-native-developer-experience) harness. Part of the **#HarnessEngineering** body of work — the engineering discipline behind the Agentic Enterprise. - LinkedIn: [uk.linkedin.com/in/johas](https://uk.linkedin.com/in/johas) - Google Developer Expert: [me.developers.google.com/u/jpantsjoha](https://me.developers.google.com/u/jpantsjoha) diff --git a/gemini-extension.json b/gemini-extension.json index ff39ae4..966976e 100644 --- a/gemini-extension.json +++ b/gemini-extension.json @@ -11,9 +11,9 @@ "CLOUDSDK_CORE_PROJECT": "${GCP_PROJECT_ID}" } }, - "genai-toolbox": { - "command": "uvx", - "args": ["toolbox-core", "--tools-file", "${TOOLBOX_TOOLS_FILE}"], + "toolbox": { + "command": "npx", + "args": ["-y", "@toolbox-sdk/server", "--stdio", "--config", "${TOOLBOX_TOOLS_FILE}"], "env": { "GCP_PROJECT_ID": "${GCP_PROJECT_ID}", "GOOGLE_APPLICATION_CREDENTIALS": "${GOOGLE_APPLICATION_CREDENTIALS}", diff --git a/mcp_config.json b/mcp_config.json index 37ed27a..4676572 100644 --- a/mcp_config.json +++ b/mcp_config.json @@ -1,43 +1,27 @@ { - "_about": "Google Cloud MCP self-configuration. Agents reach GCP through named MCP servers, never raw credentials. Auth is Application Default Credentials (ADC) or a service-account key referenced by PATH — never a value in this file. Point each server at ONE source, expose ONLY the tools it needs. Verify package currency before pinning; this space moves fast (snapshot 2026-07). See skills/mcp-servers/SKILL.md for setup + troubleshooting.", + "_about": "Google Cloud MCP self-configuration. Agents reach GCP through named MCP servers, never raw credentials. Auth via Application Default Credentials (ADC) — never hardcoded. See skills/mcp-servers/SKILL.md for setup and troubleshooting. Tested 2026-07-23: gcloud-mcp v0.5.3 confirmed operational (live GCP query); toolbox-server confirmed installable via npx.", "mcpServers": { - "genai-toolbox": { - "_note": "Google's MCP Toolbox for Databases (genai-toolbox). One governed, read-oriented seam over BigQuery / Cloud SQL / Spanner / AlloyDB. Credentials via ADC in the environment, never hardcoded.", - "command": "uvx", - "args": ["toolbox-core", "--tools-file", "${TOOLBOX_TOOLS_FILE}"], - "env": { - "GCP_PROJECT_ID": "${GCP_PROJECT_ID}", - "GOOGLE_APPLICATION_CREDENTIALS": "${GOOGLE_APPLICATION_CREDENTIALS}", - "TOOLBOX_TOOLS_FILE": "${TOOLBOX_TOOLS_FILE}" - }, - "_exposedTools": [ - "list_datasets", - "describe_schema", - "run_readonly_query" - ], - "_source": "https://github.com/googleapis/genai-toolbox", - "_exampleSources": { - "bigquery": "read-only analytics queries over a dataset", - "cloudsql": "managed PostgreSQL/MySQL reads", - "spanner": "strongly-consistent relational reads", - "alloydb": "PostgreSQL-compatible operational reads" - } - }, - "gcloud": { - "_note": "Broad gcloud CLI seam for GCP resource operations the managed servers do not cover. Requires a local, authenticated gcloud (gcloud auth application-default login). Least-privilege: run under a scoped service account, not owner.", + "_note": "gcloud CLI MCP server — tested live against GCP (run_gcloud_command tool, MCP initialize handshake confirmed). Requires local gcloud auth application-default login.", + "_tested": "2026-07-23 — npx @google-cloud/gcloud-mcp v0.5.3 started, responded to MCP initialize, queried live GCP project via run_gcloud_command", "command": "npx", "args": ["-y", "@google-cloud/gcloud-mcp"], "env": { "CLOUDSDK_CORE_PROJECT": "${GCP_PROJECT_ID}" - }, - "_exposedTools": [ - "gcloud_run", - "gcloud_describe", - "gcloud_list" - ], - "_verify": "Confirm the current package name/availability before pinning — Google's managed + community gcloud MCP surface is evolving." + } + }, + "toolbox": { + "_note": "Google GenAI Toolbox — database MCP server (BigQuery, Cloud SQL, Spanner, AlloyDB). Requires a tools.yaml config file. See https://mcp-toolbox.dev for setup.", + "_tested": "2026-07-23 — @toolbox-sdk/server resolves, accepts MCP stdio mode, and validates its config path. Requires a tools.yaml pointing at a database source.", + "_correction": "Previous config used 'uvx toolbox-core' which has no CLI. Correct package: npx @toolbox-sdk/server --stdio --config PATH", + "command": "npx", + "args": ["-y", "@toolbox-sdk/server", "--stdio", "--config", "${TOOLBOX_TOOLS_FILE}"], + "env": { + "GCP_PROJECT_ID": "${GCP_PROJECT_ID}", + "GOOGLE_APPLICATION_CREDENTIALS": "${GOOGLE_APPLICATION_CREDENTIALS}", + "TOOLBOX_TOOLS_FILE": "${TOOLBOX_TOOLS_FILE}" + } } } } diff --git a/skills/mcp-servers/SKILL.md b/skills/mcp-servers/SKILL.md index 091f2b7..c711b59 100644 --- a/skills/mcp-servers/SKILL.md +++ b/skills/mcp-servers/SKILL.md @@ -59,21 +59,24 @@ gcloud auth application-default login --impersonate-service-account=SA@PROJECT.i Google's MCP Toolbox for Databases enables LLM agents to query Cloud SQL, AlloyDB, Spanner, BigQuery, and more safely. ```bash -# Install -pip install toolbox-core +# Run the toolbox MCP server (requires a tools.yaml pointing at your database) +# Tested 2026-07-23: this is the correct package. Full docs: https://mcp-toolbox.dev +npx -y @toolbox-sdk/server --stdio --config tools.yaml -# Configure (toolbox.yaml) +# Example tools.yaml (BigQuery source) # sources: -# my-pg-source: -# kind: cloud-sql-postgres +# my-bq: +# kind: bigquery # project: PROJECT_ID -# region: REGION -# instance: INSTANCE_NAME -# database: DB_NAME -# user: DB_USER -# password: ${DB_PASSWORD} +# tools: +# run_query: +# source: my-bq +# description: Run a read-only BigQuery query +# statement: SELECT ... ``` +> **Package note (tested 2026-07-23):** use `@toolbox-sdk/server` via npx — **not** `pip install toolbox-core` / `uvx toolbox-core`. `toolbox-core` is the Python SDK *library* for building apps; it has no server CLI entry point. + - [MCP Toolbox for Databases (announcement)](https://cloud.google.com/blog/products/ai-machine-learning/mcp-toolbox-for-databases-now-supports-model-context-protocol) - [GitHub: googleapis/genai-toolbox](https://github.com/googleapis/genai-toolbox)