Keboola

आधिकारिक

एक ही सहज प्लेटफॉर्म पर मजबूत डेटा वर्कफ़्लो, एकीकरण और एनालिटिक्स बनाएँ।

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

  • क्वेरी स्टोरेज टेबल — असिस्टेंट से सीधे टेबलों पर क्वेरी करने और अपने Keboola प्रोजेक्ट में टेबल या बकेट के विवरण प्रबंधित करने को कहें।
  • SQL ट्रांसफ़ॉर्मेशन बनाएँ — प्राकृतिक भाषा से SQL ट्रांसफ़ॉर्मेशन बनाएँ और उन्हें जॉब के रूप में चलाएँ।
  • कंपोनेंट की जाँच करें — एक्सट्रैक्टर, राइटर, डेटा ऐप और ट्रांसफ़ॉर्मेशन कॉन्फ़िगरेशन बनाएँ, उनकी सूची देखें और उनकी जाँच करें।
  • फ़्लो प्रबंधित करें — Conditional Flows और Orchestrator Flows का उपयोग करके वर्कफ़्लो पाइपलाइन बनाएँ और प्रबंधित करें।
  • मेटाडेटा खोजें — प्राकृतिक भाषा का उपयोग करके प्रोजेक्ट दस्तावेज़ और ऑब्जेक्ट मेटाडेटा खोजें, पढ़ें और अपडेट करें।
  • डेव ब्रांच में काम करें — सभी ऑपरेशन चुनी गई डेवलपमेंट ब्रांच तक सीमित रखें, ताकि प्रोडक्शन डेटा अप्रभावित रहे।

दस्तावेज़

Ask DeepWiki

Keboola MCP Server

अपने AI एजेंट, MCP क्लाइंट (Cursor, Claude, Windsurf, VS Code ...) और अन्य AI सहायकों को Keboola से कनेक्ट करें। डेटा, ट्रांसफ़ॉर्मेशन, SQL क्वेरी और जॉब ट्रिगर उपलब्ध कराएँ—किसी ग्लू कोड की ज़रूरत नहीं। एजेंटों को सही डेटा, सही समय और सही जगह पर पहुँचाएँ।

अवलोकन

Keboola MCP Server आपके Keboola प्रोजेक्ट और आधुनिक AI टूल के बीच एक ओपन-सोर्स ब्रिज है। यह Keboola की सुविधाओं—जैसे स्टोरेज एक्सेस, SQL ट्रांसफ़ॉर्मेशन और जॉब ट्रिगर—को Claude, Cursor, CrewAI, LangChain, Amazon Q और अन्य के लिए कॉल किए जा सकने वाले टूल में बदलता है।

सुविधाएँ

AI Agent और MCP Server के साथ, आप ये कर सकते हैं:

  • स्टोरेज: टेबल से सीधे क्वेरी करें और टेबल या बकेट के विवरण प्रबंधित करें
  • कंपोनेंट: एक्सट्रैक्टर, राइटर, डेटा ऐप और ट्रांसफ़ॉर्मेशन कॉन्फ़िगरेशन बनाएँ, सूचीबद्ध करें और उनकी जाँच करें
  • SQL: प्राकृतिक भाषा का उपयोग करके SQL ट्रांसफ़ॉर्मेशन बनाएँ
  • जॉब: कंपोनेंट और ट्रांसफ़ॉर्मेशन चलाएँ और जॉब निष्पादन का विवरण प्राप्त करें
  • फ़्लो: Conditional Flows और Orchestrator Flows का उपयोग करके वर्कफ़्लो पाइपलाइन बनाएँ और प्रबंधित करें।
  • Data Apps: स्टोरेज डेटा पर आपकी क्वेरी दिखाने वाले Keboola Data Apps बनाएँ, डिप्लॉय करें और प्रबंधित करें — Keboola-प्रबंधित रिपॉज़िटरी पर या ग्राहक के GitHub रिपॉज़िटरी पर python-js ऐप (संगठन के GitHub कनेक्शन के ज़रिए क्लोन किए गए, कोई क्रेडेंशियल संग्रहीत नहीं होता), और Streamlit ऐप।
  • मेटाडेटा: प्राकृतिक भाषा का उपयोग करके प्रोजेक्ट दस्तावेज़ और ऑब्जेक्ट मेटाडेटा खोजें, पढ़ें और अपडेट करें
  • Dev Branches: डेवलपमेंट ब्रांच में सुरक्षित रूप से काम करें, प्रोडक्शन से अलग, जहाँ सभी ऑपरेशन चुनी गई ब्रांच तक सीमित होते हैं।

🚀 त्वरित शुरुआत: Remote MCP Server (सबसे आसान तरीका)

Keboola MCP Server का उपयोग करने का सबसे आसान तरीका हमारे Remote MCP Server के माध्यम से है। यह होस्टेड समाधान स्थानीय सेटअप, कॉन्फ़िगरेशन या इंस्टॉलेशन की ज़रूरत खत्म करता है।

Remote MCP Server क्या है?

हमारा रिमोट सर्वर हर मल्टी-टेनेंट Keboola स्टैक पर होस्ट किया जाता है और OAuth प्रमाणीकरण का समर्थन करता है। आप इसे किसी भी ऐसे AI सहायक से कनेक्ट कर सकते हैं जो रिमोट Streamable HTTP कनेक्शन और OAuth प्रमाणीकरण का समर्थन करता हो।

कनेक्ट कैसे करें

  1. अपने रिमोट सर्वर का URL प्राप्त करें: अपने Keboola Project Settings → MCP Server टैब पर जाएँ
  2. सर्वर URL कॉपी करें: यह https://mcp.<YOUR_REGION>.keboola.com/mcp जैसा दिखेगा
  3. अपने AI सहायक को कॉन्फ़िगर करें: URL को अपने AI सहायक की MCP सेटिंग में पेस्ट करें
  4. प्रमाणीकरण करें: आपको अपने Keboola खाते से लॉग इन करने के लिए कहा जाएगा। किस प्रोजेक्ट पर काम करना है, यह बाद में बातचीत में चुना जाता है (उदाहरण के लिए, "मेरे Keboola प्रोजेक्ट सूचीबद्ध करें" / "प्रोजेक्ट X का उपयोग करें")

