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 कॉन्फ़िगर करें।

दस्तावेज़

MotherDuck / DuckDB Local MCP Server

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 सर्वर जोड़ेंInstall in Cursor
VS CodeCtrl+Shift+P → "प्राथमिकताएँ: उपयोगकर्ता सेटिंग्स खोलें (JSON)"Install with UV in VS Code
Kiro~/.kiro/settings/mcp.json (वैश्विक) या .kiro/settings/mcp.json (प्रोजेक्ट)Add to Kiro

कोई भी 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_querySQL क्वेरी निष्पादित करें (DuckDB बोली)sql-
list_databasesसभी डेटाबेस सूचीबद्ध करें (MotherDuck या एकाधिक संलग्न DB के लिए उपयोगी)--
list_tablesतालिकाएँ और दृश्य सूचीबद्ध करें-database, schema
list_columnsकिसी तालिका/दृश्य के कॉलम सूचीबद्ध करेंtabledatabase, schema
switch_database_connection*भिन्न डेटाबेस पर स्विच करेंpathcreate_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-tokenmotherduck_token env varMotherDuck एक्सेस टोकन
--read-writeFalseराइट एक्सेस सक्षम करें
--motherduck-saas-modeFalseMotherDuck SaaS मोड (स्थानीय पहुँच प्रतिबंधित करता है)
--allow-switch-databasesFalseswitch_database_connection उपकरण सक्षम करें
--max-rows1024लौटाई गई अधिकतम पंक्तियाँ
--max-chars50000लौटाए गए अधिकतम वर्ण
--query-timeout-1सेकंड में क्वेरी टाइमआउट (-1 = अक्षम)
--init-sqlNoneस्टार्टअप पर निष्पादित करने के लिए SQL
--motherduck-connection-parameterssession_hint=mcp&
dbinstance_inactivity_ttl=0s
अतिरिक्त MotherDuck कनेक्शन स्ट्रिंग पैरामीटर (key=value जोड़े & द्वारा अलग किए गए)
--ephemeral-connectionsTrueकेवल-पढ़ने के लिए स्थानीय फ़ाइलों के लिए अस्थायी कनेक्शन का उपयोग करें
--transportstdioपरिवहन प्रकार: stdio या http
--stateless-httpFalseकेवल प्रोटोकॉल संगतता के लिए (जैसे AWS Bedrock AgentCore Runtime के साथ)। सर्वर अभी भी साझा DatabaseClient के माध्यम से वैश्विक स्थिति बनाए रखता है।
--port8000HTTP परिवहन के लिए पोर्ट
--host127.0.0.1HTTP परिवहन के लिए होस्ट

पर्यावरण चर

चरविवरण
motherduck_token या MOTHERDUCK_TOKENMotherDuck एक्सेस टोकन (--motherduck-token का विकल्प)
HOMEDuckDB द्वारा एक्सटेंशन और कॉन्फ़िग के लिए उपयोग किया जाता है। यदि सेट नहीं है तो --home-dir से ओवरराइड करें।
AWS_ACCESS_KEY_IDS3 डेटाबेस कनेक्शन के लिए AWS एक्सेस कुंजी
AWS_SECRET_ACCESS_KEYS3 डेटाबेस कनेक्शन के लिए AWS गुप्त कुंजी
AWS_SESSION_TOKENअस्थायी क्रेडेंशियल्स (IAM भूमिकाएँ, SSO, EC2 इंस्टेंस प्रोफाइल) के लिए AWS सत्र टोकन
AWS_DEFAULT_REGIONS3 कनेक्शन के लिए AWS क्षेत्र
AWS_ENDPOINTS3 कनेक्शन के लिए AWS एंडपॉइंट

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

  • spawn uvx ENOENT: uvx का पूरा पथ निर्दिष्ट करें (इसे खोजने के लिए which uvx चलाएँ)
  • फ़ाइल लॉक: सुनिश्चित करें कि --ephemeral-connections चालू है (डिफ़ॉल्ट: true) और आप रीड-राइट मोड में कनेक्ट नहीं हैं

संसाधन

विकास

स्रोत से चलाने के लिए:

{
  "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>"
      }
    }
  }
}

रिलीज़ प्रक्रिया

  1. Release New Version GitHub Action चलाएँ
  2. MAJOR.MINOR.PATCH प्रारूप में संस्करण दर्ज करें
  3. वर्कफ़्लो संस्करण बढ़ाता है, PyPI/MCP रजिस्ट्री में प्रकाशित करता है, और MCPB पैकेज के साथ GitHub रिलीज़ बनाता है

लाइसेंस

MIT लाइसेंस - LICENSE फ़ाइल देखें।

mcp-name: io.github.motherduckdb/mcp-server-motherduck