Supabase MCP Server

by alexander-zuev
Verified
Apache 2.0
607
  • Apple
  • Linux

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides tools for executing PostgreSQL queries against Supabase databases with risk assessment, parsing, and validation. Includes automatic migration versioning for database-altering operations.

  • Enables safely interacting with Supabase databases, executing SQL queries, managing database schemas, accessing the Supabase Management API, and using the Supabase Auth Admin SDK for user management. Includes safety controls for different risk levels of operations.

쿼리 | Supabase용 MCP 서버

목차

✨ 주요 특징

  • 💻 stdio 프로토콜을 지원하는 Cursor, Windsurf, Cline 및 기타 MCP 클라이언트와 호환됩니다.
  • 🔐 SQL 쿼리 실행의 읽기 전용 및 읽기-쓰기 모드를 제어합니다.
  • 🔍 위험 수준 평가를 통한 런타임 SQL 쿼리 검증
  • 🛡️ SQL 작업을 위한 3단계 안전 시스템: 안전, 쓰기, 파괴
  • 🔄 직접 및 풀링된 데이터베이스 연결 모두에 대한 강력한 트랜잭션 처리
  • 📝 데이터베이스 스키마 변경 사항의 자동 버전 관리
  • 💻 Supabase 관리 API를 사용하여 Supabase 프로젝트를 관리하세요
  • 🧑‍💻 Python SDK를 통해 Supabase Auth Admin 메서드를 사용하여 사용자를 관리하세요
  • 🔨 Cursor & Windsurf가 MCP와 더욱 효과적으로 작동하도록 돕는 사전 구축 도구
  • 📦 패키지 관리자(uv, pipx 등)를 통한 매우 간단한 설치 및 설정

시작하기

필수 조건

서버를 설치하려면 시스템에 다음이 필요합니다.

  • 파이썬 3.12+

uv 를 통해 설치할 계획이라면, uv가 설치되어 있는지 확인하세요.

PostgreSQL 설치

MCP 서버 자체에는 더 이상 PostgreSQL 설치가 필요하지 않습니다. 이제 PostgreSQL 개발 라이브러리에 의존하지 않는 asyncpg를 사용하기 때문입니다.

하지만 로컬 Supabase 인스턴스를 실행하는 경우에는 여전히 PostgreSQL이 필요합니다.

맥OS

지엑스피1

윈도우

1단계. 설치

v0.2.0부터 패키지 설치 기능을 지원하게 되었습니다. 선호하는 Python 패키지 관리자를 사용하여 서버를 설치할 수 있습니다.

# if pipx is installed (recommended) pipx install supabase-mcp-server # if uv is installed uv pip install supabase-mcp-server

pipx 각 패키지에 대해 격리된 환경을 생성하므로 권장됩니다.

저장소를 복제하고 루트 디렉토리에서 pipx install -e . 실행하여 서버를 수동으로 설치할 수도 있습니다.

소스에서 설치

예를 들어 로컬 개발을 위해 소스에서 설치하려는 경우:

uv venv # On Mac source .venv/bin/activate # On Windows .venv\Scripts\activate # Install package in editable mode uv pip install -e .

Smithery.ai를 통해 설치

Smithery.ai를 사용하여 이 MCP 서버에 연결하는 방법에 대한 전체 지침은 여기에서 확인할 수 있습니다.

2단계. 구성

Supabase MCP 서버를 사용하려면 Supabase 데이터베이스 연결, 관리 API 접근, 그리고 Auth Admin SDK 사용을 위한 구성이 필요합니다. 이 섹션에서는 사용 가능한 모든 구성 옵션과 설정 방법을 설명합니다.

🔑 중요 : v0.4 MCP 서버부터는 이 MCP 서버를 사용하려면 API 키가 필요하며, 이 키는 thequery.dev 에서 무료로 받을 수 있습니다.

환경 변수

서버는 다음과 같은 환경 변수를 사용합니다.

