MCP 문서 관리

메뉴

Supabase MCP 서버

Supabase

Supabase MCP 서버는 Supabase 플랫폼과 통합되어 LLM(대규모 언어 모델)이 오픈소스 Firebase 대안인 Supabase의 기능에 접근할 수 있도록 해주는 도구입니다. 이 서버는 PostgreSQL 데이터베이스 작업, 인증, 스토리지, 실시간 기능 등을 제공합니다.

특징

  • PostgreSQL 데이터베이스 작업 및 쿼리
  • 사용자 인증 및 권한 관리
  • 파일 스토리지 기능
  • 실시간 데이터 구독
  • REST 및 GraphQL API 상호작용
  • 벡터 저장소 기능(pgvector)을 통한 임베딩 및 벡터 검색

API

리소스

  • supabase://projects - 사용 가능한 Supabase 프로젝트 목록
  • supabase://projects/{project_id} - 특정 프로젝트 정보
  • supabase://projects/{project_id}/tables - 프로젝트의 테이블 목록
  • supabase://projects/{project_id}/tables/{table_name} - 특정 테이블의 스키마 정보
  • supabase://projects/{project_id}/storage - 스토리지 버킷 목록
  • supabase://projects/{project_id}/functions - Edge Functions 목록

도구

데이터베이스 도구

query_table

SQL 쿼리를 실행하거나 테이블을 쿼리합니다. - 입력: - table_name: 쿼리할 테이블 이름 또는 SQL 쿼리 - select: 선택할 열 (SQL 쿼리가 아닐 경우, 기본값: "*") - filter: 필터링 조건 (SQL 쿼리가 아닐 경우) - limit: 반환할 최대 행 수 (기본값: 100) - order: 정렬 기준 (선택 사항)

insert_records

테이블에 레코드를 삽입합니다. - 입력: - table_name: 대상 테이블 이름 - records: 삽입할 레코드 배열 - on_conflict: 충돌 시 처리 방법 (선택 사항)

update_records

테이블의 레코드를 업데이트합니다. - 입력: - table_name: 대상 테이블 이름 - updates: 업데이트할 값 - filter: 업데이트할 레코드를 필터링할 조건

delete_records

테이블에서 레코드를 삭제합니다. - 입력: - table_name: 대상 테이블 이름 - filter: 삭제할 레코드를 필터링할 조건

인증 도구

sign_up_user

새 사용자를 등록합니다. - 입력: - email: 사용자 이메일 - password: 사용자 비밀번호 - metadata: 추가 메타데이터 (선택 사항)

sign_in_user

사용자를 로그인합니다. - 입력: - email: 사용자 이메일 - password: 사용자 비밀번호

get_user

사용자 정보를 가져옵니다. - 입력: - user_id: 사용자 ID (선택 사항, 기본값: 현재 인증된 사용자)

스토리지 도구

list_buckets

스토리지 버킷을 나열합니다. - 입력: 없음

create_bucket

새 스토리지 버킷을 생성합니다. - 입력: - bucket_name: 버킷 이름 - public: 공개 여부 (기본값: false)

list_files

버킷의 파일을 나열합니다. - 입력: - bucket_name: 버킷 이름 - path: 경로 (선택 사항, 기본값: "")

upload_file

파일을 업로드합니다. - 입력: - bucket_name: 버킷 이름 - path: 파일 경로 - file: 업로드할 파일 데이터 - content_type: 콘텐츠 유형 (선택 사항)

download_file

파일을 다운로드합니다. - 입력: - bucket_name: 버킷 이름 - path: 파일 경로

벡터 검색 도구

create_embeddings

텍스트를 임베딩으로 변환합니다. - 입력: - texts: 변환할 텍스트 배열 - model: 임베딩 모델 (기본값: "openai")

vector_search

벡터 검색을 수행합니다. - 입력: - table_name: 검색할 테이블 이름 - query: 검색 쿼리 텍스트 또는 벡터 - vector_column: 벡터 열 이름 (기본값: "embedding") - match_count: 반환할 최대 결과 수 (기본값: 10)

사용 방법

설치

# NPM 패키지 설치
npm install supabase-mcp-server

# 또는 npx로 직접 실행
npx supabase-mcp-server

구성

Claude Desktop에서 Supabase MCP 서버를 사용하려면 다음과 같이 구성 파일을 설정합니다:

{
  "mcpServers": {
    "supabase": {
      "command": "npx",
      "args": ["supabase-mcp-server"],
      "env": {
        "SUPABASE_URL": "https://your-project-url.supabase.co",
        "SUPABASE_KEY": "<Your Supabase API Key>"
      }
    }
  }
}

사용 예시

다음은 Supabase MCP 서버를 사용하여 데이터베이스 쿼리를 수행하는 예시입니다:

  1. 테이블 쿼리:

    클라이언트: "Supabase에서 'products' 테이블에서 가격이 $50 이상인 제품을 찾아줘."

  2. Claude는 Supabase MCP 서버의 query_table 도구를 사용하여 쿼리 실행:

    쿼리 결과:
    - 제품 ID: 123, 이름: "프리미엄 헤드폰", 가격: $149.99
    - 제품 ID: 124, 이름: "스마트 스피커", 가격: $89.99
    - 제품 ID: 125, 이름: "무선 키보드", 가격: $59.99
    ...

  3. 벡터 검색 예시:

    클라이언트: "Supabase에서 '자연어 처리 기술'과 관련된 문서를 찾아줘."

  4. Claude는 Supabase MCP 서버의 vector_search 도구를 사용하여 검색 실행:

    검색 결과:
    1. "트랜스포머 모델의 발전과 응용" (유사도: 0.91)
    2. "GPT 아키텍처와 자연어 처리" (유사도: 0.89)
    3. "언어 모델의 현재와 미래" (유사도: 0.82)
    ...

연결된 구성 요소

  • PostgreSQL - PostgreSQL 데이터베이스 MCP 서버
  • Pinecone - 벡터 검색 및 임베딩을 위한 MCP 서버
  • Firebase - Firebase 서비스와 통합하는 MCP 서버
  • Redis - Redis 키-값 저장소와 상호작용하는 MCP 서버