समर्थित क्लाइंट

  • Cursor: अपने प्रोजेक्ट की MCP Server सेटिंग में "Install In Cursor" बटन का उपयोग करें या इस बटन पर क्लिक करें Install MCP Server
  • Claude Desktop: Settings → Integrations के ज़रिए इंटीग्रेशन जोड़ें
  • Claude Code: claude mcp add --transport http keboola <URL> का उपयोग करके इंस्टॉल करें (विवरण नीचे देखें)
  • Windsurf: रिमोट सर्वर URL के साथ कॉन्फ़िगर करें
  • Make: रिमोट सर्वर URL के साथ कॉन्फ़िगर करें
  • अन्य MCP क्लाइंट: रिमोट सर्वर URL के साथ कॉन्फ़िगर करें

Claude Code सेटअप

Claude Code एक कमांड-लाइन इंटरफ़ेस टूल है, जो आपको अपने टर्मिनल का उपयोग करके Claude से बातचीत करने देता है। आप एक सरल कमांड से Keboola MCP Server इंटीग्रेशन इंस्टॉल कर सकते हैं।

इंस्टॉलेशन:

अपने टर्मिनल में निम्न कमांड चलाएँ और <YOUR_REGION> की जगह अपना Keboola क्षेत्र डालें:

claude mcp add --transport http keboola https://mcp.<YOUR_REGION>.keboola.com/mcp

क्षेत्र-विशिष्ट कमांड:

क्षेत्रइंस्टॉलेशन कमांड
US Virginia AWSclaude mcp add --transport http keboola https://mcp.keboola.com/mcp
US Virginia GCPclaude mcp add --transport http keboola https://mcp.us-east4.gcp.keboola.com/mcp
EU Frankfurt AWSclaude mcp add --transport http keboola https://mcp.eu-central-1.keboola.com/mcp
EU Ireland Azureclaude mcp add --transport http keboola https://mcp.north-europe.azure.keboola.com/mcp
EU Frankfurt GCPclaude mcp add --transport http keboola https://mcp.europe-west3.gcp.keboola.com/mcp

उपयोग:

इंस्टॉल होने के बाद, बातचीत में /mcp टाइप करके और Keboola के वे टूल चुनकर, जिनका आप उपयोग करना चाहते हैं, Claude Code में Keboola MCP Server का उपयोग कर सकते हैं।

प्रमाणीकरण:

Claude Code में पहली बार Keboola MCP Server का उपयोग करने पर, एक ब्राउज़र विंडो खुलेगी और आपसे ये करने के लिए कहा जाएगा:

  1. अपने Keboola खाते में लॉग इन करें
  2. कनेक्शन को अधिकृत करें

प्रमाणीकरण के बाद, आप सीधे Claude Code से Keboola टूल का उपयोग शुरू कर सकते हैं। प्रोजेक्ट का चयन इसके बाद बातचीत में होता है — बस Claude से पूछें कि किस Keboola प्रोजेक्ट का उपयोग करना है।

विस्तृत सेटअप निर्देशों और क्षेत्र-विशिष्ट URL के लिए, हमारा Remote Server सेटअप दस्तावेज़ देखें।

Development Branches का उपयोग

आप अपने प्रोडक्शन डेटा को प्रभावित किए बिना Keboola development branches में सुरक्षित रूप से काम कर सकते हैं। रिमोट पर होस्ट किए गए MCP Servers KBC_BRANCH_ID पैरामीटर का सम्मान करते हैं और सभी ऑपरेशन को निर्दिष्ट ब्रांच तक सीमित रखते हैं। UI में development branch पर जाने पर URL में उसका ID मिल सकता है, उदाहरण के लिए: https://connection.us-east4.gcp.keboola.com/admin/projects/PROJECT_ID/branch/BRANCH_ID/dashboard। हर अनुरोध में X-Branch-Id: <branchId> हेडर का उपयोग करके branch ID शामिल करना ज़रूरी है; अन्यथा MCP Server डिफ़ॉल्ट रूप से production branch का उपयोग करता है। इसका प्रबंधन AI क्लाइंट या सर्वर कनेक्शन संभालने वाले वातावरण को करना चाहिए।

टूल प्राधिकरण और एक्सेस कंट्रोल

HTTP-आधारित ट्रांसपोर्ट (Streamable HTTP) का उपयोग करते समय, आप HTTP हेडर के ज़रिए नियंत्रित कर सकते हैं कि क्लाइंट के लिए कौन-से टूल उपलब्ध हों। यह AI एजेंट की क्षमताओं को सीमित करने या अनुपालन नीतियों को लागू करने के लिए उपयोगी है।

प्राधिकरण हेडर

हेडरविवरणउदाहरण
X-Allowed-Toolsअनुमत टूल की कॉमा से अलग की गई सूचीget_configs,get_buckets,query_data
X-Disallowed-Toolsबाहर रखने वाले टूल की कॉमा से अलग की गई सूचीcreate_config,run_job
X-Read-Only-Modeकेवल रीड-ओनली टूल तक सीमित करेंtrue, 1, या yes

फ़िल्टर का व्यवहार

फ़िल्टर इस क्रम में लागू होते हैं: अनुमत → रीड-ओनली इंटरसेक्शन → निषिद्ध टूल को बाहर करना। खाली हेडर = कोई प्रतिबंध नहीं।

रीड-ओनली टूल

रीड-ओनली टूल वे हैं जिन पर readOnlyHint=True एनोटेशन लगा है। ये टूल आपके Keboola प्रोजेक्ट में कोई बदलाव किए बिना केवल जानकारी प्राप्त करते हैं। रीड-ओनली टूल की मौजूदा सूची के लिए TOOLS.md फ़ाइल देखें, जो वास्तविक टूल सेट का अपने-आप जनरेट किया गया स्नैपशॉट है।

उदाहरण: केवल पढ़ने की पहुँच

X-Read-Only-Mode: true

टूल लोडिंग को स्थगित करना

हेडरविवरणउदाहरण
X-Deferred-Tools_meta["anthropic/alwaysLoad"] = false के साथ सूचीबद्ध किए जाने वाले टूल की कॉमा से अलग की गई सूचीrun_sync_action,get_flow_schema

Claude Code / Claude Agent SDK क्लाइंट, जो सर्वर को alwaysLoad: true के साथ रजिस्टर करते हैं, इन टूल की परिभाषाएँ पहले से लोड करने के बजाय उन्हें टूल खोज के पीछे स्थगित रखते हैं। यह हेडर केवल tools/list मेटाडेटा बदलता है — यह टूल को छिपाता या अधिकृत नहीं करता। खाली हेडर या अज्ञात टूल नाम = कोई बदलाव नहीं।

