Metabase

आधिकारिक

Metabase के लिए आधिकारिक MCP सर्वर, जो डेटा खोजने, सिमैंटिक लेयर पर क्वेरी बनाने और MCP क्लाइंट के माध्यम से परिणामों को विज़ुअलाइज़ करने में सक्षम बनाता है।

Metabase MCP के साथ आप क्या कर सकते हैं?

  • Metabase सामग्री खोजें — कीवर्ड या प्राकृतिक-भाषा क्वेरी का उपयोग करके तालिकाएँ, मीट्रिक्स, कार्ड, डैशबोर्ड और संग्रह खोजें search के साथ।
  • एंटिटीज़ को नेविगेट और निरीक्षण करें — डेटाबेस, स्कीमा, तालिकाओं, प्रश्नों, डैशबोर्ड और मीट्रिक्स के लिए मेटाडेटा पढ़ें read_resource के माध्यम से metabase:// URI के साथ।
  • क्वेरी बनाएँ और चलाएँconstruct_query के साथ किसी तालिका या मीट्रिक के विरुद्ध एक क्वेरी बनाएँ, फिर परिणाम और कॉलम मेटाडेटा प्राप्त करने के लिए इसे execute_query के माध्यम से निष्पादित करें।
  • रॉ SQL चलाएँexecute_sql का उपयोग करके डेटाबेस के विरुद्ध एक नेटिव SQL क्वेरी निष्पादित करें (इसके लिए नेटिव-क्वेरी अनुमति और इंस्टेंस सेटिंग सक्षम होना आवश्यक है)।
  • प्रश्नों को सहेजें और अपडेट करें — निर्मित क्वेरी से सहेजे गए प्रश्नों (कार्ड) को create_question और update_question का उपयोग करके बनाएँ या संशोधित करें, जिसमें उन्हें स्थानांतरित करना या संग्रहित करना शामिल है।
  • डैशबोर्ड बनाएँ और प्रबंधित करेंcreate_dashboard के माध्यम से स्वचालित रूप से स्थित सहेजे गए प्रश्नों के साथ नए डैशबोर्ड बनाएँ, और update_dashboard के साथ उनके मेटाडेटा को अपडेट करें या उन्हें संग्रहित करें।

दस्तावेज़

Metabase MCP सर्वर

Metabase में एक अंतर्निहित मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) सर्वर शामिल है जो AI क्लाइंट को सीधे Metabase इंस्टेंस से कनेक्ट करने देता है। यह https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http का उपयोग करता है और Metabase के एजेंट API पर आधारित है, जो खोज, नेविगेट करने, क्वेरी करने, विज़ुअलाइज़ करने और सामग्री बनाने/अपडेट करने के लिए उपकरण प्रदान करता है - सभी कनेक्टिंग उपयोगकर्ता की अनुमतियों के दायरे में।

एंडपॉइंट

MCP सर्वर इस पर उपलब्ध है:

https://{your-metabase.example.com}/api/metabase-mcp

पुराना /api/mcp पथ अभी भी मौजूदा क्लाइंट के लिए उपनाम के रूप में काम करता है, लेकिन /api/metabase-mcp विज्ञापित करने के लिए विहित URL है।

क्लाइंट कनेक्ट करना

किसी भी MCP-संगत क्लाइंट को /api/metabase-mcp एंडपॉइंट पर इंगित करें। उदाहरण के लिए, Claude Code के साथ:

claude mcp add metabase https://{your-metabase.example.com}/api/metabase-mcp --transport streamable-http

Claude Desktop के लिए, उसी URL का उपयोग करके एक कस्टम कनेक्टर बनाएँ।

Cursor के लिए, Settings > MCP खोलें और प्रकार streamable-http और URL के साथ एक नया सर्वर जोड़ें:

https://{your-metabase.example.com}/api/metabase-mcp

प्रमाणीकरण

MCP क्लाइंट OAuth 2.0 के माध्यम से प्रमाणित होते हैं। Metabase अपना स्वयं का एम्बेडेड OAuth सर्वर चलाता है - किसी बाहरी प्रदाता की आवश्यकता नहीं है।

