Supabase MCP
officielServeur MCP officiel de Supabase pour gérer les projets Supabase, les bases de données, l'authentification, le stockage, les fonctions edge et les workflows SQL depuis des agents IA.
Que pouvez-vous faire avec Supabase MCP ?
- Gérer les tables de base de données — Demandez à l’IA de lister, créer, mettre à jour ou supprimer des tables dans votre projet Supabase à l’aide d’outils comme
list_tablesetcreate_table. - Récupérer la configuration du projet — Obtenez les paramètres du projet, les variables d’environnement et les identifiants API avec
get_project_urlet les outils de configuration associés. - Interroger et inspecter les données — Laissez l’IA exécuter des requêtes SQL en lecture seule ou explorer directement le schéma de votre base de données via le serveur MCP.
- Intégrer avec le SDK AI — Utilisez
createToolSchemas()pour obtenir des schémas d’entrée/sortie typés pour le client MCP du SDK AI de Vercel.
Documentation
Serveur MCP Supabase
Connectez vos projets Supabase à Cursor, Claude, Windsurf et d'autres assistants IA.
Le Model Context Protocol (MCP) standardise la manière dont les grands modèles de langage (LLM) communiquent avec des services externes comme Supabase. Il connecte directement les assistants IA à votre projet Supabase et leur permet d'effectuer des tâches telles que la gestion des tables, la récupération de configuration et l'interrogation des données. Consultez la liste complète des outils.
Configuration
1. Suivez nos bonnes pratiques de sécurité
Avant de configurer le serveur MCP, nous vous recommandons de lire nos bonnes pratiques de sécurité pour comprendre les risques liés à la connexion d'un LLM à vos projets Supabase et comment les atténuer.
2. Configurez votre client MCP
Pour configurer le serveur MCP Supabase sur votre client, consultez notre documentation de configuration. Vous pouvez également générer une URL MCP personnalisée pour votre projet en visitant l'onglet de connexion MCP dans le tableau de bord Supabase.
Votre client MCP vous invitera automatiquement à vous connecter à Supabase lors de la configuration. Assurez-vous de choisir l'organisation qui contient le projet avec lequel vous souhaitez travailler.
La plupart des clients MCP nécessitent les informations suivantes :
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp"
}
}
}
Si vous ne trouvez pas votre client MCP dans notre documentation, consultez la documentation MCP de votre client et copiez les informations MCP ci-dessus dans le format attendu (json, yaml, etc.).
CLI
Si vous exécutez Supabase localement avec la CLI Supabase, vous pouvez accéder au serveur MCP à l'adresse http://localhost:54321/mcp. Actuellement, le serveur MCP dans les environnements CLI offre un sous-ensemble limité d'outils et pas d'OAuth 2.1.
Auto-hébergé
Pour Supabase auto-hébergé, consultez la page Activation du serveur MCP. Actuellement, le serveur MCP dans les environnements auto-hébergés offre un sous-ensemble limité d'outils et pas d'OAuth 2.1.
Options de configuration et outils
Consultez la documentation du Serveur MCP Supabase pour la liste complète des outils disponibles et des options de configuration.
La documentation propose également un constructeur d'URL interactif pour renseigner les options de configuration à votre place.
Risques de sécurité
[!TIP] Avant d'utiliser le serveur MCP, passez en revue les risques de sécurité et les mesures d'atténuation recommandées dans la documentation Supabase.
Utilisation avec le client MCP d'AI SDK
Le package @supabase/mcp-server-supabase exporte createToolSchemas() pour renseigner les schémas d'entrée et de sortie du client MCP de Vercel AI SDK. Cela permet aux outils MCP Supabase d'être traités comme des outils statiques avec une validation côté client et des types TypeScript inférés pour leurs entrées et sorties.
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() accepte des options de filtrage similaires aux paramètres d'URL du serveur MCP :
features: Restreindre à des groupes de fonctionnalités spécifiques (par exemple,['database', 'docs']). Par défaut, tous les groupes de fonctionnalités par défaut.projectScoped: Lorsquetrue, ometproject_iddes schémas d'entrée des outils et exclut les outils au niveau du compte — à utiliser lors de la connexion à un serveur configuré avecproject_ref. Par défautfalse.readOnly: Lorsquetrue, exclut les outils de mutation — à utiliser lors de la connexion à un serveur configuré avecread_only=true. Par défautfalse.
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] Ce serveur n'envoie pas
structuredContentdans les résultats des outils MCP. AI SDK se rabat sur l'analyse JSON à partir du textecontent.
Pour plus d'informations, consultez Définition de schéma et Sorties d'outils typées dans la documentation d'AI SDK.
Autres serveurs MCP
@supabase/mcp-server-postgrest
Le serveur MCP PostgREST vous permet de connecter vos propres utilisateurs à votre application via une API REST. Consultez plus de détails dans son README du projet.
Ressources
- Model Context Protocol : En savoir plus sur MCP et ses capacités.
- Du développement à la production : Apprenez à promouvoir en toute sécurité les modifications vers les environnements de production.
Pour les développeurs
Consultez CONTRIBUTING pour plus de détails sur la façon de contribuer à ce projet.
Licence
Ce projet est sous licence Apache 2.0. Consultez le fichier LICENSE pour plus de détails.