Supabase
Interaja com bancos de dados Supabase, consulte tabelas e gere tipos TypeScript.
Documentação
Servidor MCP do Supabase
Um servidor do Protocolo de Contexto de Modelo (MCP) para interagir com bancos de dados do Supabase. Este servidor fornece ferramentas para consultar tabelas e gerar tipos TypeScript por meio da interface MCP.
Recursos
-
Consultar Tabelas: Execute consultas em qualquer tabela com suporte para:
- Seleção de esquema
- Filtragem de colunas
- Cláusulas WHERE com múltiplos operadores
- Paginação
- Tratamento de erros
-
Geração de Tipos: Gere tipos TypeScript para o seu banco de dados:
- Suporte para qualquer esquema (public, auth, api, etc.)
- Funciona com projetos Supabase locais e remotos
- Saída direta no console
- Detecção automática de referência do projeto
Pré-requisitos
- Node.js (v16 ou superior)
- Um projeto Supabase (local ou hospedado)
- Supabase CLI (para geração de tipos)
Instalação
- Clone o repositório:
git clone https://github.com/yourusername/supabase-mcp-server.git
cd supabase-mcp-server
- Instale as dependências:
npm install
- Instale o Supabase CLI (necessário para geração de tipos):
# Using npm
npm install -g supabase
# Or using Homebrew on macOS
brew install supabase/tap/supabase
Configuração
-
Obtenha suas credenciais do Supabase:
-
Para projetos hospedados:
- Acesse o painel do seu projeto Supabase
- Navegue até Project Settings > API
- Copie a URL do projeto e a chave service_role (NÃO a chave anon)
-
Para projetos locais:
- Inicie sua instância local do Supabase
- Use a URL local (normalmente http://localhost:54321)
- Use sua chave service_role local
-
-
Configure as variáveis de ambiente:
# Create a .env file (this will be ignored by git)
echo "SUPABASE_URL=your_project_url
SUPABASE_KEY=your_service_role_key" > .env
- Compile o servidor:
npm run build
Integração com Claude Desktop
-
Abra as configurações do Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
Adicione a configuração do servidor:
{
"mcpServers": {
"supabase": {
"command": "node",
"args": ["/absolute/path/to/supabase-mcp-server/build/index.js"],
"env": {
"SUPABASE_URL": "your_project_url",
"SUPABASE_KEY": "your_service_role_key"
}
}
}
}
Integração com a Extensão do VSCode
-
Abra as configurações do VSCode:
- macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json - Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- macOS:
-
Adicione a configuração do servidor (mesmo formato do Claude Desktop).
Exemplos de Uso
Consultando Tabelas
// Query with schema selection and where clause
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>query_table</tool_name>
<arguments>
{
"schema": "public",
"table": "users",
"select": "id,name,email",
"where": [
{
"column": "is_active",
"operator": "eq",
"value": true
}
]
}
</arguments>
</use_mcp_tool>
Gerando Tipos
// Generate types for public schema
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>generate_types</tool_name>
<arguments>
{
"schema": "public"
}
</arguments>
</use_mcp_tool>
Ferramentas Disponíveis
query_table
Consulte uma tabela específica com seleção de esquema e suporte a cláusula WHERE.
Parâmetros:
schema(opcional): Esquema do banco de dados (padrão: public)table(obrigatório): Nome da tabela a ser consultadaselect(opcional): Lista de colunas separadas por vírgulawhere(opcional): Matriz de condições com:column: Nome da colunaoperator: Um de: eq, neq, gt, gte, lt, lte, like, ilike, isvalue: Valor para comparação
generate_types
Gere tipos TypeScript para o esquema do banco de dados do Supabase.
Parâmetros:
schema(opcional): Esquema do banco de dados (padrão: public)
Solução de Problemas
Problemas com Geração de Tipos
- Garanta que o Supabase CLI esteja instalado:
supabase --version
-
Para projetos locais:
- Certifique-se de que sua instância local do Supabase esteja em execução
- Verifique se a chave service_role está correta
-
Para projetos hospedados:
- Confirme se a referência do projeto está correta (extraída da URL)
- Verifique se você está usando a chave service_role, não a chave anon
Problemas com Consultas
- Verifique os nomes do esquema e da tabela
- Confirme os nomes das colunas nas cláusulas select e where
- Garanta que sua chave service_role tenha as permissões necessárias
Contribuindo
- Faça um fork do repositório
- Crie sua branch de recurso:
git checkout -b feature/my-feature - Faça commit das suas alterações:
git commit -am 'Add my feature' - Envie para a branch:
git push origin feature/my-feature - Envie um pull request
Licença
Licença MIT - consulte o arquivo LICENSE para obter detalhes