- Replace legacy directory structure (api/, db/, functions/, logs/, pooler/) with single docker-compose.yml based self-hosted setup - Add selfhosted-supabase-mcp TypeScript MCP server for database management - Add .dockerignore for Docker build context - Update .gitignore to exclude .env files, volumes/, backups, logs
68 lines
3.0 KiB
Markdown
68 lines
3.0 KiB
Markdown
# Self-Hosted Supabase MCP Server - Implementation Plan
|
|
|
|
This plan outlines the steps to build the minimal self-hosted Supabase MCP server based on `migration_notes.md`.
|
|
|
|
## Progress Tracking
|
|
|
|
- [x] Project Setup (package.json, tsconfig.json, dependencies, directories)
|
|
- [x] Bun Migration (replaced Node.js/npm with Bun runtime)
|
|
- [x] Define Core Types (`src/types/`)
|
|
- [x] Implement `SelfhostedSupabaseClient` (`src/client/`)
|
|
- [x] Basic connection (`@supabase/supabase-js`)
|
|
- [x] RPC `execute_sql` function call logic
|
|
- [x] RPC function existence check and creation logic (using service key)
|
|
- [x] Direct DB connection fallback/transactional method (`pg`)
|
|
- [x] Async initialization logic (`client.initialize()`)
|
|
- [x] Implement Server Entry Point (`src/index.ts`)
|
|
- [x] `commander` setup for args/env vars
|
|
- [x] `createSelfhostedSupabaseClient` factory usage
|
|
- [x] MCP SDK initialization (`stdio: true`)
|
|
- [x] Tool registration
|
|
- [x] Error handling
|
|
- [x] Implement Tools (`src/tools/`)
|
|
- [x] **Schema & Migrations**
|
|
- [x] `list_tables`
|
|
- [x] `list_extensions`
|
|
- [x] `list_migrations`
|
|
- [x] `apply_migration`
|
|
- [x] **Database Operations & Stats**
|
|
- [x] `execute_sql`
|
|
- [x] `get_database_connections`
|
|
- [x] `get_database_stats`
|
|
- [x] **Project Configuration**
|
|
- [x] `get_project_url`
|
|
- [x] `verify_jwt_secret`
|
|
- [-] `get_anon_key` (Removed - security risk)
|
|
- [-] `get_service_key` (Removed - security risk)
|
|
- [x] **Development & Extension Tools**
|
|
- [x] `generate_typescript_types`
|
|
- [x] `rebuild_hooks`
|
|
- [x] `get_logs` (Added - tries analytics stack, falls back to CSV logs)
|
|
- [x] **Auth User Management**
|
|
- [x] `list_auth_users`
|
|
- [x] `get_auth_user`
|
|
- [x] `create_auth_user`
|
|
- [x] `delete_auth_user`
|
|
- [x] `update_auth_user`
|
|
- [x] **Storage Insights**
|
|
- [x] `list_storage_buckets`
|
|
- [x] `list_storage_objects`
|
|
- [x] **Realtime Inspection**
|
|
- [x] `list_realtime_publications`
|
|
- [x] **Extension-Specific Tools**
|
|
- [x] `list_cron_jobs` (for pg_cron)
|
|
- [x] `list_vector_indexes` (for pgvector)
|
|
- [x] **Edge Function Management**
|
|
- [x] `list_edge_functions`
|
|
- [x] `get_edge_function_details`
|
|
- [-] `deploy_edge_function` (Skipped - requires filesystem access outside MCP scope)
|
|
- [x] **Additional Tools (from Official Supabase MCP)**
|
|
- [x] `get_advisors` (security/performance advisory notices via Splinter)
|
|
- [x] `get_storage_config` (storage bucket configuration)
|
|
- [x] `update_storage_config` (update storage bucket settings)
|
|
- [x] Add Basic README.md
|
|
- [x] Test Infrastructure
|
|
- [x] Bun test runner setup
|
|
- [x] Utils tests
|
|
- [x] Type definition tests
|