Supabase MCP
resmiSupabase projelerini, veritabanlarını, kimlik doğrulamayı, depolamayı, edge fonksiyonlarını ve SQL iş akışlarını yapay zeka ajanlarından yönetmek için resmi Supabase MCP sunucusu.
Supabase MCP ile neler yapabilirsiniz?
- Veritabanı tablolarını yönetin — Asistanınızdan Supabase projenizin veritabanında tablo oluşturmasını, değiştirmesini veya silmesini isteyin.
- Verileri sorgulayın ve inceleyin — Asistanınıza SQL sorguları çalıştırın veya verilerinizle ilgili soruları yanıtlamak için tablo içeriklerini getirtin.
- Proje yapılandırmasını alın — Bağlantı bilgileri veya özellik bayrakları gibi Supabase proje ayarlarınız hakkında ayrıntılar isteyin.
- Erişim kapsamını sınırlayın — Sunucuyu
read_only=trueveyaproject_refile yapılandırarak araçları güvenli, projeye özel işlemlerle sınırlandırın.
Barındırılan MCP Sunucusu
npx add-mcp 'https://mcp.supabase.com/mcp'Claude Code, Codex, Cursor ve daha fazlasına kurulur
Dokümantasyon
Supabase MCP Sunucusu
Supabase projelerinizi Cursor, Claude, Windsurf ve diğer yapay zeka asistanlarına bağlayın.
Model Context Protocol (MCP), Büyük Dil Modellerinin (LLM'ler) Supabase gibi harici hizmetlerle nasıl iletişim kuracağını standartlaştırır. Yapay zeka asistanlarını doğrudan Supabase projenize bağlar ve tablo yönetimi, yapılandırma getirme ve veri sorgulama gibi görevleri gerçekleştirmelerine olanak tanır. Araçların tam listesine göz atın.
Kurulum
1. Güvenlik en iyi uygulamalarımızı izleyin
MCP sunucusunu kurmadan önce, bir LLM'yi Supabase projelerinize bağlamanın risklerini ve bunları nasıl azaltacağınızı anlamak için güvenlik en iyi uygulamalarımızı okumanızı öneririz.
2. MCP istemcinizi yapılandırın
Supabase MCP sunucusunu istemcinizde yapılandırmak için kurulum dokümantasyonumuzu ziyaret edin. Ayrıca Supabase kontrol panelindeki MCP bağlantı sekmesini ziyaret ederek projeniz için özel bir MCP URL'si oluşturabilirsiniz.
MCP istemciniz, kurulum sırasında sizi otomatik olarak Supabase'e giriş yapmanız için yönlendirecektir. Çalışmak istediğiniz projeyi içeren organizasyonu seçtiğinizden emin olun.
Çoğu MCP istemcisi aşağıdaki bilgileri gerektirir:
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp"
}
}
}
MCP istemcinizi dokümantasyonumuzda listelenmiş halde göremiyorsanız, istemcinizin MCP dokümantasyonunu kontrol edin ve yukarıdaki MCP bilgilerini beklenen formatlarına (json, yaml vb.) kopyalayın.
CLI
Supabase'i Supabase CLI ile yerel olarak çalıştırıyorsanız, MCP sunucusuna http://localhost:54321/mcp adresinden erişebilirsiniz. Şu anda, CLI ortamlarındaki MCP Sunucusu sınırlı bir araç alt kümesi sunar ve OAuth 2.1 desteklemez.
Kendi kendine barındırma
Kendi kendine barındırılan Supabase için MCP sunucusunu etkinleştirme sayfasına göz atın. Şu anda, kendi kendine barındırılan ortamlardaki MCP Sunucusu sınırlı bir araç alt kümesi sunar ve OAuth 2.1 desteklemez.
Yapılandırma seçenekleri ve araçlar
Mevcut araçların ve yapılandırma seçeneklerinin tam listesi için Supabase MCP Sunucusu dokümantasyonuna bakın.
Dokümantasyon ayrıca sizin için yapılandırma seçeneklerini doldurmak üzere etkileşimli bir URL oluşturucu içerir.
AI SDK'nın MCP İstemcisi ile Kullanım
@supabase/mcp-server-supabase paketi, Vercel AI SDK'nın MCP istemcisi için giriş ve çıkış şemalarını doldurmak üzere createToolSchemas() dışa aktarır. Bu, Supabase MCP araçlarının, istemci tarafı doğrulama ve giriş/çıkışları için çıkarılan TypeScript türleri ile statik araçlar olarak ele alınmasına olanak tanır.
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 sunucusunun URL parametrelerine benzer filtreleme seçeneklerini kabul eder:
features: Belirli özellik gruplarıyla sınırlayın (örn.['database', 'docs']). Varsayılan olarak tüm varsayılan özellik gruplarına ayarlıdır.projectScoped:trueolduğunda,project_idaraç giriş şemalarından çıkarılır ve hesap düzeyindeki araçlar hariç tutulur —project_refile yapılandırılmış bir sunucuya bağlanırken kullanın. Varsayılan olarakfalsedeğerine ayarlıdır.readOnly:trueolduğunda, değiştiren araçları hariç tutar —read_only=trueile yapılandırılmış bir sunucuya bağlanırken kullanın. Varsayılan olarakfalsedeğerine ayarlıdır.
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,
}),
});
[!NOT] Bu sunucu, MCP araç sonuçlarında
structuredContentgöndermez. AI SDK,contentmetninden JSON ayrıştırmaya geri döner.
Daha fazla bilgi için AI SDK dokümantasyonundaki Şema Tanımı ve Yazılan Araç Çıktıları bölümlerine bakın.
MCP Uç Noktasını Kendi Kendine Barındırma
@supabase/mcp-server-supabase paketi, araçları kendi uç noktanızdan HTTP üzerinden sunmak için createSupabaseMcpHandler() dışa aktarır. createSupabaseMcpServer() ile aynı SupabaseMcpServerOptions kabul eder, en önemlisi platform.
İşleyici yalnızca mevcut protokol revizyonunu konuşur. legacy: 'reject' ile oluşturulur, bu nedenle yalnızca 2025 dönemi protokolünü konuşan bir istemci, hizmet verilmek yerine HTTP 400 alır.
platform istek başına bir kimlik bilgisi taşıdığında, işleyiciyi istek başına oluşturun ve yanıt bittiğinde kapatın. İşleyici, sağladığınız platform üzerinde kapanır, bu nedenle paylaşılan bir işleyici her isteğe o platformla hizmet verir.
platform paylaşılması amaçlandığında, örneğin bir hizmet hesabı belirteci, uzun ömürlü bir işleyici uygundur. Yanıt başına değil, bir kez oluşturun ve kapanışta close() yapın, çünkü close() abonelik yönlendiricisini yok eder ve sonraki istekleri reddeder.
import { createServer } from 'node:http';
import { toNodeHandler } from '@modelcontextprotocol/node';
import { createSupabaseMcpHandler } from '@supabase/mcp-server-supabase';
import { createSupabaseApiPlatform } from '@supabase/mcp-server-supabase/platform/api';
const server = createServer((req, res) => {
const accessToken = getAccessTokenFromRequest(req); // your own auth
const handler = createSupabaseMcpHandler({
platform: createSupabaseApiPlatform({ accessToken }),
});
// `close()` aborts in-flight exchanges, so close on `res` finishing rather
// than when the handler resolves, which would cut streaming responses short.
res.on('close', () => {
handler.close().catch((error) => console.error(error));
});
toNodeHandler(handler)(req, res).catch((error) => console.error(error));
});
toNodeHandler, @modelcontextprotocol/node kaynağından gelir. Kodunuz onu doğrudan içe aktarır, bu nedenle yanına kurun.
Gözlemlenebilirlik
İstek yaşam döngüsü sonuçlarını ve Supabase'in yerleşik gerçeklerini toplamak için createSupabaseMcpServer öğesine bir observer iletin. Burada platform, mevcut platform bağdaştırıcınızdır:
import { createSupabaseMcpServer } from '@supabase/mcp-server-supabase';
const server = createSupabaseMcpServer({
platform,
observer: (context) => ({
record(fact) {
console.info(fact);
},
end(result) {
console.info({ ...context, ...result });
},
}),
});
Sunucu, istek veya yanıt yüklerini otomatik olarak gözlemciye iletmez. Supabase'in yerleşik gerçekleri, sınırlı bir alan ve değer kümesi kullanır; özel gerçekler otomatik gizlilik doğrulaması almaz. observer atlanması tüm gözlem çalışmasını atlar. Gözlemci, sınıflandırıcı ve havuz hataları istek davranışını değiştirmez, ancak senkron gözlemci ve sınıflandırıcı çalışması istekleri engelleyebilir.
Diğer MCP sunucuları
@supabase/mcp-server-postgrest
PostgREST MCP sunucusu, kendi kullanıcılarınızı REST API aracılığıyla uygulamanıza bağlamanıza olanak tanır. Daha fazla ayrıntı için proje README'sine bakın.
Kaynaklar
- Model Context Protocol: MCP ve yetenekleri hakkında daha fazla bilgi edinin.
- Geliştirmeden üretime: Değişiklikleri üretim ortamlarına güvenle nasıl aktaracağınızı öğrenin.
Geliştiriciler için
Bu projeye nasıl katkıda bulunacağınızla ilgili ayrıntılar için KATKIDA BULUNMA bölümüne bakın.
Lisans
Bu proje Apache 2.0 altında lisanslanmıştır. Ayrıntılar için LİSANS dosyasına bakın.