विस्तृत दस्तावेज़ के लिए developers.keboola.com/integrate/mcp/#tool-authorization-and-access-control देखें।

पंक्ति-स्तर और कॉलम-स्तर सुरक्षा

पंक्ति- और कॉलम-स्तर की नीतियाँ Keboola Metastore ऑब्जेक्ट हैं (rls-policy, cls-policy), जिन्हें Metastore API के ज़रिए लिखा जाता है (kbagent rls / kbagent cls कमांड अभी तक किसी भी kbagent रिलीज़ में उपलब्ध नहीं हैं)। यह सर्वर न तो उन्हें पढ़ता है, न लागू करता है। जिस प्रोजेक्ट में row-level-security सुविधा है, उसमें यह अपना वर्कस्पेस बनाता है (keboola.mcp-server-tool कंपोनेंट का mcp-workspace-<hex> कॉन्फ़िगरेशन), जिसमें Connection लॉगिन प्रकार governed होता है। नियंत्रित वर्कस्पेस में कोई क्रेडेंशियल नहीं होता: इसे केवल Query Service पढ़ सकता है, और Query Service हर query_data परिणाम को प्रोजेक्ट की नीतियों के अनुसार फ़िल्टर करता है। इस सर्वर में कोई री-राइटिंग नहीं होती और कोई फ़ॉलबैक नहीं है: Query Service जिस अनुरोध को अस्वीकार करता है, query_data उसे त्रुटि के रूप में लौटाता है।

  • इसे क्या चालू करता है। प्रोजेक्ट फ़ीचर की जाँच केवल यह सर्वर करता है; किसी नियंत्रित वर्कस्पेस को बनाने के लिए Connection को किसी फ़ीचर या भूमिका की आवश्यकता नहीं होती (Snowflake या BigQuery, कोई सार्वजनिक कुंजी नहीं)। स्टैक के Connection को प्रोजेक्ट के बैकएंड के लिए लॉगिन प्रकार governed स्वीकार करना होगा: जो स्टैक इसे स्वीकार नहीं करता, वह निर्माण को अस्वीकार कर देता है, और फिर वर्कस्पेस की आवश्यकता वाले हर टूल में विफलता होती है (सामान्य वर्कस्पेस पर वापस जाने का कोई विकल्प नहीं है)। BigQuery पर प्रवर्तन की उत्पादन स्टैक पर शुरू से अंत तक पुष्टि नहीं की गई है। पुराने सामान्य MCP वर्कस्पेस को हटाया नहीं जाता: फ़ीचर चालू होते ही उसे छोड़ दिया जाता है। फ़ीचर चालू होने पर, workspace_schema या X-Workspace-Id पिन केवल नियंत्रित वर्कस्पेस के लिए स्वीकार किया जाता है (सामान्य वर्कस्पेस नीतियों को दरकिनार करके पढ़ सकता है), इसलिए पुराने वर्कस्पेस या किसी डेटा ऐप के अपने सामान्य वर्कस्पेस का पिन अस्वीकार कर दिया जाता है; पुराने वर्कस्पेस को हटाएँ।
  • डिफ़ॉल्ट रूप से अस्वीकार। जिस तालिका पर न तो rls-policy लागू होता है, न cls-policy, उसे व्यवस्थापक के लिए अस्वीकार किया जाता है (एजेंट को Row-level security does not allow this query दिखता है) और सामान्य पाठक, जैसे डेटा ऐप का अंतिम उपयोगकर्ता, उसके लिए कोई पंक्तियाँ नहीं पढ़ पाता (एक "*" नियम तालिका को हर पहचाने गए पाठक के लिए खोलता है)। केवल cls-policy होने पर उसकी तालिका खुल जाती है: नामित पाठकों के लिए सभी पंक्तियाँ, लेकिन केवल उसके कॉलम; किसी अन्य पाठक को अस्वीकार किया जाता है। ऐसा कथन जो कोई तालिका नहीं पढ़ता (SELECT 1), चलता है।
  • अस्वीकृत कथन। नियंत्रित कथन को (403, हर कारण के लिए एक ही सामान्य संदेश के साथ) तब अस्वीकार किया जाता है जब उसमें IDENTIFIER(), FROM के बाहर TABLE(), कोई AI फ़ंक्शन (AI_*, BigQuery AI.*), TO_FILE, READ_CSV / READ_PARQUET, SECRET, कोई सत्र-संदर्भ फ़ंक्शन (CURRENT_USER, CURRENT_ROLE, CURRENT_STATEMENT, ...), NEXTVAL, $x या @@x, कोई नियंत्रण वर्ण, या गैर-ASCII वर्ण अथवा $$ वाला कोई बिना उद्धरण का नाम हो; या जब वह 32 KiB, 200 CTEs या 300 तालिका संदर्भों से बड़ा हो। CURRENT_DATE, CURRENT_TIME और CURRENT_TIMESTAMP की अनुमति बनी रहती है (Query Service 1.25 और policy engine 0.1.8 के अनुसार)। 503 Row-level security could not be applied to this workspace का अर्थ है कि नीतियाँ लागू न हो पाने के कारण कुछ भी नहीं चला; यह अस्थायी हो सकता है। विफल नियंत्रित कथन The statement failed. Its error text is not shown for a workspace with row-level security लौटाता है।
  • पाठक कौन है। Query Service प्रोजेक्ट के व्यवस्थापक के अपने टोकन से पाठक का पता लगाता है: वह प्रोग्रामेटिक टोकन जिसे यह सर्वर आगे भेजता है (kbc_at_ / kbc_pat_, जिसमें बहु-प्रोजेक्ट स्कोप का चाइल्ड PAT भी शामिल है, जिसे X-KBC-ProjectId के साथ भेजा जाता है) या व्यवस्थापक का अपना मास्टर Storage टोकन। कोई अन्य टोकन (किसी इंटीग्रेशन, डेटा ऐप या Kai का) किसी अंतिम उपयोगकर्ता की पहचान नहीं बताता, उसकी सत्यापित पहचान नहीं होती और वह नियंत्रित तालिका से कुछ नहीं पढ़ सकता। व्यवस्थापक का subject keboola|<adminId> है और पहचान के साथ कोई समूह नहीं जुड़ा होता, इसलिए समूह नियम कभी मेल नहीं खाते।
  • बाइंडिंग। बाइंडिंग के बिना, वर्कस्पेस को प्रोजेक्ट की हर नीति मिलती है और यह सर्वर कभी बाइंडिंग नहीं बनाता। किसी वर्कस्पेस को केवल कुछ नीतियाँ देने के लिए, उन्हें उसके KID से बाँधें: KID:<stack-id>:project-<project-id>:workspace-<workspace-id> (डिफ़ॉल्ट ब्रांच का वर्कस्पेस; ब्रांच वर्कस्पेस में branch-<branch-id> भी होता है, जो project से पहले आता है)। स्टैक ID वही है जिसके साथ Query Service कॉन्फ़िगर किया गया है (QUERY_RLS_STACK_ID, उदाहरण के लिए dev-keboola-aws-eu-west-1), वर्कस्पेस ID get_project_info आउटपुट में है, और उस KID वाला policy-binding Metastore ऑब्जेक्ट बाइंडिंग लिखता है (इसके लिए अभी तक कोई kbagent कमांड जारी नहीं किया गया है)। बाइंडिंग एक अनुमति-सूची है: यह केवल सूचीबद्ध नीतियाँ रखती है, इसलिए यह किसी भी नीति को छोड़ सकती है, जिसमें संगठन-स्कोप वाली नीति भी शामिल है, और पहुँच को ढीला कर सकती है। ऐसी बाइंडिंग जिसमें कोई rls-policy सूचीबद्ध नहीं है, हर पंक्ति नीति हटा देती है, इसलिए रखे गए cls-policy से ढकी तालिका सभी पंक्तियों के साथ खुल जाती है। बाइंडिंग अगले क्वेरी पर लागू होती है और सत्र के साथ दूसरे वर्कस्पेस में नहीं जाती: ब्रांच सत्र या फिर से बनाया गया वर्कस्पेस नया KID पाता है और फिर से हर नीति के साथ शुरू होता है।
  • सीमाएँ। सर्वर के वर्कस्पेस का ID ही वह ID है जो डेटा ऐप को WORKSPACE_ID के रूप में मिलता है, जब उसके लिए अलग वर्कस्पेस उपलब्ध नहीं कराया जाता; ऐप अपने टोकन से क्वेरी करता है, उसकी सत्यापित पहचान नहीं होती और वह नियंत्रित तालिकाओं से कुछ नहीं पढ़ सकता।
  • मेटाडेटा। मेटाडेटा टूल केवल वही दिखाते हैं जिसे Query Service पाठक को पढ़ने देता है। get_tables और search (जो तब वैश्विक खोज का उपयोग नहीं करता, क्योंकि उसकी गणना में छिपी हुई तालिकाएँ भी शामिल होती हैं) ऐसी तालिका छोड़ देते हैं जिसे पाठक पढ़ नहीं सकता, और get_tables ID से माँगी गई तालिका को नहीं मिला हुआ बताता है; कॉलम नीति वाली तालिका में केवल नीति के कॉलम दिखते हैं (उसकी प्राथमिक कुंजी में और search के मिलान में भी)। पढ़ी जा सकने वाली तालिका उसके पंक्तियों की संख्या और आकार के बिना दिखाई जाती है, क्योंकि इनकी गणना में वे पंक्तियाँ भी शामिल होती हैं जिन्हें पंक्ति नीति छिपाती है। get_buckets अब भी हर बकेट सूचीबद्ध करता है, लेकिन तालिकाओं की संख्या और आकार के बिना, क्योंकि इनकी गणना में छिपी हुई तालिकाएँ भी शामिल होती हैं। इसके लिए Query Service एंडपॉइंट POST /api/v1/branches/{branch}/workspaces/{workspace}/rls/scope आवश्यक है, और यह सुरक्षित रूप से विफल होता है: जब Query Service उत्तर नहीं दे पाता, तो नियंत्रित प्रोजेक्ट का टूल एक संक्षिप्त संदेश और बिना किसी तालिका के त्रुटि लौटाता है। जिस प्रोजेक्ट में फ़ीचर चालू नहीं है, उस पर इसका कोई असर नहीं होता और कोई अतिरिक्त कॉल नहीं की जाती।

