Yazdani-Supabase-MCP Server

MIT License
  • Linux
  • Apple

Integrations

  • Uses .env files to securely store and manage configuration variables like API keys and database credentials

  • Enables SQL execution, schema inspection, and database migration management for PostgreSQL databases

  • Designed for integration with React Native PaveApp, providing database access capabilities

야즈다니-수파베이스-MCP-서버

Supabase PostgreSQL과 통합되고 자연어 쿼리 처리를 위해 Claude 3.7을 사용하는 MCP 서버로, React Native PaveApp과 통합되도록 설계되었습니다.

특징

  • 스키마 검사 : 데이터베이스 스키마, 테이블, 열 및 관계 보기
  • SQL 실행 : 안전 제어를 사용하여 SQL 쿼리 실행
  • 마이그레이션 관리 : 데이터베이스 마이그레이션 보기 및 관리
  • 자연어 처리 : Claude 3.7을 사용하여 자연어를 SQL로 변환
  • 안전 제어 : 파괴적인 작업으로부터 보호
  • 모의 데이터베이스 모드 : 라이브 데이터베이스 연결 없이 개발 및 테스트 지원
  • 자동 폴백 메커니즘 : 데이터베이스 연결이 실패하면 모의 데이터로 우아하게 폴백합니다.
  • 세션 풀러 지원 : 안정적인 연결을 위해 Supabase 세션 풀러를 사용합니다.

설치

필수 조건

  • Python 3.8 이상
  • Supabase PostgreSQL 데이터베이스에 대한 액세스(모의 모드에서 선택 사항)
  • Anthropic API 키(Claude 통합용)

설정

  1. 저장소를 복제합니다.지엑스피1
  2. 종속성 설치:
    pip install -r requirements.txt
  3. 자격 증명을 사용하여 .env 파일을 만듭니다.
    # Supabase credentials SUPABASE_PROJECT_REF=your_project_ref SUPABASE_URL=https://your_project_ref.supabase.co SUPABASE_DB_PASSWORD=your_db_password SUPABASE_REGION=your_region SUPABASE_ACCESS_TOKEN=your_access_token SUPABASE_SERVICE_ROLE_KEY=your_service_role_key # Database connection POSTGRES_HOST=db.your_project_ref.supabase.co POSTGRES_PORT=5432 POSTGRES_DB=postgres POSTGRES_USER=postgres SUPABASE_POOLER_HOST=aws-0-ca-central-1.pooler.supabase.com # Claude API ANTHROPIC_API_KEY=your_anthropic_api_key # Optional: for mock database mode # USE_MOCK_DB=true

용법

라이브 데이터베이스로 서버 실행

Supabase 데이터베이스 연결을 통한 일반 작업의 경우:

python run_server.py

모의 데이터베이스로 서버 실행

라이브 데이터베이스 연결 없이 개발 또는 테스트하는 경우:

# Windows improved_mock_server.bat # Unix/macOS USE_MOCK_DB=true python run_server.py

연결 테스트

실제 데이터베이스와 모의 데이터베이스 모두에서 연결을 테스트하려면:

python connection_test.py

자연어 테스트

자연어 쿼리를 사용하여 MCP 서버를 테스트할 수 있는 강력한 자연어 테스트 환경을 추가했습니다.

# Windows - Run the full test environment (HTTP server + NL client) run_nl_test.bat # Manual setup python http_server.py --port 8000 # Terminal 1 python nl_test_client.py # Terminal 2

자연어 테스트 클라이언트는 다음을 제공합니다.

  • 테스트를 위한 대화형 명령줄 인터페이스
  • Claude를 사용한 자연어에서 SQL로의 변환
  • Supabase 데이터베이스에 대한 SQL 실행
  • 서식이 지정된 결과 표시
  • 명령 기록 및 결과 저장 기능

시도해 볼 수 있는 자연어 쿼리 샘플:

  • "공개 스키마의 모든 테이블을 보여주세요"
  • "지난 달에 가입한 모든 사용자를 가져옵니다"
  • "데이터베이스의 총 사용자 수는 얼마입니까?"

