MotherDuck
आधिकारिकMotherDuck और स्थानीय DuckDB के साथ डेटा क्वेरी और विश्लेषण करें
MotherDuck MCP के साथ आप क्या कर सकते हैं?
- DuckDB या MotherDuck के विरुद्ध SQL क्वेरी चलाएँ — अपने सहायक से
execute_queryके माध्यम से विश्लेषणात्मक SQL निष्पादित करने को कहें, जो पढ़ने और वैकल्पिक लेखन संचालन का समर्थन करता है। - डेटाबेस स्कीमा एक्सप्लोर करें —
list_databasesके साथ उपलब्ध डेटाबेस सूचीबद्ध करें, फिरlist_tablesऔरlist_columnsका उपयोग करके तालिकाओं और कॉलमों में गहराई से जाएँ। - डेटाबेस कनेक्शन के बीच स्विच करें — रनटाइम पर स्थानीय DuckDB फ़ाइलों, इन-मेमोरी इंस्टेंस, S3-होस्टेड डेटाबेस, या MotherDuck के बीच जाने के लिए
switch_database_connectionका उपयोग करें। - क्लाउड विश्लेषण के लिए MotherDuck से कनेक्ट करें — सर्वर को टोकन के साथ
md:पर इंगित करें ताकि MotherDuck डेटाबेस को सीधे क्वेरी और प्रबंधित किया जा सके। - क्वेरी आउटपुट आकार नियंत्रित करें — सहायक को लौटाए गए परिणाम सेट को सीमित करने के लिए
--max-rowsऔर--max-charsकॉन्फ़िगर करें।
दस्तावेज़
DuckDB / MotherDuck स्थानीय MCP सर्वर
AI सहायकों और IDE के लिए SQL विश्लेषण और डेटा इंजीनियरिंग।
DuckDB के शक्तिशाली विश्लेषणात्मक SQL इंजन का उपयोग करके AI सहायकों को अपने डेटा से कनेक्ट करें। स्थानीय DuckDB फ़ाइलों, इन-मेमोरी डेटाबेस, S3-होस्टेड डेटाबेस और MotherDuck से कनेक्ट करने का समर्थन करता है। SQL रीड- और राइट-क्वेरी निष्पादित करने, डेटाबेस कैटलॉग ब्राउज़ करने और विभिन्न डेटाबेस कनेक्शनों के बीच तुरंत स्विच करने की अनुमति देता है।
MotherDuck के लिए पूरी तरह से प्रबंधित रिमोट MCP सर्वर खोज रहे हैं? → MotherDuck रिमोट MCP दस्तावेज़ पर जाएँ
रिमोट बनाम स्थानीय MCP
| रिमोट MCP | स्थानीय MCP (यह रेपो) | |
|---|---|---|
| होस्टिंग | MotherDuck द्वारा होस्टेड | स्थानीय रूप से/स्व-होस्टेड चलता है |
| सेटअप | शून्य-सेटअप | स्थानीय स्थापना की आवश्यकता है |
| पहुँच | रीड-राइट समर्थित | रीड-राइट समर्थित |
| स्थानीय फ़ाइल सिस्टम | - | स्थानीय और रिमोट डेटाबेस में क्वेरी करें, स्थानीय फ़ाइल सिस्टम से डेटा इनजेस्ट/एक्सपोर्ट करें |
📝 v0.x से माइग्रेट कर रहे हैं?
- डिफ़ॉल्ट रूप से केवल-पढ़ने के लिए: सर्वर अब डिफ़ॉल्ट रूप से केवल-पढ़ने के मोड में चलता है। राइट एक्सेस सक्षम करने के लिए
--read-writeजोड़ें। उत्पादन के लिए सुरक्षित करना देखें।- डिफ़ॉल्ट डेटाबेस बदला गया:
--db-pathडिफ़ॉल्टmd:से बदलकर:memory:हो गया। MotherDuck के लिए स्पष्ट रूप से--db-path md:जोड़ें।- MotherDuck केवल-पढ़ने के लिए रीड-स्केलिंग टोकन की आवश्यकता है: केवल-पढ़ने के मोड में MotherDuck कनेक्शन के लिए रीड-स्केलिंग टोकन की आवश्यकता होती है। नियमित टोकन के लिए
--read-writeकी आवश्यकता होती है।
त्वरित शुरुआत
पूर्वापेक्षाएँ: pip install uv या brew install uv के माध्यम से uv स्थापित करें
इन-मेमोरी DuckDB से कनेक्ट करना (डेव मोड)
{
"mcpServers": {
"DuckDB (in-memory, r/w)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", ":memory:", "--read-write", "--allow-switch-databases"]
}
}
}
बिना किसी सुरक्षा उपाय के पूर्ण लचीलापन — रीड-राइट एक्सेस और रनटाइम पर किसी भी डेटाबेस (स्थानीय फ़ाइलें, S3, या MotherDuck) पर स्विच करने की क्षमता।
केवल-पढ़ने के मोड में स्थानीय DuckDB फ़ाइल से कनेक्ट करना
{
"mcpServers": {
"DuckDB (read-only)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", "/absolute/path/to/your.duckdb"]
}
}
}
एक विशिष्ट DuckDB फ़ाइल से केवल-पढ़ने के मोड में कनेक्ट होता है। फ़ाइल लॉक को होल्ड नहीं करेगा, इसलिए उसी DuckDB फ़ाइल से राइट कनेक्शन के साथ उपयोग करना सुविधाजनक है। आप s3://bucket/path.duckdb का उपयोग करके S3 पर रिमोट DuckDB फ़ाइलों से भी कनेक्ट कर सकते हैं — S3 प्रमाणीकरण के लिए पर्यावरण चर देखें। यदि आप MCP तक तृतीय-पक्ष पहुँच पर विचार कर रहे हैं, तो उत्पादन के लिए सुरक्षित करना देखें।
रीड-राइट मोड में MotherDuck से कनेक्ट करना
{
"mcpServers": {
"MotherDuck (local, r/w)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", "md:", "--read-write"],
"env": {
"motherduck_token": "<YOUR_MOTHERDUCK_TOKEN>"
}
}
}
}
अधिक विकल्पों के लिए कमांड लाइन पैरामीटर, परिनियोजन मार्गदर्शन के लिए उत्पादन के लिए सुरक्षित करना, और यदि आपको समस्याएँ आती हैं तो समस्या निवारण देखें।
क्लाइंट सेटअप
| क्लाइंट | कॉन्फ़िग स्थान | वन-क्लिक इंस्टॉल |
|---|---|---|
| Claude Desktop | सेटिंग्स → डेवलपर → कॉन्फ़िग संपादित करें | .mcpb (MCP बंडल) |
| Claude Code | नीचे CLI कमांड का उपयोग करें | - |
| Codex CLI | नीचे CLI कमांड या ~/.codex/config.toml का उपयोग करें | - |
| Gemini CLI | नीचे CLI कमांड या ~/.gemini/settings.json का उपयोग करें | - |
| Cursor | सेटिंग्स → MCP → नया वैश्विक MCP सर्वर जोड़ें | |
| VS Code | Ctrl+Shift+P → "प्राथमिकताएँ: उपयोगकर्ता सेटिंग्स खोलें (JSON)" | |
| Kiro | ~/.kiro/settings/mcp.json (वैश्विक) या .kiro/settings/mcp.json (प्रोजेक्ट) |
कोई भी MCP-संगत क्लाइंट इस सर्वर का उपयोग कर सकता है। त्वरित शुरुआत से JSON कॉन्फ़िगरेशन को अपने क्लाइंट की MCP कॉन्फ़िग फ़ाइल में जोड़ें। कॉन्फ़िग फ़ाइल स्थान के लिए अपने क्लाइंट के दस्तावेज़ देखें।
Claude Code CLI कमांड
इन-मेमोरी DuckDB (डेव मोड):
claude mcp add --scope user duckdb --transport stdio -- uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases
स्थानीय DuckDB (केवल-पढ़ने के लिए):
claude mcp add --scope user duckdb --transport stdio -- uvx mcp-server-motherduck --db-path /absolute/path/to/db.duckdb
MotherDuck (रीड-राइट):
claude mcp add --scope user motherduck --transport stdio --env motherduck_token=YOUR_TOKEN -- uvx mcp-server-motherduck --db-path md: --read-write
Codex CLI कमांड
इन-मेमोरी DuckDB (डेव मोड):
codex mcp add duckdb -- uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases
स्थानीय DuckDB (केवल-पढ़ने के लिए):
codex mcp add duckdb -- uvx mcp-server-motherduck --db-path /absolute/path/to/db.duckdb
MotherDuck (रीड-राइट):
codex mcp add motherduck --env motherduck_token=YOUR_TOKEN -- uvx mcp-server-motherduck --db-path md: --read-write
Gemini CLI कमांड
इन-मेमोरी DuckDB (डेव मोड):
gemini mcp add -s user duckdb uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases
स्थानीय DuckDB (केवल-पढ़ने के लिए):
gemini mcp add -s user duckdb uvx mcp-server-motherduck --db-path /absolute/path/to/db.duckdb
MotherDuck (रीड-राइट):
gemini mcp add -s user -e motherduck_token=YOUR_TOKEN motherduck uvx mcp-server-motherduck --db-path md: --read-write
Kiro मैनुअल JSON कॉन्फ़िग
अपनी Kiro MCP कॉन्फ़िग फ़ाइल में निम्नलिखित जोड़ें (वैश्विक के लिए ~/.kiro/settings/mcp.json, या प्रोजेक्ट-स्कोप्ड के लिए .kiro/settings/mcp.json)। अधिक विवरण के लिए Kiro MCP दस्तावेज़ीकरण देखें।
इन-मेमोरी DuckDB (डेव मोड):
{
"mcpServers": {
"DuckDB (in-memory, r/w)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", ":memory:", "--read-write", "--allow-switch-databases"]
}
}
}
MotherDuck (रीड-राइट):
{
"mcpServers": {
"MotherDuck (local, r/w)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", "md:", "--read-write"],
"env": {
"motherduck_token": "<YOUR_MOTHERDUCK_TOKEN>"
}
}
}
}
उपकरण
| उपकरण | विवरण | आवश्यक इनपुट | वैकल्पिक इनपुट |
|---|---|---|---|
execute_query | SQL क्वेरी निष्पादित करें (DuckDB बोली) | sql | - |
list_databases | सभी डेटाबेस सूचीबद्ध करें (MotherDuck या एकाधिक संलग्न DB के लिए उपयोगी) | - | - |
list_tables | तालिकाएँ और दृश्य सूचीबद्ध करें | - | database, schema |
list_columns | किसी तालिका/दृश्य के कॉलम सूचीबद्ध करें | table | database, schema |
switch_database_connection* | भिन्न डेटाबेस पर स्विच करें | path | create_if_not_exists |
*--allow-switch-databases फ़्लैग की आवश्यकता है
सभी उपकरण JSON लौटाते हैं। परिणाम डिफ़ॉल्ट रूप से 1024 पंक्तियों / 50,000 वर्णों तक सीमित हैं (--max-rows, --max-chars के माध्यम से कॉन्फ़िगर करने योग्य)।
उत्पादन के लिए सुरक्षित करना
तृतीय पक्षों को स्व-होस्टेड MCP सर्वर तक पहुँच देते समय, अकेला केवल-पढ़ने का मोड पर्याप्त नहीं है — यह अभी भी स्थानीय फ़ाइल सिस्टम तक पहुँच, DuckDB सेटिंग्स बदलने और अन्य संभावित रूप से संवेदनशील संचालन की अनुमति देता है।
तृतीय-पक्ष पहुँच वाले उत्पादन परिनियोजन के लिए, हम MotherDuck रिमोट MCP की अनुशंसा करते हैं — शून्य-सेटअप, रीड-राइट सक्षम, और MotherDuck द्वारा होस्टेड।
MotherDuck MCP को स्व-होस्ट करना: इस रेपो को फोर्क करें और आवश्यकतानुसार अनुकूलित करें। सेवा खाता का उपयोग रीड-स्केलिंग टोकन के साथ करें और स्थानीय फ़ाइल पहुँच को प्रतिबंधित करने के लिए SaaS मोड सक्षम करें।
DuckDB MCP को स्व-होस्ट करना: सुरक्षा सेटिंग्स लागू करने के लिए --init-sql का उपयोग करें। उपलब्ध विकल्पों के लिए DuckDB सुरक्षित करने की मार्गदर्शिका देखें।
Docker
पोर्ट 8000 पर स्ट्रीमेबल HTTP के साथ सर्वर बनाएँ और चलाएँ (डिफ़ॉल्ट रूप से इन-मेमोरी DuckDB):
docker build -t mcp-server-motherduck .
docker run --rm -p 8000:8000 mcp-server-motherduck
टोकन पास करके और कमांड को ओवरराइड करके MotherDuck से कनेक्ट करें:
docker run --rm -p 8000:8000 \
-e motherduck_token="$MOTHERDUCK_TOKEN" \
mcp-server-motherduck --transport http --db-path md:
MCP एंडपॉइंट http://localhost:8000/mcp पर उपलब्ध है। नीचे दिए गए CLI फ़्लैग और env vars अभी भी लागू होते हैं।
कमांड लाइन पैरामीटर
| पैरामीटर | डिफ़ॉल्ट | विवरण |
|---|---|---|
--db-path | :memory: | डेटाबेस पथ: स्थानीय फ़ाइल (निरपेक्ष), md: (MotherDuck), या s3:// URL |
--motherduck-token | motherduck_token env var | MotherDuck एक्सेस टोकन |
--read-write | False | राइट एक्सेस सक्षम करें |
--motherduck-saas-mode | False | MotherDuck SaaS मोड (स्थानीय पहुँच प्रतिबंधित करता है) |
--allow-switch-databases | False | switch_database_connection उपकरण सक्षम करें |
--max-rows | 1024 | लौटाई गई अधिकतम पंक्तियाँ |
--max-chars | 50000 | लौटाए गए अधिकतम वर्ण |
--query-timeout | -1 | सेकंड में क्वेरी टाइमआउट (-1 = अक्षम) |
--init-sql | None | स्टार्टअप पर निष्पादित करने के लिए SQL |
--motherduck-connection-parameters | session_hint=mcp&dbinstance_inactivity_ttl=0s | अतिरिक्त MotherDuck कनेक्शन स्ट्रिंग पैरामीटर (key=value जोड़े & द्वारा अलग किए गए) |
--ephemeral-connections | True | केवल-पढ़ने के लिए स्थानीय फ़ाइलों के लिए अस्थायी कनेक्शन का उपयोग करें |
--transport | stdio | परिवहन प्रकार: stdio या http |
--stateless-http | False | केवल प्रोटोकॉल संगतता के लिए (जैसे AWS Bedrock AgentCore Runtime के साथ)। सर्वर अभी भी साझा DatabaseClient के माध्यम से वैश्विक स्थिति बनाए रखता है। |
--port | 8000 | HTTP परिवहन के लिए पोर्ट |
--host | 127.0.0.1 | HTTP परिवहन के लिए होस्ट |
पर्यावरण चर
| चर | विवरण |
|---|---|
motherduck_token या MOTHERDUCK_TOKEN | MotherDuck एक्सेस टोकन (--motherduck-token का विकल्प) |
HOME | DuckDB द्वारा एक्सटेंशन और कॉन्फ़िग के लिए उपयोग किया जाता है। यदि सेट नहीं है तो --home-dir से ओवरराइड करें। |
AWS_ACCESS_KEY_ID | S3 डेटाबेस कनेक्शन के लिए AWS एक्सेस कुंजी |
AWS_SECRET_ACCESS_KEY | S3 डेटाबेस कनेक्शन के लिए AWS गुप्त कुंजी |
AWS_SESSION_TOKEN | अस्थायी क्रेडेंशियल्स (IAM भूमिकाएँ, SSO, EC2 इंस्टेंस प्रोफाइल) के लिए AWS सत्र टोकन |
AWS_DEFAULT_REGION | S3 कनेक्शन के लिए AWS क्षेत्र |
AWS_ENDPOINT | S3 कनेक्शन के लिए AWS एंडपॉइंट |
समस्या निवारण
spawn uvx ENOENT:uvxका पूरा पथ निर्दिष्ट करें (इसे खोजने के लिएwhich uvxचलाएँ)- फ़ाइल लॉक: सुनिश्चित करें कि
--ephemeral-connectionsचालू है (डिफ़ॉल्ट: true) और आप रीड-राइट मोड में कनेक्ट नहीं हैं
संसाधन
- MotherDuck MCP दस्तावेज़ीकरण
- लूप बंद करें: MCP, DuckDB और AI के साथ तेज़ डेटा पाइपलाइन (ब्लॉग)
- MCP और DuckDB के साथ तेज़ डेटा पाइपलाइन (YouTube)
विकास
स्रोत से चलाने के लिए:
{
"mcpServers": {
"Local DuckDB (Dev)": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-server-motherduck", "run", "mcp-server-motherduck", "--db-path", "md:"],
"env": {
"motherduck_token": "<YOUR_MOTHERDUCK_TOKEN>"
}
}
}
}
रिलीज़ प्रक्रिया
Release New VersionGitHub Action चलाएँMAJOR.MINOR.PATCHप्रारूप में संस्करण दर्ज करें- वर्कफ़्लो संस्करण बढ़ाता है, PyPI/MCP रजिस्ट्री में प्रकाशित करता है, और MCPB पैकेज के साथ GitHub रिलीज़ बनाता है
लाइसेंस
MIT लाइसेंस - LICENSE फ़ाइल देखें।
mcp-name: io.github.motherduckdb/mcp-server-motherduck