Skip to content

Latest commit

 

History

History
85 lines (59 loc) · 2.77 KB

File metadata and controls

85 lines (59 loc) · 2.77 KB

Contributing

Development setup

This repo uses pnpm for package management and the active LTS version of Node.js. Node.js and pnpm versions are managed via mise (see mise.toml).

Why mise? We use mise to ensure all contributors use consistent versions of tools, reducing instances where code behaves differently on different machines. This is useful not only for managing Node.js and pnpm versions, but also binaries published outside of the npm ecosystem such as the MCP Publisher CLI.

Clone the repo and run:

mise install
pnpm install

To build the MCP server and watch for file changes:

cd packages/mcp-server-supabase
pnpm dev

Configure your MCP client with the file: protocol to run the local build. You may need to restart the server in your MCP client after each change.

{
  "mcpServers": {
    "supabase": {
      "command": "npx",
      "args": [
        "-y",
        "@supabase/mcp-server-supabase@file:/path/to/mcp-server-supabase/packages/mcp-server-supabase",
        "--project-ref",
        "<your project ref>"
      ],
      "env": {
        "SUPABASE_ACCESS_TOKEN": "<your pat>"
      }
    }
  }
}

Optionally, configure --api-url to point at a different Supabase instance (defaults to https://api.supabase.com)

Publishing to the MCP registry

We publish the MCP server to the official MCP registry so that it can be discovered and used by MCP clients. Note the MCP registry does not host the server itself, only metadata about the server. This is defined in the packages/mcp-server-supabase/server.json file.

Dependencies

You will need to install the MCP publisher globally if you haven't already. On macOS, you can do this with Homebrew:

brew install mcp-publisher

See the MCP publisher documentation for other installation methods.

Steps

  1. Update the package version in packages/mcp-server-supabase/package.json. Follow semver guidelines for versioning.

  2. Update server.json with the new version by running:

    pnpm registry:update
  3. Download the domain-verification-key.pem from Bitwarden and place it in packages/mcp-server-supabase/. This will be used to verify ownership of the supabase.com domain during the login process.

    This works because of the .well-known/mcp-registry-auth endpoint served by supabase.com.

  4. Login to the MCP registry:

    pnpm registry:login
  5. Publish the new version:

    pnpm registry:publish