Skip to main content
Glama

Supabase MCP Server

by gevans3000

Supabase MCP 서버

Supabase 데이터베이스와 상호 작용하기 위한 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버는 FastMCP Python SDK를 사용하여 모델 컨텍스트 프로토콜을 구현하여 대규모 언어 모델(LLM)에 대한 데이터베이스 운영 도구를 제공합니다.

특징

  • 필터링, 페이지 매김 및 정렬을 사용하여 Supabase 테이블에서 레코드 읽기

  • Supabase 테이블에 새 레코드(단일 또는 일괄) 생성

  • 필터 조건에 따라 기존 레코드 업데이트

  • 필터 조건에 따라 테이블에서 레코드 삭제

  • MCP의 Stdio 전송을 사용하여 통신합니다.

Related MCP server: Supabase MCP Server

필수 조건

  • Python 3.8 이상

  • 이미 설정된 테이블이 있는 Supabase 프로젝트

  • 인증을 위한 Supabase 서비스 역할 키

설치

  1. 이 저장소를 복제하세요:

    지엑스피1

  2. 가상 환경 설정(권장):

    # Create a virtual environment python -m venv venv # Activate the virtual environment # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate
  3. 종속성을 설치합니다.

    pip install -r requirements.txt
  4. 환경 변수 설정:

    • .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

용법

서버 시작

가상 환경이 활성화되었는지 확인한 후 서버를 실행하세요.

python server.py

서버는 Stdio 전송을 사용하므로 표준 입력에서 MCP 요청을 수신하고 표준 출력에서 응답합니다.

MCP 클라이언트와 통합

이 서버는 모델 컨텍스트 프로토콜(Model Context Protocol)을 구현하며 모든 MCP 호환 클라이언트와 통합될 수 있습니다. 예를 들어, MCP 도구를 지원하는 LLM 프레임워크와 함께 사용할 수 있습니다.

Windsurf/Cursor MCP 구성에 추가

Windsurf 또는 Cursor 구성에 이 MCP 서버를 추가하려면:

  1. mcp_config.json 파일을 찾으세요.

    • 윈도우: C:\Users\<username>\.codeium\windsurf\mcp_config.json

    • macOS: ~/.codeium/windsurf/mcp_config.json

    • 리눅스: ~/.codeium/windsurf/mcp_config.json

  2. mcpServers 섹션에 Supabase MCP 서버를 추가합니다.

{ "mcpServers": { // ... other servers "supabase": { "command": "python", "args": [ "/path/to/your/supabase-mcp/server.py" ], "env": { "SUPABASE_URL": "your_supabase_url", "SUPABASE_SERVICE_ROLE_KEY": "your_supabase_key" } } } }

/path/to/your/supabase-mcp/server.py server.py 파일의 절대 경로로 바꾸세요.

참고 : 더 나은 격리를 위해 가상 환경에서 Python 실행 파일을 사용할 수 있습니다.

{ "mcpServers": { "supabase": { "command": "/path/to/your/venv/bin/python", // or "venv\\Scripts\\python.exe" on Windows "args": [ "/path/to/your/supabase-mcp/server.py" ] } } }
  1. 변경 사항을 적용하려면 Windsurf/Cursor 애플리케이션을 다시 시작하세요.

  2. 이제 Supabase MCP 도구를 AI 비서에서 사용할 수 있습니다.

도구 설명

서버는 다음과 같은 도구를 제공합니다.

1. 읽기_레코드

유연한 쿼리 옵션을 사용하여 Supabase 데이터베이스 테이블에서 레코드를 읽습니다.

매개변수:

  • table (문자열, 필수): 읽을 테이블의 이름

  • columns (문자열, 선택 사항, 기본값: "*"): 선택할 열(쉼표로 구분 또는 모든 열의 경우 *)

  • filters (객체, 선택 사항): 키-값 쌍으로 필터링 조건

  • limit (정수, 선택 사항): 반환할 최대 레코드 수

  • offset (정수, 선택 사항): 페이지 매김을 위해 건너뛸 레코드 수

  • order_by (객체, 선택 사항): 열:방향 쌍으로 정렬 옵션

예:

{ "table": "users", "columns": "id,name,email", "filters": {"is_active": true}, "limit": 10, "offset": 0, "order_by": {"created_at": "desc"} }

2. 레코드 생성

Supabase 데이터베이스 테이블에 하나 이상의 레코드를 생성합니다.

매개변수:

  • table (문자열, 필수): 레코드를 생성할 테이블의 이름

  • records (객체 또는 배열, 필수): 생성할 단일 레코드 객체 또는 레코드 객체 배열

예(단일 레코드):

{ "table": "users", "records": { "name": "John Doe", "email": "john@example.com", "role": "user" } }

예(여러 레코드):

{ "table": "users", "records": [ { "name": "John Doe", "email": "john@example.com", "role": "user" }, { "name": "Jane Smith", "email": "jane@example.com", "role": "admin" } ] }

3. 업데이트_레코드

필터 조건에 따라 Supabase 데이터베이스 테이블의 기존 레코드를 업데이트합니다.

매개변수:

  • table (문자열, 필수): 레코드를 업데이트할 테이블의 이름

  • updates (객체, 필수): 키-값 쌍으로 업데이트할 필드

  • filters (객체, 필수): 업데이트할 레코드를 식별하기 위한 필터링 조건

예:

{ "table": "users", "updates": { "is_verified": true, "last_login_at": "2025-04-04T15:30:00Z" }, "filters": { "id": 123 } }

4. 레코드 삭제

필터 조건에 따라 Supabase 데이터베이스 테이블에서 레코드를 삭제합니다.

매개변수:

  • table (문자열, 필수): 레코드를 삭제할 테이블의 이름

  • filters (객체, 필수): 삭제할 레코드를 식별하기 위한 필터링 조건

예:

{ "table": "expired_sessions", "filters": { "expires_at": {"lt": "2025-01-01T00:00:00Z"} } }

개발

프로젝트 구조

  • server.py : 주요 MCP 서버 구현

  • supabase_client.py : Supabase 클라이언트 래퍼

  • requirements.txt : Python 종속성

  • .env.example : 환경 변수 파일 예시

새로운 도구 추가

서버에 새로운 도구를 추가하려면:

  1. server.py 에서 도구의 요청 매개변수에 대한 Pydantic 모델을 정의합니다.

  2. SupabaseMCPServer 클래스에 핸들러 메서드를 추가합니다.

  3. 설명적인 이름과 설명서를 사용하여 _register_tools 메서드에 도구를 등록합니다.

특허

MIT 라이센스

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

-
security - not tested
F
license - not found
-
quality - not tested

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gevans3000/supabase-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server