Supabase MCP Server

Integrations

  • Integrates with Codeium's Cascade feature (for paying users) to provide database management tools through natural language commands in the Cascade interface.

  • Enables direct management of PostgreSQL databases with tools for tables, columns, records, indexes, constraints, functions, triggers, and executing custom SQL queries.

  • Provides full administrative control over a Supabase PostgreSQL database, including tools for table operations, record management, schema modifications, indexes, constraints, database functions, triggers, security policies, and storage management.

Supabase MCP 서버 🚀

🔥 Cursor의 Composer와 Codeium의 Cascade를 통해 Supabase PostgreSQL 데이터베이스에 대한 완벽한 관리 제어 기능을 제공하는 강력한 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 도구는 테이블 작업, 레코드 관리, 스키마 수정 등 다양한 기능을 제공하여 원활한 데이터베이스 관리를 지원합니다.

📚 목차

🔧 필수 조건

  • 노드.js >= 16.x
  • npm >= 8.x
  • Supabase 프로젝트:
    • 프로젝트 ID
    • 데이터베이스 비밀번호
    • PostgreSQL 연결 문자열
  • 커서 IDE 또는 Codeium의 Cascade(유료 사용자용)

🚀 빠른 시작

📥 설치

지엑스피1

⚙️ 구성

  1. 종속성을 설치하고 프로젝트를 빌드합니다.
    npm install npm run build
  2. 커서의 MCP 설정에서 다음 명령을 사용하여 서버를 추가합니다.
    /opt/homebrew/bin/node /path/to/dist/index.js postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres
    바꾸다:
    • /path/to/dist/index.js 실제 경로로 변경합니다.
    • [PROJECT-ID] 에 Supabase 프로젝트 ID를 입력하세요.
    • [PASSWORD] 에 데이터베이스 비밀번호를 입력하세요.

참고: 데이터베이스 자격 증명을 안전하게 보관하고 버전 제어에 커밋하지 마세요.

🎯 통합

커서 MCP 통합

모델 컨텍스트 프로토콜(MCP)을 사용하면 Cursor에서 에이전트 LLM에 사용자 지정 도구를 제공할 수 있습니다. 이 서버는 Cursor의 Composer 기능과 통합되어 자연어 명령을 통해 모든 데이터베이스 관리 도구에 직접 액세스할 수 있습니다.

커서 설정

  1. 커서 설정 > 기능 > MCP 열기
  2. "+ 새 MCP 서버 추가" 버튼을 클릭하세요
  3. 모달 양식을 작성하세요:
    • 이름: "Supabase MCP"(또는 원하는 별명)
    • 유형: command (stdio 전송)
    • 명령: 연결 세부 정보가 포함된 전체 명령 문자열
  4. 먼저 프로젝트를 빌드하세요.
    npm install npm run build
  5. Node.js 경로를 가져옵니다.
    # On Mac/Linux which node # On Windows where node
  6. 서버 명령을 추가합니다.
    /path/to/node /path/to/dist/index.js postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres
    바꾸다:
    • /path/to/node 실제 Node.js 경로(5단계에서)로 변경합니다.
    • /path/to/dist/index.js 빌드된 JavaScript 파일에 대한 실제 경로로 지정합니다.
    • [PROJECT-ID] 에 Supabase 프로젝트 ID를 입력하세요.
    • [PASSWORD] 에 데이터베이스 비밀번호를 입력하세요.
  7. "서버 추가"를 클릭한 다음 오른쪽 상단 모서리에 있는 새로 고침 버튼을 클릭하세요.

커서의 도구 사용

Composer Agent는 데이터베이스 작업을 설명할 때 관련 도구를 자동으로 감지하고 사용합니다. 예:

  • "내 데이터베이스의 모든 테이블 나열"
  • "새로운 사용자 테이블 만들기"
  • "이메일 열에 인덱스 추가"

에이전트가 도구를 사용하면 다음이 표시됩니다.

  1. 도구 호출을 승인/거부하라는 메시지
  2. 도구 호출 인수(확장 가능)
  3. 승인 후 응답

참고: 이와 같은 stdio 서버의 경우, 명령은 유효한 셸 명령이어야 합니다. 환경 변수가 필요한 경우 래퍼 스크립트를 사용하는 것이 좋습니다.

Windsurf/Cascade 통합

