npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

supabase-self-hosted-mcp

v2.0.0

Published

A comprehensive MCP server for Supabase - works with self-hosted instances (Coolify, Docker) and Supabase Cloud

Readme

Supabase Self-Hosted MCP

npm version License: MIT

Supabase için kapsamlı Model Context Protocol (MCP) sunucusu. Self-hosted Supabase (Coolify, Docker) ve Supabase Cloud ile çalışır.

Claude Code, Cursor veya herhangi bir MCP uyumlu istemci üzerinden veritabanı yönetimi için 10 kategoride 53 araç.

English Documentation / İngilizce Dokümantasyon

Özellikler

Veritabanı İçgörüsü (8 araç)

  • Boyut ve satır sayılarıyla tablo listesi
  • Tip, constraint ve varsayılan değerlerle kolon detayları
  • Index'ler ve kullanım istatistikleri
  • Foreign key ilişkileri
  • View'lar, fonksiyonlar, trigger'lar
  • Enum tipleri

Güvenlik (6 araç)

  • RLS policy listesi
  • Tablolarda RLS durumu kontrolü
  • RLS policy oluşturma/silme
  • RLS etkinleştirme/devre dışı bırakma
  • Tablo izinlerini analiz etme

Query İşlemleri (8 araç)

  • Filter, sıralama, sayfalama ile SELECT
  • INSERT (tekli/toplu)
  • Zorunlu filtreli UPDATE
  • Zorunlu filtreli DELETE
  • Raw SQL çalıştırma
  • RPC fonksiyon çağrıları
  • Çoklu sorgu transaction'ları
  • Query çalıştırma planları (EXPLAIN)

Schema Yönetimi (4 araç)

  • Constraint'lerle CREATE TABLE
  • ALTER TABLE (kolon ekleme/silme/değiştirme)
  • DROP TABLE
  • CREATE INDEX

Storage (8 araç)

  • Bucket listele/oluştur
  • Dosya listele/sil
  • Public URL al
  • Transform seçenekleriyle signed URL oluştur
  • Dosya taşı/kopyala

Auth (6 araç)

  • Sayfalama ile kullanıcı listesi
  • Kullanıcı detayları
  • Kullanıcı oluştur/güncelle/sil
  • E-posta daveti gönder

Realtime (4 araç)

  • PostgreSQL publication listesi
  • Publication tablo listesi
  • Tablolar için realtime etkinleştir/devre dışı bırak

Edge Functions (1 araç)

  • Edge function çağırma

Optimizasyon (6 araç)

  • Normalizasyon analizi
  • Kullanılmayan index tespiti
  • Index önerileri
  • Tekrarlı veri tespiti
  • Tablo bloat analizi
  • Yavaş sorgu analizi

Sağlık (2 araç)

  • Bağlantı istatistikleri
  • Yavaş sorgu izleme

Kurulum

Seçenek 1: npm (Önerilen)

npx supabase-self-hosted-mcp

Veya global olarak yükle:

npm install -g supabase-self-hosted-mcp
supabase-self-hosted-mcp

Seçenek 2: Repository'yi Klonla

git clone https://github.com/abdullah017/supabase-self-hosted-toolkit.git
cd supabase-self-hosted-toolkit
npm install
npm run build

Yapılandırma

Environment Variable'ları

# Zorunlu
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_KEY=your-service-role-key

# İsteğe bağlı (gelişmiş özellikler için)
POSTGRES_URL=postgresql://postgres:password@host:5432/postgres
# veya
DATABASE_URL=postgresql://postgres:password@host:5432/postgres

# İsteğe bağlı ayarlar
LOG_LEVEL=info              # debug, info, warn, error
MAX_POOL_SIZE=10           # PostgreSQL bağlantı havuzu boyutu
CONNECTION_TIMEOUT=30000   # Bağlantı zaman aşımı (ms)

Kimlik Bilgilerini Alma

Supabase Cloud

  1. Supabase Dashboard'a git
  2. Projenizi seçin
  3. Settings → API
  4. Project URL ve service_role key'i kopyalayın

Self-Hosted (Coolify/Docker)

  1. SUPABASE_URL: Supabase URL'niz (örn. https://supabase.yourdomain.com)
  2. SUPABASE_SERVICE_KEY: Environment variable'larda SERVICE_ROLE_KEY olarak bulunur
  3. POSTGRES_URL: postgresql://postgres:[email protected]:5432/postgres

Claude Code Entegrasyonu

Global Yapılandırma

~/.claude/claude_code_config.json dosyasını düzenle:

{
  "mcpServers": {
    "supabase": {
      "command": "npx",
      "args": ["-y", "supabase-self-hosted-mcp"],
      "env": {
        "SUPABASE_URL": "https://your-project.supabase.co",
        "SUPABASE_SERVICE_KEY": "your-service-role-key",
        "POSTGRES_URL": "postgresql://postgres:password@host:5432/postgres"
      }
    }
  }
}

Proje Bazlı Yapılandırma

Proje kök dizininde .claude/mcp.json oluştur:

