Skip to Content

Supabase

Supabase API를 통해 프로젝트 관리, 데이터베이스 운영, Edge Functions 배포 등의 백엔드 서비스를 관리할 수 있습니다.

주요 기능

  • 프로젝트 관리 및 비용 추정
  • 데이터베이스 테이블 및 확장 기능 관리
  • SQL 쿼리 실행 및 마이그레이션 적용
  • Edge Functions 배포 및 관리
  • 데이터베이스 브랜치 관리 (실험적 기능)
  • TypeScript 타입 생성
  • 문서 검색 및 로그 디버깅

기본 정보

인증 방식

Personal Access Token을 사용하여 인증합니다.

입력 파라미터

  • Access Token (필수): Supabase에서 발급받은 개인 액세스 토큰

지원하는 MCP 도구

프로젝트 관리 도구

list_projects

사용자의 모든 Supabase 프로젝트를 나열합니다.

get_cost

새 프로젝트나 브랜치 생성 비용을 추정합니다.

입력 파라미터:

  • type (필수): 비용 계산 유형 (“project” 또는 “branch”)
  • organization_id (필수): 조직 ID

confirm_cost

비용 확인 후 생성을 진행합니다. 고유한 확인 ID를 반환하여 create_project 또는 create_branch에 전달해야 합니다.

입력 파라미터:

  • type (필수): 비용 계산 유형 (“project” 또는 “branch”)
  • recurrence (필수): 과금 주기 (“hourly” 또는 “monthly”)
  • amount (필수): 비용 금액

데이터베이스 운영 도구

list_tables

하나 이상의 스키마에 있는 모든 테이블을 나열합니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID
  • schemas (선택): 포함할 스키마 목록 (기본값: [“public”])

list_extensions

데이터베이스의 모든 확장 기능을 나열합니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID

execute_sql

데이터베이스에서 원시 SQL을 실행합니다. DDL 작업의 경우 apply_migration을 대신 사용하세요.

입력 파라미터:

  • project_id (선택): 프로젝트 ID
  • query (필수): 실행할 SQL 쿼리

list_migrations

모든 데이터베이스 마이그레이션을 나열합니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID

apply_migration

새로운 데이터베이스 마이그레이션을 적용합니다. DDL 작업 시 이 도구를 사용하세요.

입력 파라미터:

  • project_id (선택): 프로젝트 ID
  • name (필수): 마이그레이션 이름 (snake_case 형식)
  • query (필수): 적용할 SQL 쿼리

Edge Functions 도구

list_edge_functions

프로젝트의 모든 Edge Functions를 나열합니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID

deploy_edge_function

Supabase 프로젝트에 Edge Function을 배포합니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID
  • name (필수): 함수 이름
  • entrypoint_path (선택): 함수 진입점 (기본값: “index.ts”)
  • import_map_path (선택): 함수의 import map
  • files (필수): 업로드할 파일 배열 (진입점과 종속성 포함)
    • 각 파일: name (파일명), content (파일 내용)

디버깅 및 모니터링 도구

get_logs

디버깅을 위한 애플리케이션 로그를 조회합니다. 지난 1분 내의 로그만 반환됩니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID
  • service (필수): 로그를 가져올 서비스 (“api”, “branch-action”, “postgres”, “edge-function”, “auth”, “storage”, “realtime” 중 하나)
  • endTimestamp (선택): 종료 타임스탬프

get_advisors

보안 및 성능 권장사항을 조회합니다. DDL 변경 후 정기적으로 실행하는 것이 좋습니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID
  • type (필수): 권장사항 유형 (“security” 또는 “performance”)

프로젝트 설정 도구

get_project_url

프로젝트의 API URL을 조회합니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID

get_anon_key

프로젝트의 익명 API 키를 조회합니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID

브랜치 관리 도구 (실험적)

create_branch

개발용 새 데이터베이스 브랜치를 생성합니다. 메인 프로젝트의 모든 마이그레이션을 새 브랜치 데이터베이스에 적용합니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID
  • name (선택): 생성할 브랜치 이름 (기본값: “develop”)
  • confirm_cost_id (필수): 비용 확인 ID (confirm_cost를 먼저 호출해야 함)

list_branches

모든 데이터베이스 브랜치를 나열합니다. 브랜치 상태를 확인하여 병합/리베이스/리셋 작업 완료를 추적할 수 있습니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID

delete_branch

데이터베이스 브랜치를 삭제합니다.

입력 파라미터:

  • branch_id (필수): 브랜치 ID

merge_branch

개발 브랜치의 마이그레이션과 Edge Functions를 프로덕션으로 병합합니다.

입력 파라미터:

  • branch_id (필수): 브랜치 ID

reset_branch

개발 브랜치의 마이그레이션을 리셋합니다. 추적되지 않은 데이터나 스키마 변경사항은 손실됩니다.

입력 파라미터:

  • branch_id (필수): 브랜치 ID
  • migration_version (선택): 특정 마이그레이션 버전으로 리셋

rebase_branch

프로덕션을 기반으로 개발 브랜치를 리베이스합니다. 프로덕션의 새로운 마이그레이션을 브랜치에 적용하여 마이그레이션 드리프트를 처리하는 데 도움이 됩니다.

입력 파라미터:

  • branch_id (필수): 브랜치 ID

개발 도구

search_docs

Supabase 문서에서 관련 정보를 검색합니다. GraphQL을 사용하여 검색합니다.

입력 파라미터:

  • graphql_query (필수): GraphQL 쿼리 문자열

generate_typescript_types

데이터베이스 스키마에서 TypeScript 타입을 생성합니다.

입력 파라미터:

  • project_id (선택): 프로젝트 ID

사용 예시

예를 들어,

  • Prompt로 “내 Supabase 프로젝트 목록을 보여줘” 라고 입력하면,
  • LLM은 MCP를 통해 list_projects 도구를 호출하여 사용자의 모든 프로젝트를 조회합니다.
  • 그리고, 프로젝트 목록을 채팅에서 제공합니다.

데이터베이스 관리:

  • “users 테이블의 구조를 확인해줘” 라고 입력하면,
  • LLM은 list_tables 도구를 호출하여 테이블 정보를 조회합니다.

API Key 설정 방법

  1. Supabase Dashboard 에 로그인합니다.
  2. Account Tokens  페이지로 이동합니다.
  3. “Generate new token” 버튼을 클릭합니다.
  4. 토큰 이름을 입력하고 생성합니다.
  5. 생성된 토큰을 복사해서 잘 보관합니다.
  6. QueryPie AI에서 Supabase 통합을 선택합니다.
  7. 발급받은 Personal Access Token을 입력하여 연결을 완료합니다.

주의사항

  • 생성한 Personal Access Token은 안전하게 보관하세요.
  • 토큰 생성 후 복사해서 안전한 곳에 보관하세요.
  • 브랜치 기능은 실험적 기능이므로 신중하게 사용하세요.