이 MCP 서버는 Codeium의 Cascade(Windsurf) 통합도 지원합니다. 이 기능은 현재 유료 개인 사용자에게만 제공되며, Teams 또는 Enterprise 사용자는 사용할 수 없습니다.

Cascade 설정

  1. ~/.codeium/windsurf/mcp_config.json 생성하거나 편집합니다.
    { "mcpServers": { "supabase-mcp": { "command": "/path/to/node", "args": [ "/path/to/dist/index.js", "postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres" ] } } }
  2. 구성에 대한 빠른 액세스:
    • Cascade 입력 위에 있는 툴바를 찾으세요
    • 망치 아이콘을 클릭하세요
    • "구성"을 클릭하여 mcp_config.json을 엽니다.
  3. 구성에서 다음을 교체합니다.
    • /path/to/node 실제 Node.js 경로로 변경합니다.
    • /path/to/dist/index.js 실제 경로로 변경합니다.
    • [PROJECT-ID] 에 Supabase 프로젝트 ID를 입력하세요.
    • [PASSWORD] 에 데이터베이스 비밀번호를 입력하세요.
  4. 캐스케이드에서:
    • 도구 모음에서 망치 아이콘을 클릭하세요
    • "구성"을 클릭하여 설정을 확인하세요.
    • MCP 서버를 로드하려면 "새로 고침"을 클릭하세요.
    • 사용 가능한 도구를 보려면 서버 이름을 클릭하세요.

Cascade 사용자를 위한 중요 참고 사항

  • 도구 기능만 지원됩니다(프롬프트나 리소스는 지원되지 않음)
  • MCP 도구 호출은 성공 여부와 관계없이 크레딧을 소모합니다.
  • 이미지 출력이 지원되지 않습니다.
  • stdio 전송 유형만 지원됩니다.
  • 도구 호출은 임의의 서버 구현자가 작성한 코드를 호출할 수 있습니다.
  • Cascade는 MCP 도구 호출 실패에 대한 책임을 지지 않습니다.

✨ 특징

🎯 사용 가능한 데이터베이스 도구

테이블 관리

  • 테이블: list_tables , create_table , drop_table , rename_table
  • 열: add_column , drop_column , alter_column
  • 레코드: fetch_records , create_record , update_record , delete_record

인덱스 및 제약 조건

  • 인덱스: list_indexes , create_index , delete_index , update_index
  • 제약 조건: list_constraints , add_constraint , remove_constraint , update_constraint

데이터베이스 함수 및 트리거

  • 함수: list_functions , create_function , update_function , delete_function
  • 트리거: list_triggers , create_trigger , update_trigger , delete_trigger

보안 및 접근 제어

  • 정책: list_policies , create_policy , update_policy , delete_policy
  • 역할: list_roles , create_role , update_role , delete_role

스토리지 관리

  • 버킷: list_buckets , create_bucket , delete_bucket
  • 파일: delete_file , bulk_delete_files
  • 폴더: list_folders

데이터 유형 및 출판물

  • 열거형: list_enumerated_types , create_enumerated_type , update_enumerated_type , delete_enumerated_type
  • 게시물: list_publications , create_publication , update_publication , delete_publication

실시간 기능

  • 정책: list_realtime_policies , create_realtime_policy , update_realtime_policy , delete_realtime_policy
  • 채널: list_realtime_channels , manage_realtime_channels , send_realtime_message , get_realtime_messages
  • 관리: manage_realtime_status , manage_realtime_views

사용자 관리

  • 권한: list_users , create_user , update_user , delete_user

직접 SQL 액세스

  • 쿼리: query - 사용자 정의 SQL 쿼리 실행

🚀 주요 이점

  • 자연어 제어 : 간단한 대화형 명령을 통해 Supabase 데이터베이스를 관리하세요
  • 포괄적인 범위 : 테이블, 레코드, 인덱스, 함수, 보안 등을 포괄하는 전체 도구 모음
  • 원활한 통합 : Cursor의 Composer와 Codeium의 Cascade 내에서 직접 작동합니다.
  • 개발자 친화적 : IDE와 데이터베이스 관리 도구 간의 컨텍스트 전환을 줄입니다.
  • 보안 액세스 : 적절한 인증을 통해 데이터베이스 보안을 유지합니다.

📁 프로젝트 구조

