diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 84a01e7..586c97d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,7 +26,7 @@ jobs: run: | tar -czvf "supabase-plugin.tar.gz" --dereference \ .claude-plugin/ .cursor-plugin/ .codex-plugin/ .kimi-plugin/ \ - .github/plugin/ agents/ \ + .github/plugin/ .plugin/ agents/ \ gemini-extension.json SUPABASE.md \ skills/ assets/ || exit 1 diff --git a/.plugin/plugin.json b/.plugin/plugin.json new file mode 100644 index 0000000..5feb6e3 --- /dev/null +++ b/.plugin/plugin.json @@ -0,0 +1,26 @@ +{ + "name": "supabase", + "version": "0.1.12", + "description": "Official Supabase plugin in the vendor-neutral Open Plugin format with bundled Supabase skills and MCP access for project management, database work, auth, storage, and Postgres best practices.", + "author": { + "name": "Supabase", + "email": "support@supabase.io" + }, + "repository": "https://github.com/supabase-community/supabase-plugin", + "license": "MIT", + "keywords": [ + "supabase", + "postgres", + "database", + "backend", + "mcp", + "auth", + "storage", + "realtime", + "edge-functions", + "migrations", + "rls" + ], + "skills": "./skills/", + "mcpServers": "./agents/open-plugin/.mcp.json" +} diff --git a/AGENTS.md b/AGENTS.md index 801baf2..6d26fb8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # AGENTS.md -This repository is the plugin distribution repo for Supabase across Claude Code, Cursor, Codex, GitHub Copilot, Gemini, and Kimi Code. +This repository is the plugin distribution repo for Supabase across Claude Code, Cursor, Codex, GitHub Copilot, Gemini, Kimi Code, and the vendor-neutral Open Plugin format (consumed by VS Code). These vendors are installable through the vendor-neutral [`plugins`](https://github.com/vercel-labs/plugins) CLI, which translates the shared plugin layout into each target's native format: @@ -17,7 +17,8 @@ Keep this repository focused on the shared multi-vendor plugin layout: - `.codex-plugin/plugin.json` defines the Codex plugin surface - `.kimi-plugin/plugin.json` defines the Kimi Code plugin surface (with its MCP server declared inline) - `.github/plugin/plugin.json` defines the GitHub Copilot plugin surface -- `agents/claude/.mcp.json`, `agents/cursor/mcp.json`, `agents/codex/.app.json`, and `agents/copilot/.mcp.json` hold agent-specific MCP config files +- `.plugin/plugin.json` defines the vendor-neutral [Open Plugin](https://open-plugins.com/) surface (consumed by VS Code today, and by any other Open Plugin host) +- `agents/claude/.mcp.json`, `agents/cursor/mcp.json`, `agents/codex/.app.json`, `agents/copilot/.mcp.json`, and `agents/open-plugin/.mcp.json` hold agent-specific MCP config files - `gemini-extension.json` defines the Gemini extension manifest - `skills/` contains the shipped, real skill files consumed by the supported plugin surfaces @@ -33,7 +34,7 @@ npx claude plugin validate .claude-plugin/plugin.json ## Editing Rules -- Do not move `skills/`, `agents/`, `.claude-plugin/plugin.json`, `.cursor-plugin/plugin.json`, `.codex-plugin/plugin.json`, or `.kimi-plugin/plugin.json` out of the repo root layout. +- Do not move `skills/`, `agents/`, `.claude-plugin/plugin.json`, `.cursor-plugin/plugin.json`, `.codex-plugin/plugin.json`, `.kimi-plugin/plugin.json`, or `.plugin/plugin.json` out of the repo root layout. - Do not replace `skills/` with a symlink or submodule reference. - Keep the plugin name stable as `supabase` unless there is a deliberate migration plan. - When changing descriptions or keywords, update all relevant `plugin.json` files together. @@ -63,6 +64,9 @@ Known vendor documentation pages: - https://www.kimi.com/code - https://www.kimi.com/code/docs/en/kimi-code-cli/customization/plugins.html - Installed via the `plugins` CLI into Kimi's native plugin store; uses `.kimi-plugin/plugin.json` with skills, commands, hooks, and MCP servers (no agents or LSP support). MCP servers must be declared inline — Kimi does not resolve external file references. +- Open Plugin: + - https://open-plugins.com/ + - Vendor-neutral plugin manifest (`.plugin/plugin.json`) that any Open Plugin host can consume. Its MCP config lives in `agents/open-plugin/.mcp.json` with a generic `X-Source-Name: open-plugin`; individual clients are distinguished server-side by client name. - `plugins` CLI (vendor-neutral installer): - https://github.com/vercel-labs/plugins diff --git a/README.md b/README.md index 874c068..f44a84d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Supabase Agent Plugin -Official Supabase plugin distribution repo for Claude Code, Cursor, Codex, GitHub Copilot, and Gemini. It bundles: +Official Supabase plugin distribution repo for Claude Code, Cursor, Codex, GitHub Copilot, Gemini, and VS Code. It bundles: > Want to contribute? Read [CONTRIBUTING.md](CONTRIBUTING.md) first. @@ -23,6 +23,7 @@ Per-vendor plugin manifests and MCP adapters: | Codex | ✓ | | GitHub Copilot | ✓ | | Gemini | ✓ | +| VS Code (Open Plugin) | ✓ | ## Notes diff --git a/agents/open-plugin/.mcp.json b/agents/open-plugin/.mcp.json new file mode 100644 index 0000000..af57120 --- /dev/null +++ b/agents/open-plugin/.mcp.json @@ -0,0 +1,12 @@ +{ + "mcpServers": { + "supabase": { + "type": "http", + "url": "https://mcp.supabase.com/mcp", + "headers": { + "X-Source-Name": "open-plugin", + "X-Source-Version": "0.1.12" + } + } + } +} diff --git a/release-please-config.json b/release-please-config.json index abdc009..5bcdab9 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -30,6 +30,11 @@ "path": ".github/plugin/plugin.json", "jsonpath": "$.version" }, + { + "type": "json", + "path": ".plugin/plugin.json", + "jsonpath": "$.version" + }, { "type": "json", "path": "gemini-extension.json", @@ -55,6 +60,11 @@ "path": "agents/copilot/.mcp.json", "jsonpath": "$.mcpServers.supabase.headers[\"X-Source-Version\"]" }, + { + "type": "json", + "path": "agents/open-plugin/.mcp.json", + "jsonpath": "$.mcpServers.supabase.headers[\"X-Source-Version\"]" + }, { "type": "json", "path": "gemini-extension.json",