diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 565f6af..3708c32 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -9,10 +9,7 @@ "plugins": [ { "name": "spanner", - "source": { - "source": "git", - "url": "https://github.com/gemini-cli-extensions/spanner.git" - }, + "source": "./", "policy": { "installation": "AVAILABLE", "authentication": "ON_INSTALL" diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index d90dad7..632b2a9 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -9,31 +9,5 @@ "homepage": "https://cloud.google.com/spanner", "license": "Apache-2.0", "repository": "https://github.com/gemini-cli-extensions/spanner", - "skills": "./skills/", - "userConfig": { - "spanner_project": { - "title": "Project ID", - "description": "ID of the Google Cloud project", - "type": "string", - "sensitive": false - }, - "spanner_instance": { - "title": "Instance", - "description": "ID of the Spanner instance", - "type": "string", - "sensitive": false - }, - "spanner_database": { - "title": "Database", - "description": "ID of the Spanner database", - "type": "string", - "sensitive": false - }, - "spanner_dialect": { - "title": "Database Dialect", - "description": "(Optional) The SQL dialect of the Spanner Database: 'googlesql' or 'postgresql'. (Default: 'googlesql')", - "type": "string", - "sensitive": false - } - } + "skills": "./skills/" } diff --git a/.lycheeignore b/.lycheeignore index bb6f622..faeb423 100644 --- a/.lycheeignore +++ b/.lycheeignore @@ -1,2 +1,3 @@ https://github.com/gemini-cli-extensions/spanner/compare/ https://www.npmjs.com/package/skills +https://agent-plugins.org/compatible-clients diff --git a/CHANGELOG.md b/CHANGELOG.md index 7dd5a76..5c20beb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,7 +44,7 @@ * **tool/spanner-sql,tool/spanner-execute-sql:** Use read-only annotations when readOnly is set ([mcp-toolbox#​3338](https://redirect.github.com/googleapis/mcp-toolbox/issues/3338)) ([8bde0ec](https://redirect.github.com/googleapis/mcp-toolbox/commit/8bde0ec08f8bf455f319523b4faacf32bdbc65ff)) ([49be417](https://github.com/gemini-cli-extensions/spanner/commit/49be417d6a5451e0f244733f5da7f5be2029caa7)) * **tools:** Initialize query result slices to empty array ([mcp-toolbox#​3250](https://redirect.github.com/googleapis/mcp-toolbox/issues/3250)) ([60ddf48](https://redirect.github.com/googleapis/mcp-toolbox/commit/60ddf487468bfd11c7f9346f16a33a8986f89f84)) ([49be417](https://github.com/gemini-cli-extensions/spanner/commit/49be417d6a5451e0f244733f5da7f5be2029caa7)) * Bound MCP HTTP body size ([mcp-toolbox#​3216](https://redirect.github.com/googleapis/mcp-toolbox/issues/3216)) ([d4f4342](https://redirect.github.com/googleapis/mcp-toolbox/commit/d4f434251392fb597779a90a12c63d21533ea187)) ([49be417](https://github.com/gemini-cli-extensions/spanner/commit/49be417d6a5451e0f244733f5da7f5be2029caa7)) -* Escape delimiter characters in applyEscape to prevent SQL injection ([mcp-toolbox#​2811](https://redirect.github.com/googleapis/mcp-toolbox/issues/2811)) ([932519a](https://redirect.github.com/googleapis/mcp-toolbox/commit/932519a9551861bf5f18787dc43b20d06350343f)) ([49be417](https://github.com/gemini-cli-extensions/spanner/commit/49be417d6a5451e0f244733f5da7f5be2029caa7)) +* Escape delimiter characters in applyEscape to prevent SQL injection ([932519a](https://redirect.github.com/googleapis/mcp-toolbox/commit/932519a9551861bf5f18787dc43b20d06350343f)) ([49be417](https://github.com/gemini-cli-extensions/spanner/commit/49be417d6a5451e0f244733f5da7f5be2029caa7)) ## [0.3.1](https://github.com/gemini-cli-extensions/spanner/compare/0.3.0...0.3.1) (2026-05-07) diff --git a/README.md b/README.md index 0363a9b..6937620 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ This repository provides a set of agent skills to interact with [Google Cloud Sp - [Antigravity](#antigravity) - [Claude Code](#claude-code) - [Codex](#codex) +- [Installing using open agent skills tool](#installing-using-open-agent-skills-tool) +- [Installing via a compatible Agent Plugins client](#installing-via-a-compatible-agent-plugins-client) - [Usage Examples](#usage-examples) - [Supported Skills](#supported-skills) - [Additional Agent Skills](#additional-agent-skills) @@ -198,6 +200,19 @@ For detailed info check out the [Skills npm package](https://www.npmjs.com/packa **2. Set env vars:** Set your environment vars as described in the [configuration section](#configuration). +## Installing via a compatible Agent Plugins client + +This repository is a valid [Agent Plugins](https://github.com/agentplugins/agent-plugins-spec) (v1) plugin. Any [Agent Plugins–compatible client](https://agent-plugins.org/compatible-clients) can install it directly using its own built-in plugin command — no extra tooling required — by pointing at this repository: + +``` +https://github.com/gemini-cli-extensions/spanner +``` + +Beyond harnesses covered by the native install above, compatible clients include VS Code, Cursor, GitHub Copilot, and Kiro. See your agent's documentation for its exact install command. + +**Set env vars:** +Set your environment vars as described in the [configuration section](#configuration). + ## Usage Examples diff --git a/plugin.json b/plugin.json new file mode 100644 index 0000000..2ae7a79 --- /dev/null +++ b/plugin.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", + "name": "spanner", + "version": "0.3.2", + "description": "Connect and interact with Spanner data using natural language.", + "author": { + "name": "Google LLC", + "email": "data-cloud-ai-integrations@google.com" + }, + "homepage": "https://cloud.google.com/spanner", + "repository": "https://github.com/gemini-cli-extensions/spanner", + "license": "Apache-2.0", + "keywords": [ + "spanner", + "google-cloud", + "database" + ] +} diff --git a/release-please-config.json b/release-please-config.json index 144925d..8aac58c 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -43,8 +43,13 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": "plugin.json", + "jsonpath": "$.version" } ] } } -} \ No newline at end of file +}