변하기 쉬운필수의기본설명
SUPABASE_PROJECT_REF127.0.0.1:54322Supabase 프로젝트 참조 ID(또는 로컬 호스트:포트)
SUPABASE_DB_PASSWORDpostgres귀하의 데이터베이스 비밀번호
SUPABASE_REGION*us-east-1Supabase 프로젝트가 호스팅되는 AWS 지역
SUPABASE_ACCESS_TOKEN아니요없음Supabase 관리 API에 대한 개인 액세스 토큰
SUPABASE_SERVICE_ROLE_KEY아니요없음Auth Admin SDK의 서비스 역할 키
QUERY_API_KEY없음thequery.dev의 API 키(모든 작업에 필요)

참고 : 기본값은 로컬 Supabase 개발용으로 구성되어 있습니다. 원격 Supabase 프로젝트의 경우 SUPABASE_PROJECT_REFSUPABASE_DB_PASSWORD 값을 직접 입력해야 합니다.

🚨 중요 구성 참고 : 원격 Supabase 프로젝트의 경우, SUPABASE_REGION 사용하여 프로젝트가 호스팅되는 정확한 리전을 지정해야 합니다. "테넌트 또는 사용자를 찾을 수 없습니다" 오류가 발생하는 경우, 리전 설정이 프로젝트의 실제 리전과 일치하지 않기 때문일 가능성이 높습니다. Supabase 대시보드의 프로젝트 설정에서 프로젝트의 리전을 확인할 수 있습니다.

연결 유형

데이터베이스 연결
  • 서버는 트랜잭션 풀러 엔드포인트를 사용하여 Supabase PostgreSQL 데이터베이스에 연결합니다.
  • 로컬 개발에서는 127.0.0.1:54322 에 직접 연결을 사용합니다.
  • 원격 프로젝트는 postgresql://postgres.[project_ref]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres 형식을 사용합니다.

⚠️ 중요 : 세션 풀링 연결은 지원되지 않습니다. 이 서버는 MCP 서버 아키텍처와의 호환성 향상을 위해 트랜잭션 풀링만 사용합니다.

관리 API 연결
  • SUPABASE_ACCESS_TOKEN 설정해야 합니다.
  • https://api.supabase.com 에서 Supabase 관리 API에 연결합니다.
  • 원격 Supabase 프로젝트에서만 작동합니다(로컬 개발 아님)
인증 관리자 SDK 연결
  • SUPABASE_SERVICE_ROLE_KEY 설정해야 합니다.
  • 로컬 개발을 위해 http://127.0.0.1:54321 에 연결합니다.
  • 원격 프로젝트의 경우 https://[project_ref].supabase.co 에 연결합니다.

구성 방법

서버는 다음 순서로 구성을 찾습니다(우선순위가 가장 높은 것부터 가장 낮은 것까지).

  1. 환경 변수 : 사용자 환경에서 직접 설정된 값
  2. 로컬 .env 파일 : 현재 작업 디렉토리에 있는 .env 파일(소스에서 실행할 때만 작동)
  3. 글로벌 구성 파일 :
    • 윈도우: %APPDATA%\supabase-mcp\.env
    • macOS/Linux: ~/.config/supabase-mcp/.env
  4. 기본 설정 : 로컬 개발 기본값(다른 구성을 찾을 수 없는 경우)

⚠️ 중요 : pipx 또는 uv를 통해 설치된 패키지를 사용할 경우, 프로젝트 디렉터리의 로컬 .env 파일은 감지되지 않습니다 . 환경 변수 또는 전역 설정 파일을 사용해야 합니다.

구성 설정

옵션 1: 클라이언트별 구성(권장)

MCP 클라이언트 구성에서 직접 환경 변수를 설정하세요(3단계의 클라이언트별 설정 지침 참조). 대부분의 MCP 클라이언트는 이 방식을 지원하므로 클라이언트 설정과 구성을 그대로 유지할 수 있습니다.

옵션 2: 글로벌 구성

모든 MCP 서버 인스턴스에 사용될 글로벌 .env 구성 파일을 만듭니다.

# Create config directory # On macOS/Linux mkdir -p ~/.config/supabase-mcp # On Windows (PowerShell) mkdir -Force "$env:APPDATA\supabase-mcp" # Create and edit .env file # On macOS/Linux nano ~/.config/supabase-mcp/.env # On Windows (PowerShell) notepad "$env:APPDATA\supabase-mcp\.env"

구성 값을 파일에 추가합니다.