स्थानीय MCP सर्वर सेटअप (कस्टम या डेवलपमेंट तरीका)

पूरे नियंत्रण और आसान विकास के लिए MCP सर्वर अपनी मशीन पर चलाएँ। जब आप टूल को अनुकूलित करना, स्थानीय रूप से डीबग करना या तेज़ी से बदलाव करना चाहते हों, तब यह तरीका चुनें। आप सर्वर इंस्टॉल करेंगे, प्रमाणित होंगे (एक बार ब्राउज़र से लॉगिन — पेस्ट करने के लिए कोई टोकन नहीं) और उसे शुरू करेंगे। यह तरीका अधिकतम लचीलापन देता है (कस्टम टूल, स्थानीय लॉगिंग, ऑफ़लाइन बदलाव), लेकिन इसके लिए मैन्युअल सेटअप करना होगा और अपडेट तथा सीक्रेट आपको स्वयं प्रबंधित करने होंगे।

सर्वर कई ट्रांसपोर्ट विकल्पों का समर्थन करता है, जिन्हें सर्वर शुरू करते समय --transport <transport> आर्ग्युमेंट देकर चुना जा सकता है:

  • stdio - जब --transport निर्दिष्ट न हो, तो यह डिफ़ॉल्ट होता है। मानक इनपुट/आउटपुट, आम तौर पर एक क्लाइंट के साथ स्थानीय डिप्लॉयमेंट के लिए उपयोग किया जाता है।
  • streamable-http - सर्वर को HTTP पर दूरस्थ रूप से, द्विदिश स्ट्रीमिंग चैनल के साथ चलाता है, जिससे क्लाइंट और सर्वर लगातार संदेशों का आदान-प्रदान कर सकते हैं। /mcp के ज़रिए कनेक्ट करें (उदाहरण के लिए, http://localhost:8000/mcp)।
  • http-compat - streamable-http का उपनाम, जो पिछली संगतता के लिए रखा गया है।

अपने Keboola प्रोजेक्ट के साथ काम करने के लिए सर्वर को दो चीज़ें चाहिए: आपका Keboola Region (KBC_STORAGE_API_URL) और प्रमाणित होने का एक तरीका। सुझाया गया तरीका एक बार ब्राउज़र से लॉगिन करना है — आपको कभी टोकन बनाने, कॉपी करने या पेस्ट करने की ज़रूरत नहीं होती। विकास ब्रांच के भीतर काम करने के लिए वैकल्पिक रूप से KBC_BRANCH_ID सेट करें।

कुछ वेरिएबल अनुरोध हेडर से नहीं लिए जाते:

  • KBC_STORAGE_API_URL: अपने Storage API URL से शुरू किया गया सर्वर (--api-url पैरामीटर या KBC_STORAGE_API_URL एनवायरनमेंट वेरिएबल) केवल उसी Keboola स्टैक को सेवा देता है। किसी अलग होस्ट का अनुरोध करने वाला X-Storage-Api-Url हेडर अनदेखा किया जाता है (एक चेतावनी लॉग की जाती है) — सर्वर अनुरोध के लिए अपना URL ही रखता है। यदि आप चाहते हैं कि हर अनुरोध अपना स्टैक चुन सके, तो सर्वर को अपना Storage API URL दिए बिना शुरू करें।
  • KBC_KUBERNETES_TOKEN_PATH (केवल डिप्लॉय किए गए सर्वर, देखें docs/kubernetes-sa-auth.md): केवल एनवायरनमेंट से पढ़ा जाता है, कभी हेडर से नहीं।
  • KBC_WORKSPACE_ID / KBC_WORKSPACE_SCHEMA: ऊपर दिए गए Storage API URL जैसा ही व्यवहार — अपने वर्कस्पेस पिन (किसी भी वेरिएबल या --workspace-id के ज़रिए) के साथ शुरू किया गया सर्वर हर अनुरोध के लिए वही पिन रखता है; किसी अलग वर्कस्पेस का अनुरोध करने वाला X-Workspace-Id या X-Workspace-Schema हेडर अनदेखा किया जाता है (एक चेतावनी लॉग की जाती है)। अपने पिन के बिना चलने वाला सर्वर (साझा बहु-उपयोगकर्ता वाला मामला) नीचे बताए अनुसार, हर अनुरोध पर अनुरोध से पिन लेता रहता है।

लॉग इन करना

ब्राउज़र से एक बार साइन इन करें; सर्वर सत्र को सहेजता है और उसे अपने आप रिफ़्रेश करता है, इसलिए प्रबंधित करने के लिए कोई टोकन नहीं होता:

uvx keboola_mcp_server login --api-url https://connection.YOUR_REGION.keboola.com

इससे Keboola में साइन इन करने के लिए आपका ब्राउज़र खुलता है, फिर स्टैक-व्यापी सत्र ~/.keboola/mcp/credentials.json में सहेजा जाता है (केवल आप पढ़ सकते हैं, हर स्टैक के लिए एक प्रविष्टि)। इसके बाद, सर्वर को केवल KBC_STORAGE_API_URL सेट करके शुरू करें — किसी टोकन की आवश्यकता नहीं। किन प्रोजेक्ट पर काम करना है, यह लॉगिन के दौरान नहीं, बल्कि बाद में बातचीत में चुना जाता है (get_accessible_projects / set_project_scope)।

कमांडयह क्या करता है
login --api-url <url>किसी स्टैक में साइन इन करें
login --forceफिर से साइन इन करें / खाता बदलें
login --show-tokenमौजूदा सत्र टोकन प्रिंट करें (डीबगिंग)
logout [--api-url <url>] [--all]किसी स्टैक (या सभी स्टैक) के लिए सहेजा गया सत्र हटाएँ

जब आप stdio को किसी इंटरैक्टिव टर्मिनल में शुरू करते हैं और कोई सहेजा हुआ सत्र नहीं होता, तो सर्वर पहली बार शुरू होने पर यह ब्राउज़र लॉगिन अपने आप चलाता है। MCP क्लाइंट (Claude, Cursor, …) सर्वर को बैकग्राउंड में शुरू करते हैं, जहाँ ब्राउज़र नहीं खुल सकता, इसलिए पहले स्वयं एक बार login चलाएँ।

Keboola खाते के बिना शुरू करना

आप सर्वर को केवल KBC_STORAGE_API_URL के साथ और बिना किसी क्रेडेंशियल के भी शुरू कर सकते हैं। यह बूटस्ट्रैप मोड में शुरू होता है: Keboola पहुँच की आवश्यकता वाले टूल बताते हैं कि क्रेडेंशियल कैसे प्राप्त करें, और एक टूल बिना क्रेडेंशियल के काम करता है — create_project। यह एक नया Keboola प्रोजेक्ट बनाता है, सत्र को उसमें साइन इन करता है और पुष्टि URL लौटाता है। उस URL को ब्राउज़र में खोलकर साइन इन करने से प्रोजेक्ट हमेशा के लिए आपका हो जाता है; तब तक वह अस्थायी रहता है और Keboola उसे वापस ले सकता है। पुष्टि करने के बाद, टूल द्वारा बनाया गया सत्र रद्द कर दिया जाता है और आप अपने login के साथ आगे काम करते हैं।

इसके लिए एजेंट प्रोविज़निंग चालू वाला स्टैक चाहिए; अन्य जगहों पर टूल बताता है कि यह उपलब्ध नहीं है।

यही काम बिना सर्वर चलाए भी किया जा सकता है: दूरस्थ रूप से होस्ट किए गए MCP सर्वर पर, जिसके ऑपरेटर ने इसे चालू किया हो (KBC_ALLOW_ANONYMOUS_PROVISIONING): ऐसा डिप्लॉयमेंट https://mcp.<stack>/mcp-anonymous भी उपलब्ध कराता है, जो कोई क्रेडेंशियल स्वीकार नहीं करता। अपने क्लाइंट को बिना प्रमाणीकरण के वहाँ इंगित करें, create_project कॉल करें और उस कॉल द्वारा बनाए गए प्रोजेक्ट में काम जारी रखें — सर्वर आपके लिए क्रेडेंशियल रखता है और टूल एक अपारदर्शी scope_token देता है, जिसे बाद की कॉल में फिर भेजना होता है। इसका URL अलग है, क्योंकि सामान्य /mcp एंडपॉइंट को बिना प्रमाणीकरण वाले अनुरोध अस्वीकार करते रहना चाहिए: इसी अस्वीकृति से MCP क्लाइंट को पता चलता है कि OAuth लॉगिन शुरू करना है। प्रोजेक्ट का दावा करने के बाद, /mcp पर जाएँ और उस खाते से साइन इन करें जो अब उसका मालिक है।

ब्राउज़र के बिना प्रमाणीकरण

ऐसे कंटेनर या CI के लिए जहाँ ब्राउज़र लॉगिन संभव नहीं है, Keboola access या personal access token सीधे दें — KBC_STORAGE_TOKEN (env var) सेट करें या X-StorageAPI-Token हेडर भेजें — और प्रोजेक्ट चुनने के लिए KBC_PROJECT_ID (या X-KBC-ProjectId हेडर) भी दें। HTTP ट्रांसपोर्ट पर इन्हें हर अनुरोध के लिए हेडर के रूप में दिया जा सकता है, ताकि हर अनुरोध अपने क्रेडेंशियल साथ ले जाए।

KBC_WORKSPACE_ID

ऊपर बताए गए स्कीमा-आधारित लुकअप के बजाय, क्वेरी को किसी एक विशिष्ट, पहले से मौजूद वर्कस्पेस के ID पर पिन करता है, और दोनों सेट होने पर KBC_WORKSPACE_SCHEMA को प्राथमिकता देता है। Data App / kai-agent कॉलर यही विकल्प देता है, X-Workspace-Id हेडर के रूप में, ताकि उस ऐप में एम्बेड किया गया Kai केवल अपने वर्कस्पेस के ज़रिए क्वेरी करे।

इसे KBC_WORKSPACE_ID एनवायरनमेंट वेरिएबल, --workspace-id CLI फ़्लैग या (बहु-उपयोगकर्ता डिप्लॉयमेंट के लिए, प्रति अनुरोध) X-Workspace-Id हेडर के ज़रिए सेट करें।

KBC_STORAGE_API_URL (Keboola Region)

आपका Keboola Region API URL आपके डिप्लॉयमेंट क्षेत्र पर निर्भर करता है। अपने Keboola प्रोजेक्ट में लॉग इन रहते हुए ब्राउज़र के URL को देखकर आप अपना क्षेत्र पता कर सकते हैं:

क्षेत्रAPI URL
AWS North Americahttps://connection.keboola.com
AWS Europehttps://connection.eu-central-1.keboola.com
Google Cloud EUhttps://connection.europe-west3.gcp.keboola.com
Google Cloud UShttps://connection.us-east4.gcp.keboola.com
Azure EUhttps://connection.north-europe.azure.keboola.com

KBC_BRANCH_ID (वैकल्पिक)

किसी विशिष्ट Keboola development branch पर काम करने के लिए, KBC_BRANCH_ID पैरामीटर का उपयोग करके ब्रांच ID सेट करें। MCP सर्वर अपनी कार्यक्षमता को निर्दिष्ट ब्रांच तक सीमित रखता है, जिससे सभी बदलाव अलग-थलग रहते हैं और उत्पादन ब्रांच पर असर नहीं पड़ता।

  • यदि निर्दिष्ट नहीं किया गया है, तो सर्वर डिफ़ॉल्ट रूप से प्रोडक्शन ब्रांच का उपयोग करता है।
  • डेवलपमेंट के लिए, KBC_BRANCH_ID को अपनी ब्रांच की संख्यात्मक ID पर सेट करें (उदा., 123456)। UI में डेवलपमेंट ब्रांच पर जाने पर URL में उसकी ID मिल सकती है, उदाहरण के लिए: https://connection.us-east4.gcp.keboola.com/admin/projects/PROJECT_ID/branch/BRANCH_ID/dashboard।
  • रिमोट ट्रांसपोर्ट पर, आप HTTP हेडर X-Branch-Id: <branchId> या KBC_BRANCH_ID: <branchId> के साथ हर अनुरोध के लिए इसे ओवरराइड कर सकते हैं।

इंस्टॉलेशन

सुनिश्चित करें कि आपके पास ये हैं:

  • Python 3.11+ इंस्टॉल है
  • एडमिन अधिकारों वाले Keboola प्रोजेक्ट तक पहुँच है
  • आपका पसंदीदा MCP क्लाइंट (Claude, Cursor आदि)

ध्यान दें: सुनिश्चित करें कि uv इंस्टॉल है। MCP क्लाइंट इसका उपयोग Keboola MCP Server को अपने-आप डाउनलोड और चलाने के लिए करेगा। uv इंस्टॉल करना:

macOS/Linux:

#if homebrew is not installed on your machine use:
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install using Homebrew
brew install uv

Windows:

# Using the installer script
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Or using pip
pip install uv

# Or using winget
winget install --id=astral-sh.uv -e

इंस्टॉलेशन के अन्य विकल्पों के लिए, आधिकारिक uv दस्तावेज़ देखें।

Keboola MCP Server चलाना

अपनी ज़रूरतों के अनुसार Keboola MCP Server का उपयोग करने के चार तरीके हैं:

विकल्प A: इंटीग्रेटेड मोड (अनुशंसित)

इस मोड में, Claude या Cursor आपके लिए MCP सर्वर अपने-आप शुरू करता है।

  1. एक बार लॉग इन करें ताकि टर्मिनल में सेशन सेव हो जाए (क्लाइंट सर्वर को बैकग्राउंड में शुरू करता है, जहाँ ब्राउज़र नहीं खुल सकता):
    uvx keboola_mcp_server login --api-url https://connection.YOUR_REGION.keboola.com
    
  2. अपने MCP क्लाइंट (Claude/Cursor) को नीचे दी गई सेटिंग्स के साथ कॉन्फ़िगर करें — केवल KBC_STORAGE_API_URL की ज़रूरत है।
  3. ज़रूरत पड़ने पर क्लाइंट MCP सर्वर को अपने-आप शुरू कर देगा।

Claude Desktop कॉन्फ़िगरेशन

  1. Claude पर जाएँ (स्क्रीन के ऊपरी बाएँ कोने में) -> Settings → Developer → Edit Config (यदि claude_desktop_config.json दिखाई न दे, तो उसे बनाएँ)
  2. निम्नलिखित कॉन्फ़िगरेशन जोड़ें:
  3. बदलाव लागू करने के लिए Claude desktop को रीस्टार्ट करें
{
  "mcpServers": {
    "keboola": {
      "command": "uvx",
      "args": ["keboola_mcp_server --transport <transport>"],
      "env": {
        "KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
        "KBC_BRANCH_ID": "your_branch_id_optional"
      }
    }
  }
}

कॉन्फ़िगरेशन फ़ाइल के स्थान:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Cursor कॉन्फ़िगरेशन

  1. Settings → MCP पर जाएँ
  2. "+ Add new global MCP Server" पर क्लिक करें
  3. इन सेटिंग्स के साथ कॉन्फ़िगर करें:
{
  "mcpServers": {
    "keboola": {
      "command": "uvx",
      "args": ["keboola_mcp_server --transport <transport>"],
      "env": {
        "KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
        "KBC_BRANCH_ID": "your_branch_id_optional"
      }
    }
  }
}

ध्यान दें: MCP सर्वर के लिए छोटे और स्पष्ट नाम इस्तेमाल करें। टूल के पूरे नाम में सर्वर का नाम शामिल होता है और उसे लगभग 60 वर्णों से कम रखना ज़रूरी है, इसलिए लंबे नाम Cursor में फ़िल्टर हो सकते हैं और Agent को दिखाई नहीं देंगे।

Windows WSL के लिए Cursor कॉन्फ़िगरेशन

Windows Subsystem for Linux से Cursor AI के साथ MCP सर्वर चलाते समय, यह कॉन्फ़िगरेशन इस्तेमाल करें:

{
  "mcpServers": {
    "keboola":{
      "command": "wsl.exe",
      "args": [
          "bash",
          "-c '",
          "export KBC_STORAGE_API_URL=https://connection.YOUR_REGION.keboola.com &&",
          "export KBC_BRANCH_ID=your_branch_id_optional &&",
          "/snap/bin/uvx keboola_mcp_server --transport <transport>",
          "'"
      ]
    }
  }
}

विकल्प B: लोकल डेवलपमेंट मोड

MCP सर्वर के कोड पर काम करने वाले डेवलपर्स के लिए:

  1. रिपॉज़िटरी क्लोन करें और लोकल एनवायरनमेंट सेट अप करें
  2. Claude/Cursor को अपने लोकल Python पाथ का उपयोग करने के लिए कॉन्फ़िगर करें:
{
  "mcpServers": {
    "keboola": {
      "command": "/absolute/path/to/.venv/bin/python",
      "args": [
        "-m",
        "keboola_mcp_server --transport <transport>"
      ],
      "env": {
        "KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
        "KBC_BRANCH_ID": "your_branch_id_optional"
      }
    }
  }
}

विकल्प C: मैन्युअल CLI मोड (केवल परीक्षण के लिए)

परीक्षण या डीबगिंग के लिए आप टर्मिनल में सर्वर को मैन्युअल रूप से चला सकते हैं:

# Sign in once (stores a session under ~/.keboola/mcp), then start the server.
export KBC_STORAGE_API_URL=https://connection.YOUR_REGION.keboola.com
uvx keboola_mcp_server login --api-url "$KBC_STORAGE_API_URL"

uvx keboola_mcp_server --transport streamable-http

ध्यान दें: यह मोड मुख्य रूप से डीबगिंग या परीक्षण के लिए है। Claude या Cursor के सामान्य उपयोग के लिए, आपको सर्वर को मैन्युअल रूप से चलाने की ज़रूरत नहीं है।

ध्यान दें: सर्वर Streamable HTTP ट्रांसपोर्ट का उपयोग करेगा और आने वाले कनेक्शनों के लिए /mcp पर localhost:8000 को सुनता रहेगा। इसे कहीं और सुनने के लिए आप --port और --host पैरामीटर इस्तेमाल कर सकते हैं।

विकल्प D: Docker का उपयोग करना

कंटेनर ब्राउज़र नहीं खोल सकता, इसलिए टोकन से प्रमाणित करें (ब्राउज़र के बिना प्रमाणित करना देखें): KBC_STORAGE_TOKEN को Keboola एक्सेस/पर्सनल एक्सेस टोकन पर और KBC_PROJECT_ID को लक्षित प्रोजेक्ट पर सेट करें। (HTTP पर आप इसके बजाय हर अनुरोध के साथ X-StorageAPI-Token / X-KBC-ProjectId हेडर भेज सकते हैं और इन्हें छोड़ सकते हैं।)

docker pull keboola/mcp-server:latest

docker run \
  --name keboola_mcp_server \
  --rm \
  -it \
  -p 127.0.0.1:8000:8000 \
  -e KBC_STORAGE_API_URL="https://connection.YOUR_REGION.keboola.com" \
  -e KBC_STORAGE_TOKEN="YOUR_KEBOOLA_TOKEN" \
  -e KBC_PROJECT_ID="YOUR_PROJECT_ID" \
  -e KBC_BRANCH_ID="YOUR_BRANCH_ID_OPTIONAL" \
  keboola/mcp-server:latest \
  --transport streamable-http \
  --host 0.0.0.0

ध्यान दें: सर्वर Streamable HTTP ट्रांसपोर्ट का उपयोग करेगा और आने वाले कनेक्शनों के लिए /mcp पर localhost:8000 को सुनता रहेगा। कंटेनर के पोर्ट को किसी अन्य स्थान पर मैप करने के लिए आप -p बदल सकते हैं।

क्या मुझे सर्वर स्वयं शुरू करना होगा?

परिदृश्यक्या मैन्युअल रूप से चलाना होगा?यह सेटअप इस्तेमाल करें
Claude/Cursor का उपयोगनहींऐप सेटिंग्स में MCP कॉन्फ़िगर करें
MCP को लोकल रूप से डेवलप करनानहीं (Claude इसे शुरू करता है)कॉन्फ़िगरेशन को Python पाथ पर सेट करें
CLI का मैन्युअल परीक्षणहाँचलाने के लिए टर्मिनल इस्तेमाल करें
Docker का उपयोगहाँDocker कंटेनर चलाएँ

MCP Server का उपयोग करना

MCP क्लाइंट (Claude/Cursor) कॉन्फ़िगर और चालू होने के बाद, आप अपने Keboola डेटा के बारे में पूछना शुरू कर सकते हैं:

अपना सेटअप सत्यापित करें

सब कुछ ठीक से काम कर रहा है, इसकी पुष्टि के लिए आप एक साधारण क्वेरी से शुरुआत कर सकते हैं:

What buckets and tables are in my Keboola project?

आप क्या-क्या कर सकते हैं, इसके उदाहरण

डेटा की खोज:

  • "कौन-सी टेबलों में ग्राहक की जानकारी है?"
  • "राजस्व के आधार पर शीर्ष 10 ग्राहकों को खोजने के लिए क्वेरी चलाएँ"

डेटा विश्लेषण:

  • "पिछली तिमाही के लिए क्षेत्र के अनुसार मेरे बिक्री डेटा का विश्लेषण करें"
  • "ग्राहक की उम्र और खरीदारी की आवृत्ति के बीच सहसंबंध खोजें"

डेटा पाइपलाइन:

  • "ग्राहक और ऑर्डर टेबल को जोड़ने वाला SQL ट्रांसफ़ॉर्मेशन बनाएँ"
  • "मेरे Salesforce कंपोनेंट के लिए डेटा एक्सट्रैक्शन जॉब शुरू करें"

संगतता

MCP क्लाइंट समर्थन

MCP क्लाइंटसमर्थन स्थितिकनेक्शन विधि
Claude (Desktop & Web)✅ समर्थितstdio
Cursor✅ समर्थितstdio
Windsurf, Zed, Replit✅ समर्थितstdio
Codeium, Sourcegraph✅ समर्थितStreamable HTTP
कस्टम MCP क्लाइंट✅ समर्थितStreamable HTTP या stdio

समर्थित टूल

ध्यान दें: आपके AI एजेंट नए टूल के अनुसार अपने-आप अनुकूलित हो जाएँगे।

उपलब्ध टूल की पूरी सूची, उनके विस्तृत विवरण, पैरामीटर और उपयोग के उदाहरणों के लिए TOOLS.md देखें।

समस्या निवारण

आम समस्याएँ

समस्यासमाधान
प्रमाणीकरण त्रुटियाँkeboola_mcp_server login फिर से चलाएँ (या, यदि टोकन से प्रमाणित कर रहे हैं, तो टोकन और KBC_PROJECT_ID की पुष्टि करें)
कनेक्शन टाइमआउटनेटवर्क कनेक्टिविटी जाँचें

डेवलपमेंट

इंस्टॉलेशन

बुनियादी सेटअप:

uv sync --extra dev

बुनियादी सेटअप के साथ, आप परीक्षण चलाने और कोड शैली जाँचने के लिए uv run tox का उपयोग कर सकते हैं।

अनुशंसित सेटअप:

uv sync --extra dev --extra tests --extra integtests --extra codestyle

अनुशंसित सेटअप में परीक्षण और कोड शैली जाँचने के पैकेज इंस्टॉल होंगे, जिससे VsCode या Cursor जैसे IDE डेवलपमेंट के दौरान कोड जाँच सकेंगे या परीक्षण चला सकेंगे।

इंटीग्रेशन परीक्षण

इंटीग्रेशन परीक्षण लोकल रूप से चलाने के लिए uv run tox -e integtests इस्तेमाल करें। ध्यान दें: आपको निम्नलिखित एनवायरनमेंट वेरिएबल सेट करने होंगे:

  • INTEGTEST_POOL_STORAGE_API_URL
  • INTEGTEST_STORAGE_TOKENS
  • INTEGTEST_STORAGE_TOKEN_STORAGE_BRANCHES

ये मान पाने के लिए, आपको इंटीग्रेशन परीक्षणों के लिए समर्पित Keboola प्रोजेक्ट चाहिए। हर परीक्षण सेशन अपना रीड-ओनली वर्कस्पेस बनाता है, इसलिए किसी वर्कस्पेस स्कीमा को कॉन्फ़िगर करने की ज़रूरत नहीं है। सेटअप के विस्तृत निर्देशों और डिज़ाइन दस्तावेज़ के लिए integtests/README.md देखें।

uv.lock को अपडेट करना

यदि आपने डिपेंडेंसी जोड़ी या हटाई हैं, तो uv.lock फ़ाइल अपडेट करें। रिलीज़ बनाते समय लॉक को नए डिपेंडेंसी संस्करणों के साथ अपडेट करने पर भी विचार करें (uv lock --upgrade)।

टूल दस्तावेज़ अपडेट करना

किसी भी टूल विवरण (टूल फ़ंक्शन में docstrings) में बदलाव करने पर, इन बदलावों को दर्शाने के लिए आपको TOOLS.md दस्तावेज़ फ़ाइल फिर से जनरेट करनी होगी:

uv run python -m src.keboola_mcp_server.generate_tool_docs

रिलीज़ करना

हम हर मर्ज किए गए PR के लिए रिलीज़ नहीं करते। बदलाव लगातार ट्रंक (main) में आते रहते हैं और हम समय-समय पर उन्हें साथ में दोबारा जाँचने के बाद रिलीज़ करते हैं — इससे उपयोगकर्ताओं के काम कर रहे सेटअप टूटने से बचते हैं।

रिलीज़ के लिए एक या दो git टैग पुश किए जाते हैं:

  • vX.Y.Z — MCP सर्वर रिलीज़ (हमेशा)
  • agent-vX.Y.Z — In Platform Agent रिलीज़ (केवल तब, जब एजेंट भी रिलीज़ किया जा रहा हो)

दोनों में से कोई भी टैग release.yml CI को ट्रिगर करता है, जो Docker इमेज बनाकर प्रकाशित करता है। KaiBench केवल प्रोडक्शन vX.Y.Z टैग पर चलता है (न कि agent-vX.Y.Z पर, और न ही -dev. प्रीरिलीज़ पर)। release-notes स्किल इस्तेमाल करें — यह रिलीज़ नोट्स और ड्राफ़्ट PR तैयार करती है और vX.Y.Z तथा agent-vX.Y.Z दोनों को टैग करने की प्रक्रिया में मार्गदर्शन करती है।

सहायता और प्रतिक्रिया

⭐ सहायता पाने, बग रिपोर्ट करने या सुविधाओं का अनुरोध करने का मुख्य तरीका GitHub पर इश्यू खोलना है। ⭐

डेवलपमेंट टीम इश्यू पर सक्रिय रूप से नज़र रखती है और यथासंभव जल्दी जवाब देगी। Keboola के बारे में सामान्य जानकारी के लिए, नीचे दिए गए संसाधनों का उपयोग करें।

संसाधन

जुड़ें