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
8 changes: 6 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
{
"name": "spanner-marketplace",
"owner": {
"name": "Google LLC",
"email": "data-cloud-ai-integrations@google.com"
},
"interface": {
"displayName": "Spanner Agent Skills"
"displayName": "Spanner"
},
"metadata": {
"description": "Agent skills to connect and interact with Spanner data using natural language."
"description": "Connect and interact with Spanner data using natural language."
},
"plugins": [
{
Expand Down
47 changes: 45 additions & 2 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,50 @@
"email": "data-cloud-ai-integrations@google.com"
},
"homepage": "https://cloud.google.com/spanner",
"license": "Apache-2.0",
"repository": "https://github.com/gemini-cli-extensions/spanner",
"skills": "./skills/"
"license": "Apache-2.0",
"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
}
},
"mcpServers": {
"spanner": {
"command": "npx",
"args": [
"-y",
"@toolbox-sdk/server@1.9.0",
"--prebuilt",
"spanner",
"--stdio"
],
"env": {
"SPANNER_PROJECT": "${user_config.spanner_project}",
"SPANNER_INSTANCE": "${user_config.spanner_instance}",
"SPANNER_DATABASE": "${user_config.spanner_database}",
"SPANNER_DIALECT": "${user_config.spanner_dialect}"
}
}
}
}
20 changes: 20 additions & 0 deletions .codex-plugin/.mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"mcpServers": {
"spanner": {
"command": "npx",
"args": [
"-y",
"@toolbox-sdk/server@1.9.0",
"--prebuilt",
"spanner",
"--stdio"
],
"env_vars": [
"SPANNER_PROJECT",
"SPANNER_INSTANCE",
"SPANNER_DATABASE",
"SPANNER_DIALECT"
]
}
}
}
4 changes: 2 additions & 2 deletions .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"google-cloud",
"database"
],
"skills": "./skills/",
"interface": {
"displayName": "Spanner",
"shortDescription": "Connect and interact with Spanner data using natural language.",
Expand All @@ -27,5 +26,6 @@
"defaultPrompt": [
"You are a senior database engineer and administrator specializing in Spanner. Your goal is to help users explore their Spanner databases, manage schemas, and execute queries effectively."
]
}
},
"mcpServers": "./.codex-plugin/.mcp.json"
}
22 changes: 16 additions & 6 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,28 @@
pinDigests: true,
},
{
matchPackageNames: ['googleapis/mcp-toolbox'],
matchPackageNames: ['@toolbox-sdk/server'],
// Group the toolbox update under a stable branch name (renovate/toolbox).
groupName: 'toolbox',
'semanticCommitType': 'feat'
}
],
customManagers: [
{
// Track the npm toolbox server pinned in the MCP command. The version is
// listed in the source (mcp.json) and repeated in every generated
// manifest, so all of them are bumped in one PR.
customType: "regex",
managerFilePatterns: ["/toolbox_version\\.txt$/"],
matchStrings: ["(?<currentValue>[\\d\\.]+)"],
datasourceTemplate: "github-releases",
packageNameTemplate: "googleapis/mcp-toolbox",
extractVersionTemplate: "^v(?<version>.*)$",
managerFilePatterns: [
"/mcp\.json$/",
"/mcp_config\.json$/",
"/gemini-extension\.json$/",
"/\.claude-plugin/plugin\.json$/",
"/\.codex-plugin/\.mcp\.json$/",
],
matchStrings: ["@toolbox-sdk/server@(?<currentValue>[\d\.]+)"],
datasourceTemplate: "npm",
depNameTemplate: "@toolbox-sdk/server",
}
]
}
11 changes: 4 additions & 7 deletions .github/workflows/presubmit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,19 @@ on:
pull_request:
branches: [ main ]

permissions:
contents: read

jobs:
run-presubmit-tests:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Install Gemini CLI
run: npm install @google/gemini-cli

- name: Install toolbox binary
run: |
VERSION=$(cat toolbox_version.txt)
curl -L -o toolbox "https://storage.googleapis.com/mcp-toolbox-for-databases/v${VERSION}/linux/amd64/toolbox"
chmod +x toolbox

- name: Install Extension
run: npx gemini extensions validate .
env:
Expand Down
57 changes: 0 additions & 57 deletions .github/workflows/skills-generate.yml

This file was deleted.

Loading
Loading