{
  "mcpServers": {
    "supabase": {
      "command": "npx",
      "args": ["-y", "supabase-self-hosted-mcp"],
      "env": {
        "SUPABASE_URL": "${SUPABASE_URL}",
        "SUPABASE_SERVICE_KEY": "${SUPABASE_SERVICE_KEY}",
        "POSTGRES_URL": "${POSTGRES_URL}"
      }
    }
  }
}

Ardından .env dosyanıza değerleri ekleyin.

Cursor Entegrasyonu

Cursor ayarlarına ekleyin (Settings → MCP):

{
  "supabase": {
    "command": "npx",
    "args": ["-y", "supabase-mcp"],
    "env": {
      "SUPABASE_URL": "your-url",
      "SUPABASE_SERVICE_KEY": "your-key"
    }
  }
}

Kullanım Örnekleri

Veritabanı Yapısı

"Veritabanındaki tüm tabloları listele"
"Users tablosunun yapısını göster"
"Foreign key ilişkileri nelerdir?"
"Hangi tablolarda RLS etkin?"

Veri Sorgulama

"Users'dan son 10 kaydı getir"
"Products tablosuna yeni ürün ekle"
"id = 123 olan kullanıcının durumunu güncelle"
"SELECT * FROM orders WHERE status = 'pending' sorgusunu çalıştır"

Optimizasyon

"Veritabanındaki normalizasyon sorunlarını analiz et"
"Kullanılmayan index'leri bul"
"Orders tablosu için index öner"
"Yavaş sorguları göster"
"Tablo bloat kontrolü yap"

Güvenlik

"Users tablosu için kullanıcıların sadece kendi verilerini görmesine izin veren bir RLS policy oluştur"
"Tüm tablolardaki izinleri analiz et"
"Posts tablosunda RLS'i etkinleştir"

Schema Yönetimi

"Categories adında yeni bir tablo oluştur"
"Users tablosuna phone kolonu ekle"
"Orders.user_id üzerinde index oluştur"

Storage

"Tüm storage bucket'larını listele"
"Documents bucket'ındaki file.pdf için signed URL al"
"image.png'yi archive klasörüne taşı"

Auth

"Tüm kullanıcıları listele"
"[email protected] e-posta adresiyle yeni kullanıcı oluştur"
"[email protected] adresini projeye davet et"

Realtime

"Messages tablosu için realtime'ı etkinleştir"
"Realtime etkin olan tabloları listele"

Araç Referansı

| Kategori | Araçlar | |----------|---------| | İçgörü | list_tables, get_table_columns, get_indexes, get_foreign_keys, get_views, get_functions, get_triggers, get_enums | | Güvenlik | list_rls_policies, check_rls_status, create_rls_policy, drop_rls_policy, toggle_rls, analyze_permissions | | Query | query, insert, update, delete, raw_sql, rpc, transaction, explain_query | | Schema | create_table, alter_table, drop_table, create_index | | Storage | list_buckets, create_bucket, list_files, delete_file, get_public_url, get_signed_url, move_file, copy_file | | Auth | list_users, get_user, delete_user, create_user, update_user, invite_user | | Realtime | list_publications, list_publication_tables, enable_realtime, disable_realtime | | Edge Functions | invoke_edge_function | | Optimizasyon | analyze_normalization, get_unused_indexes, suggest_indexes, find_duplicate_data, get_table_bloat, get_slow_queries | | Sağlık | get_connection_stats, get_slow_queries |

Güvenlik Notları

  1. Service Role Key: Bu anahtar admin yetkilerine sahiptir. Güvenli tutun ve client-side kodda asla açığa çıkarmayın.
  2. Raw SQL: SQL injection'ı önlemek için mümkün olduğunca parametreli sorgular kullanın.
  3. RLS: Kullanıcı verisi içeren tablolarda her zaman RLS'i etkinleştirin.
  4. : MCP sunucusu sadece yerel olarak veya güvenli bir ortamda çalışmalıdır.

PostgreSQL Özellikleri

Bazı özellikler doğrudan PostgreSQL bağlantısı gerektirir (POSTGRES_URL ile):

  • Raw SQL çalıştırma
  • Transaction desteği
  • Query çalıştırma planları
  • Normalizasyon analizi
  • Yavaş sorgu analizi
  • Tablo bloat tespiti
  • Realtime yönetimi

Sorun Giderme

"POSTGRES_URL is required"

Bazı gelişmiş özellikler doğrudan PostgreSQL bağlantısı gerektirir. Environment'a POSTGRES_URL veya DATABASE_URL ekleyin.

Connection refused

  • PostgreSQL'in ağınızdan erişilebilir olduğundan emin olun
  • Firewall kurallarını kontrol edin
  • Bağlantı string formatını doğrulayın

Permission denied

  • Service role key'in doğru olduğunu doğrulayın
  • PostgreSQL kullanıcısının yeterli yetkiye sahip olduğundan emin olun

Claude Code'da MCP yüklenmiyor

  • Config dosyalarındaki JSON sözdizimini kontrol edin
  • MCP sunucusuna giden yolu doğrulayın
  • Claude Code loglarını kontrol edin: ~/.claude/logs/

Katkıda Bulunma

Katkılarınızı bekliyoruz! Detaylar için Katkı Rehberi'ni okuyun.

Lisans

MIT Lisansı - detaylar için LICENSE dosyasına bakın.

İlgili Projeler