QUERY_API_KEY=your-api-key SUPABASE_PROJECT_REF=your-project-ref SUPABASE_DB_PASSWORD=your-db-password SUPABASE_REGION=us-east-1 SUPABASE_ACCESS_TOKEN=your-access-token SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
옵션 3: 프로젝트별 구성(소스 설치 전용)

패키지를 통해서가 아니라 소스에서 서버를 실행하는 경우, 위와 같은 형식으로 프로젝트 디렉토리에 .env 파일을 만들 수 있습니다.

Supabase 프로젝트 정보 찾기

  • 프로젝트 참조 : Supabase 프로젝트 URL에서 찾을 수 있습니다: https://supabase.com/dashboard/project/<project-ref>
  • 데이터베이스 비밀번호 : 프로젝트 생성 중 설정하거나 프로젝트 설정 → 데이터베이스에서 찾을 수 있습니다.
  • 액세스 토큰 : https://supabase.com/dashboard/account/tokens 에서 생성
  • 서비스 역할 키 : 프로젝트 설정 → API → 프로젝트 API 키에서 찾을 수 있습니다.

지원되는 지역

이 서버는 모든 Supabase 지역을 지원합니다.

  • us-west-1 - 미국 서부(북부 캘리포니아)
  • us-east-1 - 미국 동부(버지니아 북부) - 기본값
  • us-east-2 - 미국 동부(오하이오)
  • ca-central-1 - 캐나다(중부)
  • eu-west-1 - 서부 EU(아일랜드)
  • eu-west-2 - 서유럽(런던)
  • eu-west-3 - 서부 EU(파리)
  • eu-central-1 - 중앙 EU(프랑크푸르트)
  • eu-central-2 - 중부 유럽(취리히)
  • eu-north-1 - 북부 EU(스톡홀름)
  • ap-south-1 - 남아시아(뭄바이)
  • ap-southeast-1 - 동남아시아(싱가포르)
  • ap-northeast-1 - 동북아시아(도쿄)
  • ap-northeast-2 - 동북아시아(서울)
  • ap-southeast-2 - 오세아니아(시드니)
  • sa-east-1 - 남아메리카(상파울루)

제한 사항

  • 자체 호스팅 지원 없음 : 서버는 공식 Supabase.com 호스팅 프로젝트 및 로컬 개발만 지원합니다.
  • 연결 문자열 지원 없음 : 사용자 지정 연결 문자열이 지원되지 않습니다.
  • 세션 풀링 없음 : 데이터베이스 연결에 대해 트랜잭션 풀링만 지원됩니다.
  • API 및 SDK 기능 : 관리 API 및 인증 관리 SDK 기능은 로컬 개발이 아닌 원격 Supabase 프로젝트에서만 작동합니다.

3단계. 사용법

일반적으로 stdio 프로토콜을 지원하는 모든 MCP 클라이언트는 이 MCP 서버와 호환됩니다. 이 서버는 다음 클라이언트와 호환되도록 명시적으로 테스트되었습니다.

  • 커서
  • 윈드서핑
  • 클라인
  • 클로드 데스크탑

또한, smithery.ai를 사용하면 위에 언급한 클라이언트를 포함하여 여러 클라이언트를 이 서버에 설치할 수도 있습니다.

아래 가이드에 따라 클라이언트에 MCP 서버를 설치하세요.

커서

설정 -> 기능 -> MCP 서버로 이동하여 다음 구성으로 새 서버를 추가합니다.

# can be set to any name name: supabase type: command # if you installed with pipx command: supabase-mcp-server # if you installed with uv command: uv run supabase-mcp-server # if the above doesn't work, use the full path (recommended) command: /full/path/to/supabase-mcp-server # Find with 'which supabase-mcp-server' (macOS/Linux) or 'where supabase-mcp-server' (Windows)

구성이 올바르면 녹색 점 표시기와 서버에서 노출된 도구 수가 표시됩니다.

윈드서핑

Cascade로 이동 -> 망치 아이콘을 클릭 -> 구성 -> 구성을 입력합니다.