supabase-mcp-server/ ├── dist/ # Compiled JavaScript files │ ├── index.d.ts # TypeScript declarations │ └── index.js # Main JavaScript file ├── src/ # Source code │ └── index.ts # Main TypeScript file ├── package.json # Project configuration ├── package-lock.json # Dependency lock file └── tsconfig.json # TypeScript configuration

💡 사용법

MCP 서버는 구성이 완료되면 Cursor's Composer를 통해 모든 데이터베이스 관리 도구를 제공합니다. 데이터베이스에서 무엇을 할지 간단히 설명하면 AI가 적절한 명령을 실행합니다.

예:

  • 📋 "내 데이터베이스의 모든 테이블을 보여주세요"
  • ➕ "ID, 이름, 이메일 열이 있는 새 사용자 테이블을 만듭니다."
  • 🔍 "users 테이블의 email 열에 인덱스를 추가하세요"

🔒 보안 참고 사항

  • 🔐 데이터베이스 연결 문자열을 안전하게 유지하세요
  • ⚠️ 민감한 자격 증명을 버전 제어에 커밋하지 마십시오.
  • 👮 적절한 액세스 제어 및 권한을 사용하세요
  • 🛡️ SQL 주입을 방지하기 위해 모든 입력을 검증하고 정리합니다.

🛠️ 문제 해결

일반적인 연결 문제

  1. Node.js 경로 문제
    • 올바른 Node.js 경로를 사용하고 있는지 확인하세요.
    • Mac/Linux에서: 올바른 경로를 찾는 데 which node 사용하세요
    • Windows에서: where node 사용하여 올바른 경로를 찾으세요.
    • /usr/local/bin/node 실제 Node.js 경로로 바꾸세요.
  2. 파일 경로 문제
    • 상대 경로 대신 절대 경로를 사용하세요
    • Mac/Linux의 경우: 프로젝트 디렉토리에서 pwd 사용하여 전체 경로를 가져옵니다.
    • Windows의 경우: cd 사용하여 전체 경로를 가져옵니다.
    • 예: /Users/username/projects/supabase-mcp-server/dist/index.js
  3. MCP가 도구를 감지하지 못함
    • 커서의 MCP 설정에서 새로 고침 버튼을 클릭하세요.
    • 서버가 실행 중인지 확인하세요(오류 메시지 없음)
    • 연결 문자열이 올바른지 확인하세요
    • Supabase 자격 증명이 유효한지 확인하세요
  4. 권한 문제
    • dist 디렉토리가 있는지 확인하세요( npm run build )
    • 파일 권한 확인(Unix 시스템에서는 chmod +x )
    • 적절한 권한으로 npm install 실행하세요.

디버그 모드

자세한 로그를 보려면 명령 앞에 DEBUG=true 추가하세요.

DEBUG=true /usr/local/bin/node /path/to/dist/index.js [connection-string]

플랫폼별 참고 사항

윈도우 사용자

# Use this format for the command "C:\\Program Files\\nodejs\\node.exe" "C:\\path\\to\\dist\\index.js" "postgresql://..."

리눅스 사용자

# Find Node.js path which node # Make script executable chmod +x /path/to/dist/index.js

여전히 문제가 발생하는 경우 다음 주소로 문제를 제기해 주세요.

  • 귀하의 운영 체제
  • Node.js 버전( node --version )
  • 전체 오류 메시지
  • 재현 단계

🤝 기여하기

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

📄 라이센스


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

Cursor의 Composer와 Codeium의 Cascade를 통해 Supabase PostgreSQL 데이터베이스에 대한 관리 제어 기능을 제공하는 강력한 서버로, 테이블, 레코드, 스키마 수정 등의 기능을 통해 데이터베이스 관리를 지원합니다.

  1. 📚 Table of Contents
    1. 🔧 Prerequisites
      1. 🚀 Quick Start
        1. 📥 Installation
        2. ⚙️ Configuration
      2. 🎯 Integrations
        1. Cursor MCP Integration
        2. Windsurf/Cascade Integration
      3. ✨ Features
        1. 🎯 Available Database Tools
        2. 🚀 Key Benefits
      4. 📁 Project Structure
        1. 💡 Usage
          1. 🔒 Security Notes
            1. 🛠️ Troubleshooting
              1. Common Connection Issues
              2. Debug Mode
              3. Platform-Specific Notes
            2. 🤝 Contributing
              1. 📄 License
                ID: uoif4qw663