# SupaForge MCP server

> Compares and synchronizes Supabase environments including schema, RLS, auth, storage, and edge functions.

- Repository: https://github.com/akalsoftware/supaforge
- Page: https://hostedmcp.org/servers/akalsoftware/supaforge
- Transport: stdio
- Stars: 1
- License: MIT
- Latest version: 0.0.44

## Install

### Claude Code

```sh
claude mcp add supaforge -- npx -y @akal/supaforge
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "supaforge": {
      "command": "npx",
      "args": [
        "-y",
        "@akal/supaforge"
      ]
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "supaforge": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@akal/supaforge"
      ]
    }
  }
}
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "supaforge": {
      "command": "npx",
      "args": [
        "-y",
        "@akal/supaforge"
      ]
    }
  }
}
```

### Codex (`~/.codex/config.toml`)

```toml
[mcp_servers.supaforge]
command = "npx"
args = ["-y", "@akal/supaforge"]
```

### Gemini CLI (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "supaforge": {
      "command": "npx",
      "args": [
        "-y",
        "@akal/supaforge"
      ]
    }
  }
}
```

## FAQ

### What does SupaForge compare?

It compares everything that makes up a Supabase project, including schema, RLS policies, storage, auth config, edge functions, cron jobs, webhooks, and more.

### Is it safe to apply changes to a production database?

Yes, it is safe by default. Every write requires the --apply flag, and destructive actions like dropping tables require the --allow-destructive flag. It also runs in a single transaction so that a failure rolls back the target.

### Can I test migrations before applying them?

Yes, you can use the --prove flag to rehearse the migration on a throwaway copy to ensure it reproduces the source without losing rows.

### Does it support plain PostgreSQL?

Yes, it works with plain PostgreSQL targets, though some Supabase-specific features like webhooks or certain extensions might be skipped.