{ "mcpServers": { "supabase": { "command": "/Users/username/.local/bin/supabase-mcp-server", // update path "env": { "QUERY_API_KEY": "your-api-key", // Required - get your API key at thequery.dev "SUPABASE_PROJECT_REF": "your-project-ref", "SUPABASE_DB_PASSWORD": "your-db-password", "SUPABASE_REGION": "us-east-1", // optional, defaults to us-east-1 "SUPABASE_ACCESS_TOKEN": "your-access-token", // optional, for management API "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key" // optional, for Auth Admin SDK } } } }

구성이 올바르면 사용 가능한 서버 목록에서 녹색 점 표시기와 클릭 가능한 supabase 서버를 볼 수 있습니다.

클로드 데스크탑

Claude Desktop은 JSON 구성을 통해 MCP 서버도 지원합니다. Supabase MCP 서버를 설정하려면 다음 단계를 따르세요.

  1. 실행 파일의 전체 경로를 찾으세요 (이 단계는 매우 중요합니다).
    # On macOS/Linux which supabase-mcp-server # On Windows where supabase-mcp-server
    반환된 전체 경로를 복사합니다(예: /Users/username/.local/bin/supabase-mcp-server ).
  2. Claude Desktop에서 MCP 서버를 구성하세요 .
    • 클로드 데스크톱 열기
    • 설정 → 개발자 -> MCP 서버 구성 편집으로 이동하세요.
    • 다음 JSON으로 새로운 구성을 추가합니다.
    { "mcpServers": { "supabase": { "command": "/full/path/to/supabase-mcp-server", // Replace with the actual path from step 1 "env": { "QUERY_API_KEY": "your-api-key", // Required - get your API key at thequery.dev "SUPABASE_PROJECT_REF": "your-project-ref", "SUPABASE_DB_PASSWORD": "your-db-password", "SUPABASE_REGION": "us-east-1", // optional, defaults to us-east-1 "SUPABASE_ACCESS_TOKEN": "your-access-token", // optional, for management API "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key" // optional, for Auth Admin SDK } } } }

⚠️ 중요 : Windsurf 및 Cursor와 달리 Claude Desktop은 실행 파일의 전체 절대 경로를 요구합니다. 명령 이름( supabase-mcp-server )만 사용하면 "spawn ENOENT" 오류가 발생합니다.

구성이 올바르면 Claude Desktop에 Supabase MCP 서버가 사용 가능한 것으로 표시됩니다.

클라인

Cline은 유사한 JSON 구성을 통해 MCP 서버도 지원합니다. Supabase MCP 서버를 설정하려면 다음 단계를 따르세요.

  1. 실행 파일의 전체 경로를 찾으세요 (이 단계는 매우 중요합니다).
    # On macOS/Linux which supabase-mcp-server # On Windows where supabase-mcp-server
    반환된 전체 경로를 복사합니다(예: /Users/username/.local/bin/supabase-mcp-server ).
  2. Cline에서 MCP 서버를 구성하세요 .
    • VS Code에서 Cline 열기
    • Cline 사이드바에서 "MCP 서버" 탭을 클릭하세요.
    • "MCP 서버 구성"을 클릭하세요.
    • 이렇게 하면 cline_mcp_settings.json 파일이 열립니다.
    • 다음 구성을 추가합니다.
    { "mcpServers": { "supabase": { "command": "/full/path/to/supabase-mcp-server", // Replace with the actual path from step 1 "env": { "QUERY_API_KEY": "your-api-key", // Required - get your API key at thequery.dev "SUPABASE_PROJECT_REF": "your-project-ref", "SUPABASE_DB_PASSWORD": "your-db-password", "SUPABASE_REGION": "us-east-1", // optional, defaults to us-east-1 "SUPABASE_ACCESS_TOKEN": "your-access-token", // optional, for management API "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key" // optional, for Auth Admin SDK } } } }

구성이 올바르면 Cline MCP 서버 목록에서 Supabase MCP 서버 옆에 녹색 표시기가 표시되고, 패널 하단에 "supabase MCP 서버 연결됨"을 확인하는 메시지가 표시됩니다.

문제 해결

도움이 될 만한 몇 가지 팁과 요령은 다음과 같습니다.

  • 디버그 설치 - 터미널에서 supabase-mcp-server 직접 실행하여 제대로 작동하는지 확인하세요. 작동하지 않으면 설치에 문제가 있을 수 있습니다.
  • MCP 서버 구성 - 위 단계가 제대로 작동하면 서버가 올바르게 설치 및 구성된 것입니다. 올바른 명령을 입력하면 IDE에서 연결할 수 있습니다. 서버 실행 파일의 경로를 정확하게 입력해야 합니다.
  • "도구를 찾을 수 없음" 오류 - 패키지가 설치되었는데도 커서에 "클라이언트가 닫혔습니다. 도구를 사용할 수 없습니다"라는 메시지가 표시되는 경우:
    • which supabase-mcp-server (macOS/Linux) 또는 where supabase-mcp-server (Windows)를 실행하여 실행 파일의 전체 경로를 찾으세요.
    • supabase-mcp-server 대신 MCP 서버 구성에서 전체 경로를 사용하세요.
    • 예: /Users/username/.local/bin/supabase-mcp-server 또는 C:\Users\username\.local\bin\supabase-mcp-server.exe
  • 환경 변수 - 올바른 데이터베이스에 연결하려면 mcp_config.json 이나 글로벌 구성 디렉토리(macOS/Linux에서는 ~/.config/supabase-mcp/.env , Windows에서는 %APPDATA%\supabase-mcp\.env )에 있는 .env 파일에 환경 변수를 설정해야 합니다.
  • 로그 액세스 - MCP 서버는 자세한 로그를 파일에 기록합니다.
    • 로그 파일 위치:
      • macOS/Linux: ~/.local/share/supabase-mcp/mcp_server.log
      • Windows: %USERPROFILE%\.local\share\supabase-mcp\mcp_server.log
    • 로그에는 연결 상태, 구성 세부 정보 및 작업 결과가 포함됩니다.
    • 텍스트 편집기나 터미널 명령을 사용하여 로그를 확인하세요.
      # On macOS/Linux cat ~/.local/share/supabase-mcp/mcp_server.log # On Windows (PowerShell) Get-Content "$env:USERPROFILE\.local\share\supabase-mcp\mcp_server.log"

문제가 발생하거나 위의 지침이 올바르지 않은 경우 문제를 제기해 주세요.

MCP 검사관

MCP 서버 문제 디버깅에 매우 유용한 도구는 MCP Inspector입니다. 소스에서 설치한 경우, 프로젝트 저장소에서 supabase-mcp-inspector 실행하면 Inspector 인스턴스가 실행됩니다. 로그와 함께 서버에서 발생하는 상황을 전체적으로 파악할 수 있습니다.

📝 패키지에서 설치한 경우 supabase-mcp-inspector 실행하면 제대로 작동하지 않습니다. 다음 릴리스에서 검증하고 수정하겠습니다.

기능 개요

데이터베이스 쿼리 도구

v0.3+ 서버는 내장된 안전 제어 기능을 통해 포괄적인 데이터베이스 관리 기능을 제공합니다.

  • SQL 쿼리 실행 : 위험 평가를 통해 PostgreSQL 쿼리 실행
    • 3단계 안전 시스템 :
      • safe : 읽기 전용 작업(SELECT) - 항상 허용됨
      • write : 데이터 수정(INSERT, UPDATE, DELETE) - 안전하지 않은 모드가 필요합니다.
      • destructive : 스키마 변경(DROP, CREATE) - 안전하지 않은 모드 + 확인이 필요합니다.
  • SQL 구문 분석 및 검증 :
    • 정확한 분석을 위해 PostgreSQL의 파서(pglast)를 사용하고 안전 요구 사항에 대한 명확한 피드백을 제공합니다.
  • 자동 마이그레이션 버전 관리 :
    • 데이터베이스 변경 작업은 자동으로 버전이 지정됩니다.
    • 작업 유형 및 대상을 기반으로 설명적 이름을 생성합니다.
  • 안전 제어 :
    • 기본 SAFE 모드에서는 읽기 전용 작업만 허용됩니다.
    • 모든 명령문은 asyncpg 통해 트랜잭션 모드에서 실행됩니다.
    • 고위험 작업에 대한 2단계 확인
  • 사용 가능한 도구 :
    • get_schemas : 크기와 테이블 수를 포함한 스키마를 나열합니다.
    • get_tables : 메타데이터가 포함된 테이블, 외부 테이블 및 뷰를 나열합니다.
    • get_table_schema : 자세한 테이블 구조(열, 키, 관계)를 가져옵니다.
    • execute_postgresql : 데이터베이스에 대해 SQL 문을 실행합니다.
    • confirm_destructive_operation : 확인 후 고위험 작업을 실행합니다.
    • retrieve_migrations : 필터링 및 페이지 매김 옵션을 사용하여 마이그레이션을 가져옵니다.
    • live_dangerously : 안전 모드와 안전하지 않은 모드 사이를 전환합니다.

관리 API 도구

v0.3.0 서버는 내장된 안전 제어 기능을 통해 Supabase 관리 API에 대한 안전한 액세스를 제공합니다.

  • 사용 가능한 도구 :
    • send_management_api_request : 프로젝트 참조 자동 주입을 통해 Supabase 관리 API에 임의의 요청을 보냅니다.
    • get_management_api_spec : 안전 정보가 포함된 강화된 API 사양을 가져옵니다.
      • 도메인별, 특정 경로/방법별 또는 모든 경로별 등 다양한 쿼리 모드를 지원합니다.
      • 각 종료점에 대한 위험 평가 정보가 포함되어 있습니다.
      • 자세한 매개변수 요구 사항 및 응답 형식을 제공합니다.
      • LLM이 Supabase 관리 API의 전체 기능을 이해하도록 돕습니다.
    • get_management_api_safety_rules : 사람이 읽을 수 있는 설명과 함께 모든 안전 규칙을 가져옵니다.
    • live_dangerously : 안전 및 안전하지 않은 작업 모드 간을 전환합니다.
  • 안전 제어 :
    • 일관된 위험 관리를 위해 데이터베이스 작업과 동일한 안전 관리자를 사용합니다.
    • 위험 수준별로 분류된 작업:
      • safe : 읽기 전용 작업(GET) - 항상 허용됨
      • unsafe : 상태 변경 작업(POST, PUT, PATCH, DELETE) - 안전하지 않음 모드가 필요합니다.
      • blocked : 파괴적인 작업(프로젝트 삭제 등) - 절대 허용되지 않음
    • 기본 안전 모드는 실수로 상태가 변경되는 것을 방지합니다.
    • 정확한 안전 규칙을 위한 경로 기반 패턴 매칭

참고 : 관리 API 도구는 원격 Supabase 인스턴스에서만 작동하며 로컬 Supabase 개발 설정과 호환되지 않습니다.

인증 관리 도구

MCP 서버에 Python SDK 메서드 지원을 추가할 계획이었습니다. 테스트 사용자를 수동으로 생성하는 경우가 많았고, 이로 인해 오류가 발생하고 시간이 많이 소요되었기 때문에, 검토 후 Auth 관리자 메서드 지원만 추가하기로 결정했습니다. 이제 Cursor에 테스트 사용자를 생성해 달라고 요청하기만 하면 됩니다. Auth 관리자 SDK 메서드의 전체 기능을 확인하려면 해당 메서드의 전체 문서를 확인하세요.

v0.3.6 서버는 Python SDK를 통해 Supabase Auth Admin 메서드에 직접 액세스할 수 있도록 지원합니다.

  • 다음 도구가 포함되어 있습니다.
    • get_auth_admin_methods_spec 사용하여 사용 가능한 모든 인증 관리 방법에 대한 문서를 검색합니다.
    • call_auth_admin_method 하여 적절한 매개변수 처리를 통해 Auth Admin 메서드를 직접 호출합니다.
  • 지원되는 방법:
    • get_user_by_id : ID로 사용자를 검색합니다.
    • list_users : 페이지 번호가 있는 모든 사용자 나열
    • create_user : 새로운 사용자를 생성합니다
    • delete_user : ID로 사용자를 삭제합니다.
    • invite_user_by_email : 사용자의 이메일로 초대 링크를 보냅니다.
    • generate_link : 다양한 인증 목적으로 이메일 링크를 생성합니다.
    • update_user_by_id : ID로 사용자 속성 업데이트
    • delete_factor : 사용자의 요소를 삭제합니다(현재 SDK에 구현되어 있지 않음)

원시 SQL 쿼리 대신 Auth Admin SDK를 사용하는 이유는 무엇입니까?

Auth Admin SDK는 직접적인 SQL 조작에 비해 여러 가지 주요 이점을 제공합니다.

  • 기능 : SQL만으로는 불가능한 작업(초대, 매직 링크, MFA)을 가능하게 합니다.
  • 정확도 : 인증 스키마에 대한 원시 SQL 쿼리를 생성하고 실행하는 것보다 더 안정적입니다.
  • 단순성 : 적절한 검증 및 오류 처리를 통해 명확한 방법을 제공합니다.
    • 응답 형식:
      • 모든 메서드는 원시 사전 대신 구조화된 Python 객체를 반환합니다.
      • 객체 속성은 점 표기법을 사용하여 액세스할 수 있습니다(예: user["id"] 대신 user.id ).
    • 예외 사례 및 제한 사항:
      • UUID 유효성 검사: 많은 메서드에서 사용자 ID에 대한 유효한 UUID 형식이 필요하며 특정 유효성 검사 오류가 반환됩니다.
      • 이메일 구성: invite_user_by_emailgenerate_link 와 같은 방법을 사용하려면 Supabase 프로젝트에서 이메일 전송을 구성해야 합니다.
      • 링크 유형: 링크를 생성할 때, 다양한 링크 유형에는 각기 다른 요구 사항이 있습니다.
        • signup 링크는 사용자가 존재하지 않아도 됩니다.
        • magiclinkrecovery 링크를 사용하려면 사용자가 시스템에 이미 존재해야 합니다.
      • 오류 처리: 서버는 Supabase API에서 자세한 오류 메시지를 제공하며 이는 대시보드 인터페이스와 다를 수 있습니다.
      • 메서드 가용성: delete_factor 와 같은 일부 메서드는 API에 노출되어 있지만 SDK에는 완전히 구현되어 있지 않습니다.

로그 및 분석

이 서버는 Supabase 로그 및 분석 데이터에 대한 액세스를 제공하여 애플리케이션을 더 쉽게 모니터링하고 문제를 해결할 수 있도록 해줍니다.

  • 사용 가능한 도구 : retrieve_logs - 모든 Supabase 서비스의 로그에 액세스
  • 로그 수집 :
    • postgres : 데이터베이스 서버 로그
    • api_gateway : API 게이트웨이 요청
    • auth : 인증 이벤트
    • postgrest : RESTful API 서비스 로그
    • pooler : 연결 풀링 로그
    • storage : 객체 저장 작업
    • realtime : WebSocket 구독 로그
    • edge_functions : 서버리스 함수 실행
    • cron : 예약된 작업 로그
    • pgbouncer : 연결 풀러 로그
  • 기능 : 시간별 필터링, 텍스트 검색, 필드 필터 적용 또는 사용자 정의 SQL 쿼리 사용

복잡한 쿼리를 작성하거나 인터페이스를 전환하지 않고도 Supabase 스택 전체에서 디버깅을 간소화합니다.

데이터베이스 변경 사항의 자동 버전 관리

"큰 힘에는 큰 책임이 따른다." execute_postgresql 도구와 live_dangerously 라는 이름의 도구를 함께 사용하면 Supabase 데이터베이스를 강력하고 간편하게 관리할 수 있을 뿐만 아니라, 채팅 메시지 한 통으로 테이블을 삭제하거나 수정할 수도 있습니다. 되돌릴 수 없는 변경 사항의 위험을 줄이기 위해 v0.3.8부터 서버는 다음을 지원합니다.

  • 데이터베이스에서 실행되는 모든 쓰기 및 파괴적 SQL 작업에 대한 마이그레이션 스크립트 자동 생성
  • 모든 쿼리가 다음과 같이 분류되는 쿼리 실행의 개선된 안전 모드:
    • safe 유형: 항상 허용됩니다. 모든 읽기 전용 작업을 포함합니다.
    • write 유형: 사용자가 write 모드를 활성화해야 합니다.
    • destructive 유형: 사용자가 write 모드를 활성화해야 하며 도구를 자동으로 실행하지 않는 클라이언트의 경우 쿼리 실행을 2단계로 확인해야 합니다.

범용 안전 모드

v0.3.8부터 안전 모드는 모든 서비스(데이터베이스, API, SDK)에서 범용 안전 관리자를 사용하여 표준화되었습니다. 이를 통해 일관된 위험 관리와 전체 MCP 서버에서 안전 설정을 제어할 수 있는 통합 인터페이스가 제공됩니다.

모든 작업(SQL 쿼리, API 요청, SDK 메서드)은 위험 수준에 따라 분류됩니다.

  • Low 위험: 데이터나 구조를 수정하지 않는 읽기 전용 작업(SELECT 쿼리, GET API 요청)
  • Medium 위험: 데이터는 수정하지만 구조는 수정하지 않는 작업 작성(INSERT/UPDATE/DELETE, 대부분의 POST/PUT API 요청)
  • High 위험: 데이터베이스 구조를 수정하거나 데이터 손실을 일으킬 수 있는 파괴적인 작업(DROP/TRUNCATE, DELETE API 엔드포인트)
  • Extreme 위험: 심각한 결과를 초래하여 완전히 차단되는 작업(프로젝트 삭제)

안전 통제는 위험 수준에 따라 적용됩니다.

  • 위험도가 낮은 작업은 항상 허용됩니다.
  • 중간 위험 작업에는 안전하지 않은 모드를 활성화해야 합니다.
  • 고위험 작업에는 안전하지 않은 모드와 명시적 확인이 필요합니다.
  • 극단적인 위험 작업은 절대 허용되지 않습니다.

확인 흐름이 작동하는 방식

unsafe 모드에서도 고위험 작업(PostgreSQL이나 API 요청)은 차단됩니다. 모든 고위험 작업은 실행하기 위해 명확하게 확인하고 승인해야 합니다.

변경 사항

  • 📦 패키지 관리자를 통한 간소화된 설치 - ✅ (v0.2.0)
  • 🌎 다양한 Supabase 지역 지원 - ✅ (v0.2.2)
  • 🎮 안전 제어 기능을 갖춘 Supabase 관리 API에 대한 프로그래밍 방식 액세스 - ✅ (v0.3.0)
  • 👷‍♂️ 안전 제어 기능을 갖춘 읽기 및 읽기-쓰기 데이터베이스 SQL 쿼리 - ✅ (v0.3.0)
  • 🔄 직접 연결과 풀 연결 모두에 대한 강력한 트랜잭션 처리 - ✅ (v0.3.2)
  • 🐍 네이티브 Python SDK에서 사용 가능한 메서드 및 객체 지원 - ✅ (v0.3.6)
  • 🔍 더욱 강력한 SQL 쿼리 검증 ✅ (v0.3.8)
  • 📝 데이터베이스 변경 사항의 자동 버전 관리 ✅ (v0.3.8)
  • 📖 API 사양에 대한 지식과 도구가 대폭 개선되었습니다 ✅ (v0.3.8)
  • ✍️ 보다 체계적인 데이터베이스 VCS를 위한 마이그레이션 관련 도구의 일관성이 개선되었습니다. ✅ (v0.3.10)
  • 🥳 쿼리 MCP가 출시되었습니다(v0.4.0)

더 자세한 로드맵은 GitHub의 토론을 참조하세요.

스타 역사


즐겨보세요! ☺️

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

이 서버는 MCP 프로토콜을 통해 Supabase PostgreSQL 데이터베이스와 상호 작용할 수 있게 하여, 안전하고 검증된 데이터베이스 관리를 위해 Cursor 및 Windsurf IDE와 원활하게 통합할 수 있습니다.

  1. Table of contents
    1. ✨ Key features
      1. Getting Started
        1. Prerequisites
        2. PostgreSQL Installation
        3. Step 1. Installation
        4. Step 2. Configuration
        5. Step 3. Usage
        6. Troubleshooting
        7. MCP Inspector
      2. Feature Overview
        1. Database query tools
        2. Management API tools
        3. Auth Admin tools
        4. Logs & Analytics
        5. Automatic Versioning of Database Changes
        6. Universal Safety Mode
      3. Changelog
        1. Star History
          ID: cyeeqagb81