Integrations
Provides tools for direct PostgreSQL database operations, including executing SQL queries, viewing database connections and statistics, listing extensions, and querying system catalogs.
Enables interaction with self-hosted Supabase instances, providing tools for database introspection, SQL query execution, schema management, migrations, auth user management, storage bucket operations, and TypeScript type generation.
자체 호스팅 Supabase MCP 서버
개요
이 프로젝트는 자체 호스팅 Supabase 인스턴스 와의 상호 작용을 위해 특별히 설계된 모델 컨텍스트 프로토콜(MCP) 서버를 제공합니다. 이 서버는 MCP 클라이언트(IDE 확장 프로그램 등)와 로컬 또는 비공개 호스팅 Supabase 프로젝트 간의 격차를 해소하여 개발 환경에서 직접 데이터베이스 검사, 관리 및 상호 작용을 지원합니다.
이 서버는 Supabase 공식 클라우드 MCP 서버를 적용한 경험을 바탕으로 자체 호스팅 사용 사례에 맞춰 최소한의 집중적인 구현을 제공하기 위해 처음부터 구축되었습니다.
목적
이 서버의 주요 목표는 자체 호스팅 Supabase 설치를 사용하는 개발자가 다음과 같은 작업에 MCP 기반 도구를 활용할 수 있도록 하는 것입니다.
- 데이터베이스 스키마와 데이터 쿼리.
- 데이터베이스 마이그레이션 관리.
- 데이터베이스 통계 및 연결을 검사합니다.
- 인증 사용자 관리.
- Supabase 저장소와 상호작용합니다.
- 유형 정의 생성.
다중 프로젝트 관리 및 클라우드 전용 API와 관련된 공식 클라우드 서버의 복잡성을 피하고, 단일 프로젝트의 셀프 호스팅 환경에 대한 간소화된 경험을 제공합니다.
기능(구현된 도구)
서버는 다음 도구를 MCP 클라이언트에 제공합니다.
- 스키마 및 마이그레이션
list_tables
: 데이터베이스 스키마의 테이블을 나열합니다.list_extensions
: 설치된 PostgreSQL 확장 기능을 나열합니다.list_migrations
: 적용된 Supabase 마이그레이션을 나열합니다.apply_migration
: SQL 마이그레이션 스크립트를 적용합니다.
- 데이터베이스 작업 및 통계
execute_sql
: 임의의 SQL 쿼리를 실행합니다(RPC 또는 직접 연결을 통해).get_database_connections
: 활성 데이터베이스 연결을 보여줍니다(pg_stat_activity
).get_database_stats
: 데이터베이스 통계를 검색합니다(pg_stat_*
).
- 프로젝트 구성 및 키
get_project_url
: 구성된 Supabase URL을 반환합니다.get_anon_key
: 구성된 Supabase 익명 키를 반환합니다.get_service_key
: 구성된 Supabase 서비스 역할 키를 반환합니다(제공된 경우).verify_jwt_secret
: JWT 비밀번호가 구성되었는지 확인하고 미리 보기를 반환합니다.
- 개발 및 확장 도구
generate_typescript_types
: 데이터베이스 스키마에서 TypeScript 유형을 생성합니다.rebuild_hooks
:pg_net
워커를 다시 시작하려고 시도합니다(사용하는 경우).
- 인증 사용자 관리
list_auth_users
:auth.users
에서 사용자를 나열합니다.get_auth_user
: 특정 사용자에 대한 세부 정보를 검색합니다.create_auth_user
: 새로운 사용자를 생성합니다(직접 DB 접근이 필요하고, 안전하지 않은 비밀번호 처리가 필요합니다).delete_auth_user
: 사용자를 삭제합니다(DB에 직접 접근해야 함).update_auth_user
: 사용자 세부 정보를 업데이트합니다(직접 DB 액세스, 안전하지 않은 암호 처리가 필요함).
- 스토리지 인사이트
list_storage_buckets
: 모든 스토리지 버킷을 나열합니다.list_storage_objects
: 특정 버킷 내의 객체를 나열합니다.
- 실시간 검사
list_realtime_publications
: PostgreSQL 게시물(종종supabase_realtime
)을 나열합니다.
(참고: get_logs
원래 계획되었지만 셀프 호스팅 환경에서 구현이 복잡하여 생략되었습니다.)
설정 및 설치
Smithery를 통해 설치
Smithery를 통해 Claude Desktop용 Self-Hosted Supabase MCP 서버를 자동으로 설치하려면:
지엑스피1
필수 조건
- Node.js(버전 18.x 이상 권장)
- npm(일반적으로 Node.js에 포함됨)
- 자체 호스팅 Supabase 인스턴스에 대한 액세스(URL, 키, 잠재적으로 직접 DB 연결 문자열).
단계
- 저장소를 복제합니다.Copy
- 종속성 설치:Copy
- 프로젝트를 빌드하세요:이렇게 하면 TypeScript 코드가Copy
dist
디렉토리의 JavaScript로 컴파일됩니다.
구성
서버에는 Supabase 인스턴스에 대한 구성 정보가 필요합니다. 이러한 정보는 명령줄 인수 또는 환경 변수를 통해 제공할 수 있습니다. CLI 인수가 우선합니다.
필수의:
--url <url>
또는SUPABASE_URL=<url>
: Supabase 프로젝트의 기본 HTTP URL(예:http://localhost:8000
).--anon-key <key>
또는SUPABASE_ANON_KEY=<key>
: Supabase 프로젝트의 익명 키입니다.
선택 사항(그러나 특정 도구의 경우 권장/필수):
--service-key <key>
또는SUPABASE_SERVICE_ROLE_KEY=<key>
: Supabase 프로젝트의 서비스 역할 키입니다.execute_sql
도우미 함수가 없는 경우 자동으로 생성하려는 경우처럼 높은 권한이 필요한 작업에 필요합니다.--db-url <url>
또는DATABASE_URL=<url>
: Supabase 데이터베이스에 대한 직접 PostgreSQL 연결 문자열(예:postgresql://postgres:password@localhost:5432/postgres
). 직접 데이터베이스 액세스 또는 트랜잭션이 필요한 도구(apply_migration
, 인증 도구, 저장소 도구,pg_catalog
쿼리 등)에 필요합니다.--jwt-secret <secret>
또는SUPABASE_AUTH_JWT_SECRET=<secret>
: Supabase 프로젝트의 JWT 비밀입니다.verify_jwt_secret
과 같은 도구에 필요합니다.--tools-config <path>
: 활성화할 도구(허용 목록)를 지정하는 JSON 파일 경로입니다. 생략하면 서버에 정의된 모든 도구가 활성화됩니다. 파일 형식은{"enabledTools": ["tool_name_1", "tool_name_2"]}
여야 합니다.
중요 참고 사항:
execute_sql
도우미 함수: 많은 도구가 RPC를 통한 안전하고 효율적인 SQL 실행을 위해 Supabase 데이터베이스 내의public.execute_sql
함수를 사용합니다. 서버는 시작 시 이 함수를 확인하려고 시도합니다. 이 함수가 없고service-key
(또는SUPABASE_SERVICE_ROLE_KEY
) 와db-url
(또는DATABASE_URL
)이 제공된 경우, 서버는 함수를 생성하고 필요한 권한을 부여하려고 시도합니다. 생성에 실패하거나 키가 제공되지 않으면 RPC에만 의존하는 도구가 실패할 수 있습니다.- 직접 데이터베이스 액세스: 권한이 있는 스키마(
auth
,storage
) 또는 시스템 카탈로그(pg_catalog
)와 직접 상호 작용하는 도구는 일반적으로 직접pg
연결을 위해DATABASE_URL
구성해야 합니다.
용법
Node.js를 사용하여 서버를 실행하고 필요한 구성을 제공합니다.
서버는 표준 입출력(stdio)을 통해 통신하며 MCP 클라이언트 애플리케이션(예: Cursor와 같은 IDE 확장 프로그램)에서 호출되도록 설계되었습니다. 클라이언트는 서버의 stdio 스트림에 연결하여 사용 가능한 도구를 나열하고 호출합니다.
클라이언트 구성 예
다음은 이 셀프 호스팅 서버를 사용하도록 인기 있는 MCP 클라이언트를 구성하는 방법에 대한 예입니다.
중요한:
<your-supabase-url>
,<your-anon-key>
,<your-db-url>
,<path-to-dist/index.js>
등의 플레이스홀더를 실제 값으로 바꾸세요.- 컴파일된 서버 파일(
dist/index.js
)의 경로가 시스템에 맞는지 확인하세요. - 특히 버전 관리에 커밋된 경우 민감한 키를 구성 파일에 직접 저장하는 데 주의하세요. 클라이언트에서 지원하는 경우 환경 변수나 더 안전한 방법을 사용하는 것이 좋습니다.
커서
- 프로젝트 루트에
.cursor/mcp.json
파일을 만들거나 엽니다. - 다음 구성을 추가합니다.Copy
Visual Studio Code(Copilot)
VS Code Copilot을 사용하면 프롬프트 입력을 통해 채워진 환경 변수를 사용할 수 있으므로 키에 대한 보안이 더 강화됩니다.
- 프로젝트 루트에서
.vscode/mcp.json
파일을 만들거나 엽니다. - 다음 구성을 추가합니다.Copy
- 에이전트 모드(@workspace)에서 Copilot Chat을 사용하면 서버를 감지해야 합니다. 서버를 처음 호출할 때 세부 정보(URL, 키, 경로)를 입력하라는 메시지가 표시됩니다.
다른 고객(윈드서프, 클라인, 클로드)
Cursor 또는 공식 Supabase 문서에 표시된 구성 구조를 조정하여 command
과 args
Cursor 예제와 유사하게 이 서버에 대한 node
명령과 인수로 바꿉니다.
mcp.json
또는 이와 동등한 구성 파일을 어디에 배치해야 하는지에 대한 자세한 내용은 각 클라이언트의 특정 문서를 참조하세요.
개발
- 언어: TypeScript
- 빌드:
tsc
(TypeScript 컴파일러) - 종속성:
npm
(package.json
)을 통해 관리됨 - 핵심 라이브러리:
@supabase/supabase-js
,pg
(node-postgres),zod
(검증),commander
(CLI 인수),@modelcontextprotocol/sdk
(MCP 서버 프레임워크).
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 라이선스 파일을 참조하세요.
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
개발 환경에서 직접 셀프 호스팅 Supabase 인스턴스와 상호 작용할 수 있는 프로토콜 서버로, IDE 확장과 같은 MCP 클라이언트를 통해 데이터베이스 검사, 마이그레이션 관리, 사용자 인증 및 저장소를 허용합니다.
Related MCP Servers
- AsecurityFlicenseAqualityA Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.Last updated -88427JavaScript
- AsecurityAlicenseAqualityAn MCP server that provides tools for interacting with Supabase databases, storage, and edge functions.Last updated -1441JavaScriptMIT License
- -security-license-qualityAn MCP server utilizing Supabase to provide memory and knowledge graph storage, enabling multiple Claude instances to share and manage data with database-level locking for safe concurrent access.Last updated -JavaScript
- AsecurityAlicenseAqualityThis server enables interaction with Supabase PostgreSQL databases through the MCP protocol, allowing seamless integration with Cursor and Windsurf IDEs for secure and validated database management.Last updated -11649PythonApache 2.0