पहली बार कनेक्शन के लिए प्रवाह:

  1. क्लाइंट Metabase के OAuth एंडपॉइंट की खोज करता है।
  2. क्लाइंट स्वयं को Metabase के साथ पंजीकृत करता है।
  3. उपयोगकर्ता को लॉग इन करने और कनेक्शन स्वीकृत करने के लिए Metabase पर पुनर्निर्देशित किया जाता है।
  4. क्लाइंट को उपयोगकर्ता की Metabase अनुमतियों के दायरे वाला एक एक्सेस टोकन प्राप्त होता है।

ब्राउज़र-आधारित सत्र (कुकी प्रमाणीकरण) भी समर्थित हैं और अप्रतिबंधित दायरे प्राप्त करते हैं।

दायरे

एक्सेस टोकन यह सीमित करने के लिए स्कोप किए जाते हैं कि क्लाइंट किन उपकरणों का उपयोग कर सकता है:

दायराएक्सेस प्रदान करता है
agent:searchsearch
agent:resource:readread_resource (हमेशा किसी भी प्रमाणित कॉलर को दिया जाता है; प्रति-URI अनुमति जाँच डिस्पैचर के अंदर होती है)
agent:query:constructconstruct_query
agent:queryquery
agent:query:executeexecute_query
agent:sql:constructconstruct_native_query
agent:sql:executeexecute_sql
agent:question:createcreate_question
agent:question:updateupdate_question ("कार्ड को संग्रह में ले जाना" और संग्रहीत करना भी शामिल है)
agent:question:executeexecute_question
agent:metric:createcreate_metric
agent:metric:updateupdate_metric ("मीट्रिक को संग्रह में ले जाना" और संग्रहीत करना भी शामिल है)
agent:dashboard:createcreate_dashboard
agent:dashboard:updateupdate_dashboard (संग्रहीत करना भी शामिल है)
agent:collection:createcreate_collection

वाइल्डकार्ड पैटर्न (जैसे agent:*) उस उपसर्ग वाले किसी भी दायरे से मेल खाते हैं।

OAuth संरक्षित संसाधन मेटाडेटा इस पर उपलब्ध है:

/.well-known/oauth-protected-resource/api/metabase-mcp

डिफ़ॉल्ट रूप से हमारी सहमति स्क्रीन अनुकूलित करने के अवसर के बिना सभी दायरों तक पहुँच प्रदान करती है।

उपलब्ध उपकरण

MCP सर्वर इन उपकरणों को उजागर करता है, जो एजेंट API एंडपॉइंट मेटाडेटा से गतिशील रूप से उत्पन्न होते हैं:

खोज + पढ़ें

उपकरणविवरण
searchकीवर्ड या प्राकृतिक-भाषा प्रश्नों का उपयोग करके तालिकाओं, मीट्रिक, कार्ड, डैशबोर्ड और संग्रहों की खोज करें।
read_resourcemetabase:// URI द्वारा एक या अधिक Metabase इकाइयाँ पढ़ें। डेटाबेस/स्कीमा/तालिका/संग्रह/प्रश्न/डैशबोर्ड/मीट्रिक/रूपांतरण नेविगेशन को कवर करता है। प्रति कॉल अधिकतम 5 URI।

क्वेरी निर्माण + निष्पादन

