Supabase MCP
공식Supabase 프로젝트, 데이터베이스, 인증, 스토리지, 엣지 함수 및 SQL 워크플로우를 AI 에이전트에서 관리할 수 있는 공식 Supabase MCP 서버입니다.
Supabase MCP(으)로 무엇을 할 수 있나요?
- 데이터베이스 테이블 관리 — AI에게
list_tables및create_table과 같은 도구를 사용하여 Supabase 프로젝트에서 테이블을 나열, 생성, 업데이트 또는 삭제하도록 요청하세요. - 프로젝트 구성 가져오기 —
get_project_url및 관련 구성 도구를 사용하여 프로젝트 설정, 환경 변수 및 API 자격 증명을 검색합니다. - 데이터 쿼리 및 검사 — AI가 읽기 전용 SQL 쿼리를 실행하거나 MCP 서버를 통해 데이터베이스 스키마를 직접 탐색하도록 하세요.
- AI SDK와 통합 —
createToolSchemas()를 사용하여 Vercel AI SDK의 MCP 클라이언트에 대한 타입이 지정된 입력/출력 스키마를 가져옵니다.
문서
Supabase MCP 서버
Supabase 프로젝트를 Cursor, Claude, Windsurf 및 기타 AI 어시스턴트에 연결하세요.
모델 컨텍스트 프로토콜(MCP)은 대규모 언어 모델(LLM)이 Supabase와 같은 외부 서비스와 통신하는 방식을 표준화합니다. AI 어시스턴트를 Supabase 프로젝트에 직접 연결하여 테이블 관리, 설정 가져오기, 데이터 쿼리와 같은 작업을 수행할 수 있도록 합니다. 전체 도구 목록을 참조하세요.
설정
1. 보안 모범 사례 준수
MCP 서버를 설정하기 전에, LLM을 Supabase 프로젝트에 연결할 때의 위험과 이를 완화하는 방법을 이해하려면 보안 모범 사례를 읽어보시기를 권장합니다.
2. MCP 클라이언트 구성
클라이언트에서 Supabase MCP 서버를 구성하려면 설정 문서를 방문하세요. Supabase 대시보드의 MCP 연결 탭에서 프로젝트에 대한 사용자 지정 MCP URL을 생성할 수도 있습니다.
설정 중에 MCP 클라이언트가 자동으로 Supabase에 로그인하라는 메시지를 표시합니다. 작업하려는 프로젝트가 포함된 조직을 선택해야 합니다.
대부분의 MCP 클라이언트에는 다음 정보가 필요합니다.
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp"
}
}
}
문서에 MCP 클라이언트가 나열되어 있지 않으면 클라이언트의 MCP 문서를 확인하고 위의 MCP 정보를 예상 형식(json, yaml 등)으로 복사하세요.
CLI
Supabase CLI를 사용하여 로컬에서 Supabase를 실행하는 경우 http://localhost:54321/mcp에서 MCP 서버에 액세스할 수 있습니다. 현재 CLI 환경의 MCP 서버는 제한된 도구 하위 집합을 제공하며 OAuth 2.1은 제공하지 않습니다.
자체 호스팅
자체 호스팅 Supabase의 경우 MCP 서버 활성화 페이지를 확인하세요. 현재 자체 호스팅 환경의 MCP 서버는 제한된 도구 하위 집합을 제공하며 OAuth 2.1은 제공하지 않습니다.
구성 옵션 및 도구
사용 가능한 도구 및 구성 옵션의 전체 목록은 Supabase MCP 서버 문서를 참조하세요.
문서에는 구성 옵션을 자동으로 채워주는 대화형 URL 빌더도 있습니다.
보안 위험
[!TIP] MCP 서버를 사용하기 전에 Supabase 문서에서 보안 위험과 권장 완화 방법을 검토하세요.
AI SDK의 MCP 클라이언트와 함께 사용
@supabase/mcp-server-supabase 패키지는 Vercel AI SDK의 MCP 클라이언트에 대한 입력 및 출력 스키마를 채우기 위해 createToolSchemas()를 내보냅니다. 이를 통해 Supabase MCP 도구를 클라이언트 측 유효성 검사와 입력 및 출력에 대한 추론된 TypeScript 유형이 있는 정적 도구로 취급할 수 있습니다.
import { createToolSchemas } from '@supabase/mcp-server-supabase';
import { createMCPClient } from '@ai-sdk/mcp';
import { streamText } from 'ai';
const mcpClient = await createMCPClient({
transport: {
type: 'http',
url: 'https://mcp.supabase.com/mcp',
},
});
const tools = await mcpClient.tools({
schemas: createToolSchemas(),
});
const result = streamText({ model, tools, prompt: '...' });
for (const step of await result.steps) {
for (const toolResult of step.staticToolResults) {
if (toolResult.toolName === 'get_project_url') {
toolResult.input; // { project_id: string }
toolResult.output; // { url: string }
}
}
}
createToolSchemas()는 MCP 서버의 URL 매개변수와 유사한 필터링 옵션을 허용합니다.
features: 특정 기능 그룹(예:['database', 'docs'])으로 제한합니다. 기본값은 모든 기본 기능 그룹입니다.projectScoped:true인 경우 도구 입력 스키마에서project_id를 생략하고 계정 수준 도구를 제외합니다.project_ref으로 구성된 서버에 연결할 때 사용합니다. 기본값은false입니다.readOnly:true인 경우 변경 도구를 제외합니다.read_only=true으로 구성된 서버에 연결할 때 사용합니다. 기본값은false입니다.
const mcpClient = await createMCPClient({
transport: {
type: 'http',
url: 'https://mcp.supabase.com/mcp?project_ref=<project-ref>&read_only=true&features=database,docs',
},
});
const tools = await mcpClient.tools({
schemas: createToolSchemas({
features: ['database', 'docs'],
projectScoped: true,
readOnly: true,
}),
});
[!NOTE] 이 서버는 MCP 도구 결과에
structuredContent를 전송하지 않습니다. AI SDK는content텍스트에서 JSON을 파싱하는 방식으로 대체합니다.
자세한 내용은 AI SDK 문서의 스키마 정의 및 유형화된 도구 출력을 참조하세요.
기타 MCP 서버
@supabase/mcp-server-postgrest
PostgREST MCP 서버를 사용하면 REST API를 통해 자체 사용자를 앱에 연결할 수 있습니다. 자세한 내용은 프로젝트 README에서 확인하세요.
리소스
- 모델 컨텍스트 프로토콜: MCP와 그 기능에 대해 자세히 알아보세요.
- 개발에서 프로덕션까지: 프로덕션 환경으로 변경 사항을 안전하게 승격하는 방법을 알아보세요.
개발자용
이 프로젝트에 기여하는 방법에 대한 자세한 내용은 CONTRIBUTING을 참조하세요.
라이선스
이 프로젝트는 Apache 2.0에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.