Supabase MCP 서버
Supabase 데이터베이스와 상호 작용하기 위한 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버는 FastMCP Python SDK를 사용하여 모델 컨텍스트 프로토콜을 구현하여 대규모 언어 모델(LLM)에 대한 데이터베이스 운영 도구를 제공합니다.
특징
- 필터링, 페이지 매김 및 정렬을 사용하여 Supabase 테이블에서 레코드 읽기
- Supabase 테이블에 새 레코드(단일 또는 일괄) 생성
- 필터 조건에 따라 기존 레코드 업데이트
- 필터 조건에 따라 테이블에서 레코드 삭제
- MCP의 Stdio 전송을 사용하여 통신합니다.
필수 조건
- Python 3.8 이상
- 이미 설정된 테이블이 있는 Supabase 프로젝트
- 인증을 위한 Supabase 서비스 역할 키
설치
- 이 저장소를 복제하세요:지엑스피1
- 가상 환경 설정(권장):Copy
- 종속성을 설치합니다.Copy
- 환경 변수 설정:
.env.example
파일을.env
로 복사합니다.Copy.env
파일에 Supabase URL과 서비스 역할 키를 입력하세요.Copy
용법
서버 시작
가상 환경이 활성화되었는지 확인한 후 서버를 실행하세요.
서버는 Stdio 전송을 사용하므로 표준 입력에서 MCP 요청을 수신하고 표준 출력에서 응답합니다.
MCP 클라이언트와 통합
이 서버는 모델 컨텍스트 프로토콜(Model Context Protocol)을 구현하며 모든 MCP 호환 클라이언트와 통합될 수 있습니다. 예를 들어, MCP 도구를 지원하는 LLM 프레임워크와 함께 사용할 수 있습니다.
Windsurf/Cursor MCP 구성에 추가
Windsurf 또는 Cursor 구성에 이 MCP 서버를 추가하려면:
mcp_config.json
파일을 찾으세요.- 윈도우:
C:\Users\<username>\.codeium\windsurf\mcp_config.json
- macOS:
~/.codeium/windsurf/mcp_config.json
- 리눅스:
~/.codeium/windsurf/mcp_config.json
- 윈도우:
mcpServers
섹션에 Supabase MCP 서버를 추가합니다.
/path/to/your/supabase-mcp/server.py
server.py 파일의 절대 경로로 바꾸세요.
참고 : 더 나은 격리를 위해 가상 환경에서 Python 실행 파일을 사용할 수 있습니다.
- 변경 사항을 적용하려면 Windsurf/Cursor 애플리케이션을 다시 시작하세요.
- 이제 Supabase MCP 도구를 AI 비서에서 사용할 수 있습니다.
도구 설명
서버는 다음과 같은 도구를 제공합니다.
1. 읽기_레코드
유연한 쿼리 옵션을 사용하여 Supabase 데이터베이스 테이블에서 레코드를 읽습니다.
매개변수:
table
(문자열, 필수): 읽을 테이블의 이름columns
(문자열, 선택 사항, 기본값: "*"): 선택할 열(쉼표로 구분 또는 모든 열의 경우 *)filters
(객체, 선택 사항): 키-값 쌍으로 필터링 조건limit
(정수, 선택 사항): 반환할 최대 레코드 수offset
(정수, 선택 사항): 페이지 매김을 위해 건너뛸 레코드 수order_by
(객체, 선택 사항): 열:방향 쌍으로 정렬 옵션
예:
2. 레코드 생성
Supabase 데이터베이스 테이블에 하나 이상의 레코드를 생성합니다.
매개변수:
table
(문자열, 필수): 레코드를 생성할 테이블의 이름records
(객체 또는 배열, 필수): 생성할 단일 레코드 객체 또는 레코드 객체 배열
예(단일 레코드):
예(여러 레코드):
3. 업데이트_레코드
필터 조건에 따라 Supabase 데이터베이스 테이블의 기존 레코드를 업데이트합니다.
매개변수:
table
(문자열, 필수): 레코드를 업데이트할 테이블의 이름updates
(객체, 필수): 키-값 쌍으로 업데이트할 필드filters
(객체, 필수): 업데이트할 레코드를 식별하기 위한 필터링 조건
예:
4. 레코드 삭제
필터 조건에 따라 Supabase 데이터베이스 테이블에서 레코드를 삭제합니다.
매개변수:
table
(문자열, 필수): 레코드를 삭제할 테이블의 이름filters
(객체, 필수): 삭제할 레코드를 식별하기 위한 필터링 조건
예:
개발
프로젝트 구조
server.py
: 주요 MCP 서버 구현supabase_client.py
: Supabase 클라이언트 래퍼requirements.txt
: Python 종속성.env.example
: 환경 변수 파일 예시
새로운 도구 추가
서버에 새로운 도구를 추가하려면:
server.py
에서 도구의 요청 매개변수에 대한 Pydantic 모델을 정의합니다.SupabaseMCPServer
클래스에 핸들러 메서드를 추가합니다.- 설명적인 이름과 설명서를 사용하여
_register_tools
메서드에 도구를 등록합니다.
특허
기여하다
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
This server cannot be installed
Supabase 데이터베이스와 상호 작용하고 필터링 및 페이지 매김 기능을 사용하여 레코드 읽기, 생성, 업데이트 및 삭제와 같은 작업을 지원하기 위한 도구를 LLM에 제공하기 위해 모델 컨텍스트 프로토콜을 구현합니다.