उपकरणविवरण
construct_queryकिसी तालिका या मीट्रिक के विरुद्ध क्वेरी बनाएँ। उपलब्ध होने पर उपयोगकर्ता का मूल prompt स्वीकार करता है। execute_query या visualize_query के साथ उपयोग के लिए एक अपारदर्शी query_handle लौटाता है।
construct_native_queryकिसी डेटाबेस के लिए एक नेटिव (कच्ची SQL) क्वेरी बनाएँ। create_question को फीड करने और इसे सहेजने के लिए एक अपारदर्शी query_handle लौटाता है। SQL निष्पादित नहीं करता है; नेटिव हैंडल execute_query/query द्वारा अस्वीकार कर दिए जाते हैं (कच्ची SQL चलाने के लिए execute_sql का उपयोग करें)।
queryकिसी तालिका या मीट्रिक से सीधे क्वेरी करें। निरंतरता टोकन के माध्यम से पृष्ठांकन का समर्थन करता है।
execute_queryपहले से निर्मित क्वेरी निष्पादित करें और कॉलम मेटाडेटा के साथ परिणाम लौटाएँ।
execute_sqlकिसी डेटाबेस के विरुद्ध कच्ची SQL क्वेरी निष्पादित करें। उपयोगकर्ता के पास लक्ष्य डेटाबेस पर नेटिव-क्वेरी अनुमति होनी आवश्यक है। mcp-execute-sql-enabled सेटिंग के माध्यम से इंस्टेंस-वाइड अक्षम किया जा सकता है।
execute_questionआईडी द्वारा सहेजा गया प्रश्न चलाएँ और उसकी पंक्तियाँ + कॉलम मेटाडेटा लौटाएँ। कॉलर की अनुमतियों के तहत चलता है। पैरामीटरयुक्त प्रश्न समर्थित नहीं हैं (एक त्रुटि लौटाता है)।

लिखें

उपकरणविवरण
create_metricकिसी क्वेरी को पुन: प्रयोज्य मीट्रिक के रूप में सहेजें। construct_query से query_handle स्वीकार करता है। क्वेरी में एक एकत्रीकरण और अधिकतम एक दिनांक समूहीकरण की आवश्यकता होती है।
update_metricसहेजे गए मीट्रिक को अपडेट करें। पैच शब्दार्थ। collection_id सेट करने से यह स्थानांतरित होता है; archived: true सेट करने से यह संग्रहीत होता है — एक प्रतिवर्ती सॉफ्ट डिलीट, जिसका उपयोग मीट्रिक हटाने के लिए कहे जाने पर किया जाता है। प्रतिस्थापन query अभी भी एक मान्य मीट्रिक होना चाहिए।
create_questionकिसी क्वेरी को नामित प्रश्न (कार्ड) के रूप में सहेजें। construct_query (MBQL) या construct_native_query (नेटिव SQL) से query_handle स्वीकार करता है। नेटिव सहेजने के लिए नेटिव-क्वेरी DB अनुमति की आवश्यकता होती है।
update_questionसहेजे गए प्रश्न को अपडेट करें। पैच शब्दार्थ। collection_id सेट करने से कार्ड स्थानांतरित होता है। archived: true सेट करने से यह संग्रहीत होता है — एक प्रतिवर्ती सॉफ्ट डिलीट, जिसका उपयोग प्रश्न हटाने के लिए कहे जाने पर किया जाता है। क्वेरी बदलने पर construct_query या construct_native_query हैंडल स्वीकार करता है।
create_dashboardएक नया डैशबोर्ड बनाएँ, वैकल्पिक रूप से सहेजे गए प्रश्नों से आबाद (ग्रिड पर ऑटो-पोज़िशन्ड)।
update_dashboardडैशबोर्ड का मेटाडेटा अपडेट करें (नाम, विवरण, संग्रह, संग्रहीत — एक प्रतिवर्ती सॉफ्ट डिलीट, जिसका उपयोग डैशबोर्ड हटाने के लिए कहे जाने पर किया जाता है)।
create_collectionएक नया संग्रह बनाएँ। वैकल्पिक रूप से parent_collection_id के अंतर्गत नेस्टेड।

क्वेरी परिणाम प्रति अनुरोध 200 पंक्तियों तक सीमित हैं। जब अधिक पंक्तियाँ उपलब्ध हों, तो प्रतिक्रिया में एक continuation_token शामिल होता है जिसे अगला पृष्ठ प्राप्त करने के लिए वापस पास किया जा सकता है।

