링크된 문서
역링크
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 서버를 사용하여 데이터베이스 쿼리를 수행하는 예시입니다:
-
테이블 쿼리:
클라이언트: "Supabase에서 'products' 테이블에서 가격이 $50 이상인 제품을 찾아줘." -
Claude는 Supabase MCP 서버의
query_table도구를 사용하여 쿼리 실행:쿼리 결과: - 제품 ID: 123, 이름: "프리미엄 헤드폰", 가격: $149.99 - 제품 ID: 124, 이름: "스마트 스피커", 가격: $89.99 - 제품 ID: 125, 이름: "무선 키보드", 가격: $59.99 ... -
벡터 검색 예시:
클라이언트: "Supabase에서 '자연어 처리 기술'과 관련된 문서를 찾아줘." -
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 서버