Supabase MCP 서버
Supabase 데이터베이스와 상호 작용하기 위한 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버는 FastMCP Python SDK를 사용하여 모델 컨텍스트 프로토콜을 구현하여 대규모 언어 모델(LLM)에 대한 데이터베이스 운영 도구를 제공합니다.
특징
필터링, 페이지 매김 및 정렬을 사용하여 Supabase 테이블에서 레코드 읽기
Supabase 테이블에 새 레코드(단일 또는 일괄) 생성
필터 조건에 따라 기존 레코드 업데이트
필터 조건에 따라 테이블에서 레코드 삭제
MCP의 Stdio 전송을 사용하여 통신합니다.
Related MCP server: Supabase MCP Server
필수 조건
Python 3.8 이상
이미 설정된 테이블이 있는 Supabase 프로젝트
인증을 위한 Supabase 서비스 역할 키
설치
이 저장소를 복제하세요:
지엑스피1
가상 환경 설정(권장):
# Create a virtual environment python -m venv venv # Activate the virtual environment # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate종속성을 설치합니다.
pip install -r requirements.txt환경 변수 설정:
.env.example파일을.env로 복사합니다.cp .env.example .env # On Windows, use: # copy .env.example .env.env파일에 Supabase URL과 서비스 역할 키를 입력하세요.SUPABASE_URL=your_supabase_project_url SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
용법
서버 시작
가상 환경이 활성화되었는지 확인한 후 서버를 실행하세요.
서버는 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.jsonmacOS:
~/.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