read_resource सूची प्रतिक्रियाएँ truncated / total संकेतों के साथ 25 आइटम पर सीमित होती हैं; अधिक देखने के लिए विशिष्ट URI में ड्रिल करें, या search के माध्यम से परिष्कृत करें।

संसाधन

सर्वर MCP संसाधनों को उजागर करता है ताकि क्लाइंट उपकरण विवरण को बढ़ाए बिना URI द्वारा पूरक सामग्री प्राप्त कर सकें।

संसाधन URIविवरण
metabase://docs/construct-query.mdconstruct_query और query के लिए प्रोग्राम सिंटैक्स: स्रोत, संचालन, ऑपरेटर फॉर्म, काम किए गए उदाहरण, नुकसान।

read_resource उपकरण (ऊपर) Metabase इकाइयों (metabase://question/{id}, metabase://database/{id}/tables, आदि) को नेविगेट करने के लिए एक अलग URI योजना का उपयोग करता है। दो URI नामस्थान स्वतंत्र हैं: metabase://docs/... MCP resources/read के माध्यम से प्राप्त स्थिर संदर्भ सामग्री के लिए है, जबकि metabase://table/... और मित्र read_resource उपकरण को पास किए गए इकाई URI हैं।

समर्थित JSON-RPC विधियाँ

विधिविवरण
initializeMCP कनेक्शन प्रारंभ करें। सर्वर क्षमताएँ और एक सत्र आईडी लौटाता है।
notifications/initializedक्लाइंट अधिसूचना कि आरंभीकरण पूर्ण हो गया है।
tools/listउपलब्ध उपकरणों की सूची बनाएँ (टोकन के दायरों द्वारा फ़िल्टर किया गया)।
tools/callतर्कों के साथ एक उपकरण कॉल करें।
resources/listउपलब्ध संसाधनों की सूची बनाएँ (टोकन के दायरों द्वारा फ़िल्टर किया गया)।
resources/readURI द्वारा एक संसाधन पढ़ें। एक आरंभीकृत सत्र की आवश्यकता है।
pingकीपअलाइव पिंग।

अनुरोध व्यक्तिगत रूप से या JSON-RPC बैच के रूप में भेजे जा सकते हैं। सर्वर Accept हेडर के आधार पर JSON या SSE के साथ प्रतिक्रिया करता है।

आर्किटेक्चर

कार्यान्वयन इन फ़ाइलों में रहता है:

  • api.clj - HTTP हैंडलर। JSON-RPC अनुरोधों को पार्स करता है, प्रमाणीकरण और सत्र हेडर को मान्य करता है, मूल जाँच (DNS रिबाइंडिंग सुरक्षा) लागू करता है, और उपयुक्त विधि को डिस्पैच करता है। JSON और SSE दोनों प्रतिक्रिया प्रारूपों का समर्थन करता है।

  • tools.clj - उपकरण डिस्पैच और मैनिफेस्ट जनरेशन। एजेंट API एंडपॉइंट मेटाडेटा से उपकरण सूची बनाता है, दायरों की जाँच करता है, और सिंथेटिक एजेंट API अनुरोधों के माध्यम से उपकरण कॉल को रूट करता है।

  • resources.clj - MCP संसाधन रजिस्ट्री और हैंडलर। URI द्वारा कुंजीबद्ध दस्तावेज़ीकरण संसाधन (जैसे construct_query संदर्भ) रखता है, resources/list और resources/read पर दायरा-आधारित अभिगम नियंत्रण के साथ।

  • scope.clj - स्कोप मिलान तर्क। सटीक मिलान, वाइल्डकार्ड पैटर्न और सत्र-आधारित प्रमाणीकरण के लिए ::unrestricted प्रहरी का समर्थन करता है।

अनुरोध प्रवाह

MCP client
  -> POST /api/metabase-mcp (JSON-RPC)
  -> Origin + session validation
  -> Auth: OAuth bearer token or browser session
  -> Scope check against requested tool
  -> Synthetic request to Agent API endpoint
  -> Response materialized as MCP content
  -> JSON or SSE back to client

आगे पढ़ें