Supabase MCP
आधिकारिकSupabase परियोजनाओं, डेटाबेस, प्रमाणीकरण, भंडारण, एज फंक्शन और AI एजेंटों से SQL वर्कफ़्लो के प्रबंधन के लिए आधिकारिक Supabase MCP सर्वर।
Supabase MCP के साथ आप क्या कर सकते हैं?
- डेटाबेस तालिकाओं की सूची बनाएं और उनका निरीक्षण करें — AI से अपने स्कीमा में सभी तालिकाओं को
list_tablesका उपयोग करके सूचीबद्ध करने और फिरexecute_sqlके साथ उन्हें क्वेरी करने के लिए कहें। - स्कीमा माइग्रेशन लागू करें — AI से
apply_migrationके माध्यम से DDL परिवर्तन (जैसे, कोई तालिका बनाना या कॉलम जोड़ना) उत्पन्न और लागू करवाएं। - Supabase दस्तावेज़ खोजें — सुविधाओं या कॉन्फ़िगरेशन पर मार्गदर्शन के लिए AI को
search_docsकॉल करने के लिए कहकर आधिकारिक दस्तावेज़ों से अद्यतन उत्तर प्राप्त करें। - डीबगिंग के लिए प्रोजेक्ट लॉग प्राप्त करें — त्रुटियों या प्रदर्शन समस्याओं की जांच करने के लिए AI से सेवा प्रकार (API, Postgres, Auth, आदि) के अनुसार
get_logsका उपयोग करके लॉग प्राप्त करने के लिए कहें। - अपने स्कीमा से TypeScript प्रकार उत्पन्न करें — AI से
generate_typescript_typesचलाने और टाइप-सुरक्षित डेटाबेस एक्सेस के लिए आउटपुट को एक फ़ाइल में सहेजने के लिए कहें। - Edge Functions प्रबंधित करें — AI से
list_edge_functions,get_edge_function, औरdeploy_edge_functionका उपयोग करके Edge Functions को सूचीबद्ध करने, निरीक्षण करने या तैनात करने के लिए कहें।
दस्तावेज़
Supabase MCP सर्वर
अपने Supabase प्रोजेक्ट्स को Cursor, Claude, Windsurf और अन्य AI सहायकों से कनेक्ट करें।
मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) यह मानकीकृत करता है कि बड़े भाषा मॉडल (LLM) Supabase जैसी बाहरी सेवाओं से कैसे बात करते हैं। यह AI सहायकों को सीधे आपके Supabase प्रोजेक्ट से जोड़ता है और उन्हें टेबल प्रबंधित करने, कॉन्फ़िगरेशन प्राप्त करने और डेटा क्वेरी करने जैसे कार्य करने की अनुमति देता है। उपकरणों की पूरी सूची देखें।
सेटअप
1. हमारी सुरक्षा सर्वोत्तम प्रथाओं का पालन करें
MCP सर्वर सेट करने से पहले, हम अनुशंसा करते हैं कि आप अपने Supabase प्रोजेक्ट्स से LLM को जोड़ने के जोखिमों और उन्हें कम करने के तरीके को समझने के लिए हमारी सुरक्षा सर्वोत्तम प्रथाएँ पढ़ें।
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 चला रहे हैं, तो आप MCP सर्वर को http://localhost:54321/mcp पर एक्सेस कर सकते हैं। वर्तमान में, CLI वातावरण में MCP सर्वर उपकरणों का एक सीमित उपसमूह प्रदान करता है और कोई OAuth 2.1 नहीं है।
स्व-होस्टेड
स्व-होस्टेड Supabase के लिए, MCP सर्वर सक्षम करना पृष्ठ देखें। वर्तमान में, स्व-होस्टेड वातावरण में MCP सर्वर उपकरणों का एक सीमित उपसमूह प्रदान करता है और कोई OAuth 2.1 नहीं है।
विकल्प
निम्नलिखित विकल्प URL क्वेरी पैरामीटर के रूप में कॉन्फ़िगर करने योग्य हैं:
read_only: सर्वर को केवल-पढ़ने के लिए क्वेरी और उपकरणों तक सीमित करने के लिए उपयोग किया जाता है। डिफ़ॉल्ट रूप से अनुशंसित। केवल-पढ़ने का मोड देखें।project_ref: सर्वर को किसी विशिष्ट प्रोजेक्ट तक सीमित करने के लिए उपयोग किया जाता है। डिफ़ॉल्ट रूप से अनुशंसित। यदि आप इसे छोड़ देते हैं, तो सर्वर के पास आपके Supabase खाते के सभी प्रोजेक्ट्स तक पहुँच होगी। प्रोजेक्ट स्कोप्ड मोड देखें।features: यह निर्दिष्ट करने के लिए उपयोग किया जाता है कि कौन से उपकरण समूह सक्षम करने हैं। फ़ीचर समूह देखें।
डैशबोर्ड या दस्तावेज़ में URL का उपयोग करते समय, ये पैरामीटर आपके लिए पॉप्युलेट हो जाएंगे।
प्रोजेक्ट स्कोप्ड मोड
प्रोजेक्ट स्कोपिंग के बिना, MCP सर्वर के पास आपके Supabase संगठन के सभी प्रोजेक्ट्स तक पहुँच होगी। हम अनुशंसा करते हैं कि आप सर्वर URL में project_ref क्वेरी पैरामीटर सेट करके सर्वर को किसी विशिष्ट प्रोजेक्ट तक सीमित करें:
https://mcp.supabase.com/mcp?project_ref=<project-ref>
<project-ref> को अपने प्रोजेक्ट की ID से बदलें। आप इसे अपनी Supabase प्रोजेक्ट सेटिंग्स में प्रोजेक्ट ID के अंतर्गत पा सकते हैं।
सर्वर को किसी प्रोजेक्ट तक सीमित करने के बाद, खाता-स्तरीय उपकरण जैसे list_projects और list_organizations अब उपलब्ध नहीं होंगे। सर्वर के पास केवल निर्दिष्ट प्रोजेक्ट और उसके संसाधनों तक पहुँच होगी।
केवल-पढ़ने का मोड
Supabase MCP सर्वर को केवल-पढ़ने की क्वेरी तक सीमित करने के लिए, सर्वर URL में read_only क्वेरी पैरामीटर सेट करें:
https://mcp.supabase.com/mcp?read_only=true
हम डिफ़ॉल्ट रूप से इस सेटिंग को सक्षम करने की अनुशंसा करते हैं। यह केवल-पढ़ने वाले Postgres उपयोगकर्ता (execute_sql के माध्यम से) के रूप में SQL निष्पादित करके आपके किसी भी डेटाबेस पर राइट ऑपरेशन को रोकता है। केवल-पढ़ने के मोड में अन्य सभी परिवर्तनकारी उपकरण अक्षम हैं, जिनमें शामिल हैं:
apply_migration
create_project
pause_project
restore_project
deploy_edge_function
create_branch
delete_branch
merge_branch
reset_branch
rebase_branch
update_storage_config.
फ़ीचर समूह
आप MCP सर्वर को features क्वेरी पैरामीटर पास करके विशिष्ट उपकरण समूहों को सक्षम या अक्षम कर सकते हैं। यह आपको यह अनुकूलित करने की अनुमति देता है कि LLM के लिए कौन से उपकरण उपलब्ध हैं। उदाहरण के लिए, केवल डेटाबेस और दस्तावेज़ उपकरणों को सक्षम करने के लिए, आप सर्वर URL को इस प्रकार निर्दिष्ट करेंगे:
https://mcp.supabase.com/mcp?features=database,docs
उपलब्ध समूह हैं: account, docs, database, debugging, development, functions, storage, और branching।
यदि यह पैरामीटर सेट नहीं है, तो डिफ़ॉल्ट फ़ीचर समूह हैं: account, database, debugging, development, docs, functions, और branching।
उपकरण
नोट: यह सर्वर प्री-1.0 है, इसलिए संस्करणों के बीच कुछ ब्रेकिंग परिवर्तनों की अपेक्षा करें। चूंकि LLM स्वचालित रूप से उपलब्ध उपकरणों के अनुकूल हो जाएंगे, इससे अधिकांश उपयोगकर्ताओं पर कोई प्रभाव नहीं पड़ना चाहिए।
निम्नलिखित Supabase उपकरण LLM के लिए उपलब्ध हैं, फ़ीचर द्वारा समूहीकृत।
खाता
डिफ़ॉल्ट रूप से सक्षम जब कोई project_ref सेट न हो। features विकल्प के साथ उपकरणों के इस समूह को लक्षित करने के लिए account का उपयोग करें।
नोट: यदि सर्वर किसी प्रोजेक्ट तक सीमित है तो ये उपकरण अनुपलब्ध होंगे।
list_projects: उपयोगकर्ता के लिए सभी Supabase प्रोजेक्ट्स को सूचीबद्ध करता है।get_project: किसी प्रोजेक्ट का विवरण प्राप्त करता है।create_project: एक नया Supabase प्रोजेक्ट बनाता है।pause_project: किसी प्रोजेक्ट को रोकता है।restore_project: किसी प्रोजेक्ट को पुनर्स्थापित करता है।list_organizations: उन सभी संगठनों को सूचीबद्ध करता है जिनका उपयोगकर्ता सदस्य है।get_organization: किसी संगठन का विवरण प्राप्त करता है।get_cost: किसी संगठन के लिए नए प्रोजेक्ट या शाखा की लागत प्राप्त करता है।confirm_cost: नए प्रोजेक्ट या शाखा की लागत के बारे में उपयोगकर्ता की समझ की पुष्टि करता है। नया प्रोजेक्ट या शाखा बनाने के लिए यह आवश्यक है।
ज्ञानकोष
डिफ़ॉल्ट रूप से सक्षम। features विकल्प के साथ उपकरणों के इस समूह को लक्षित करने के लिए docs का उपयोग करें।
search_docs: अद्यतित जानकारी के लिए Supabase दस्तावेज़ीकरण खोजता है। LLM इसका उपयोग प्रश्नों के उत्तर खोजने या विशिष्ट सुविधाओं का उपयोग करने का तरीका सीखने के लिए कर सकते हैं।
डेटाबेस
डिफ़ॉल्ट रूप से सक्षम। features विकल्प के साथ उपकरणों के इस समूह को लक्षित करने के लिए database का उपयोग करें।
list_tables: निर्दिष्ट स्कीमा के भीतर सभी तालिकाओं को सूचीबद्ध करता है।list_extensions: डेटाबेस में सभी एक्सटेंशन सूचीबद्ध करता है।list_migrations: डेटाबेस में सभी माइग्रेशन सूचीबद्ध करता है।apply_migration: डेटाबेस में SQL माइग्रेशन लागू करता है। इस उपकरण को पास किया गया SQL डेटाबेस के भीतर ट्रैक किया जाएगा, इसलिए LLM को DDL संचालन (स्कीमा परिवर्तन) के लिए इसका उपयोग करना चाहिए।execute_sql: डेटाबेस में कच्चा SQL निष्पादित करता है। LLM को इसका उपयोग नियमित प्रश्नों के लिए करना चाहिए जो स्कीमा नहीं बदलते हैं।
डिबगिंग
डिफ़ॉल्ट रूप से सक्षम। features विकल्प के साथ उपकरणों के इस समूह को लक्षित करने के लिए debugging का उपयोग करें।
get_logs: सेवा प्रकार (api, postgres, edge functions, auth, storage, realtime) द्वारा Supabase प्रोजेक्ट के लिए लॉग प्राप्त करता है। LLM इसका उपयोग डिबगिंग और सेवा प्रदर्शन की निगरानी में मदद के लिए कर सकते हैं।get_advisors: Supabase प्रोजेक्ट के लिए सलाहकार नोटिस की एक सूची प्राप्त करता है। LLM इसका उपयोग सुरक्षा कमजोरियों या प्रदर्शन समस्याओं की जाँच के लिए कर सकते हैं।
विकास
डिफ़ॉल्ट रूप से सक्षम। features विकल्प के साथ उपकरणों के इस समूह को लक्षित करने के लिए development का उपयोग करें।
get_project_url: किसी प्रोजेक्ट के लिए API URL प्राप्त करता है।get_publishable_keys: किसी प्रोजेक्ट के लिए अनाम API कुंजियाँ प्राप्त करता है। लीगेसी अनाम कुंजियों और आधुनिक प्रकाशन योग्य कुंजियों सहित क्लाइंट-सुरक्षित API कुंजियों की एक सरणी लौटाता है। नए अनुप्रयोगों के लिए प्रकाशन योग्य कुंजियों की अनुशंसा की जाती है।generate_typescript_types: डेटाबेस स्कीमा के आधार पर TypeScript प्रकार उत्पन्न करता है। LLM इसे एक फ़ाइल में सहेज सकते हैं और अपने कोड में उपयोग कर सकते हैं।
एज फ़ंक्शंस
डिफ़ॉल्ट रूप से सक्षम। features विकल्प के साथ उपकरणों के इस समूह को लक्षित करने के लिए functions का उपयोग करें।
list_edge_functions: Supabase प्रोजेक्ट में सभी एज फ़ंक्शंस को सूचीबद्ध करता है।get_edge_function: Supabase प्रोजेक्ट में किसी एज फ़ंक्शन के लिए फ़ाइल सामग्री पुनर्प्राप्त करता है।deploy_edge_function: Supabase प्रोजेक्ट में एक नया एज फ़ंक्शन परिनियोजित करता है। LLM इसका उपयोग नए फ़ंक्शन परिनियोजित करने या मौजूदा को अपडेट करने के लिए कर सकते हैं।
शाखाकरण (प्रायोगिक, भुगतान योजना की आवश्यकता है)
डिफ़ॉल्ट रूप से सक्षम। features विकल्प के साथ उपकरणों के इस समूह को लक्षित करने के लिए branching का उपयोग करें।
create_branch: उत्पादन शाखा से माइग्रेशन के साथ एक विकास शाखा बनाता है।list_branches: सभी विकास शाखाओं को सूचीबद्ध करता है।delete_branch: एक विकास शाखा हटाता है।merge_branch: विकास शाखा से उत्पादन में माइग्रेशन और एज फ़ंक्शंस को मर्ज करता है।reset_branch: विकास शाखा के माइग्रेशन को पूर्व संस्करण पर रीसेट करता है।rebase_branch: माइग्रेशन ड्रिफ्ट को संभालने के लिए विकास शाखा को उत्पादन पर रीबेस करता है।
स्टोरेज
उपकरण संख्या कम करने के लिए डिफ़ॉल्ट रूप से अक्षम। features विकल्प के साथ उपकरणों के इस समूह को लक्षित करने के लिए storage का उपयोग करें।
list_storage_buckets: Supabase प्रोजेक्ट में सभी स्टोरेज बकेट को सूचीबद्ध करता है।get_storage_config: Supabase प्रोजेक्ट के लिए स्टोरेज कॉन्फ़िगरेशन प्राप्त करता है।update_storage_config: Supabase प्रोजेक्ट के लिए स्टोरेज कॉन्फ़िगरेशन अपडेट करता है (भुगतान योजना की आवश्यकता है)।
सुरक्षा जोखिम
[!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 SDKcontentटेक्स्ट से JSON पार्स करने पर वापस आ जाता है।
अधिक जानकारी के लिए, AI SDK दस्तावेज़ में स्कीमा परिभाषा और टाइप्ड टूल आउटपुट देखें।
अन्य MCP सर्वर
@supabase/mcp-server-postgrest
PostgREST MCP सर्वर आपको REST API के माध्यम से अपने उपयोगकर्ताओं को आपके ऐप से जोड़ने की अनुमति देता है। इसके प्रोजेक्ट README पर अधिक विवरण देखें।
संसाधन
- मॉडल कॉन्टेक्स्ट प्रोटोकॉल: MCP और इसकी क्षमताओं के बारे में अधिक जानें।
- विकास से उत्पादन तक: उत्पादन वातावरण में परिवर्तनों को सुरक्षित रूप से बढ़ावा देने का तरीका जानें।
डेवलपर्स के लिए
इस प्रोजेक्ट में योगदान करने के विवरण के लिए CONTRIBUTING देखें।
लाइसेंस
यह प्रोजेक्ट Apache 2.0 के तहत लाइसेंस प्राप्त है। विवरण के लिए LICENSE फ़ाइल देखें।