패키지로 설치

pip install -e . yazdani-supabase-mcp-server

React Native PaveApp과의 통합

React Native를 위한 MCP 서버 설정

  1. 서버를 실행합니다 :
    • 개발용: improved_mock_server.bat 을 사용하여 모의 모드를 사용하세요.
    • 프로덕션의 경우: 데이터베이스 자격 증명이 올바른지 확인하고 run_server.py 실행하세요.
  2. 서버에 접근 가능하게 만들기 :
    • 로컬 개발의 경우: React Native가 로컬 네트워크에 액세스할 수 있는지 확인하세요.
    • 프로덕션의 경우: 앱에서 액세스할 수 있는 서버를 호스팅하세요.
  3. React Native에서 연결 :
    • MCP 클라이언트 라이브러리를 사용하여 서버에 연결합니다.
    • 서버의 주소와 포트로 클라이언트를 구성합니다.

API 엔드포인트

MCP 서버는 MCP 프로토콜을 통해 액세스할 수 있는 다음 도구를 제공합니다.

  • get_schemas : 모든 데이터베이스 스키마 나열
  • get_tables : 스키마의 테이블 나열
  • get_table_schema : 자세한 테이블 구조를 가져옵니다.
  • execute_postgresql : SQL 문 실행
  • retrieve_migrations : 데이터베이스 마이그레이션 나열
  • generate_sql : 자연어로부터 SQL 생성

문제 해결

연결 세부 정보

서버는 데이터베이스 연결을 위해 Supabase 세션 풀러를 사용합니다.

postgresql://postgres.{project_ref}:{password}@{pooler_host}:5432/postgres

이 연결 형식은 특히 IPv4 네트워크에서 지속적인 연결을 유지하는 애플리케이션에 대해 Supabase에서 권장하는 연결 형식입니다.

연결 문제

Supabase에서 연결 문제가 발생하는 경우:

  1. Supabase 프로젝트가 활성화되어 있는지 확인하세요
  2. .env 파일에서 데이터베이스 자격 증명이 올바른지 확인하세요.
  3. Supabase 데이터베이스 설정에서 IP 주소가 허용되는지 확인하세요.
  4. 해당 지역에 맞는 풀러 호스트를 사용하고 있는지 확인하세요.
  5. 모의 데이터베이스 모드를 사용해 보세요: USE_MOCK_DB=true
  6. python test_pooler_connection.py 실행하여 풀러 연결을 구체적으로 테스트합니다.
  7. python connection_test.py 실행하여 포괄적인 연결 테스트를 실행하세요.

모의 데이터베이스 모드

이제 서버에는 개선된 모의 데이터베이스 지원이 포함됩니다.

  • 연결에 실패하면 모의 데이터로 자동 폴백
  • 실제 데이터와 모의 데이터 간의 일관된 인터페이스
  • 모의 데이터가 사용될 때 명확한 표시
  • 문제 해결을 위한 향상된 로깅

기여하다

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

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

Claude 3.7을 사용하여 Supabase PostgreSQL 데이터베이스에 대한 자연어 쿼리를 활성화하는 MCP 서버로, 사용자는 스키마를 검사하고, SQL을 실행하고, 마이그레이션을 관리하고, 자연어를 SQL 쿼리로 변환할 수 있습니다.

  1. Features
    1. Installation
      1. Prerequisites
      2. Setup
    2. Usage
      1. Running the Server with Live Database
      2. Running the Server with Mock Database
      3. Testing Connection
      4. Natural Language Testing
      5. Installing as a Package
    3. Integration with React Native PaveApp
      1. Setting Up MCP Server for React Native
      2. API Endpoints
    4. Troubleshooting
      1. Connection Details
      2. Connection Issues
      3. Mock Database Mode
    5. Contributing
      1. License
        ID: 7jnh2kp4l9