MotherDuck

resmi

MotherDuck ve yerel DuckDB ile veri sorgulama ve analiz etme

MotherDuck MCP ile neler yapabilirsiniz?

  • Run SQL analytics — Asistanınızdan yerel DuckDB dosyalarını, bellek içi veritabanlarını veya MotherDuck'ı execute_query ile tam DuckDB SQL diyalektiği desteğiyle sorgulamasını isteyin.

  • Explore database structure — Asistanınızdan list_databases, list_tables ve list_columns kullanarak veritabanlarını, tabloları ve sütunları listelemesini isteyerek veri şemanızı anlamasını sağlayın.

  • Switch database connections — Asistanınıza yerel dosyalar, S3 barındırmalı veritabanları veya MotherDuck arasında anında geçiş yapmasını switch_database_connection aracılığıyla talimat verin (--allow-switch-databases bayrağı gerektirir).

  • Write and modify data — Okuma-yazma modunu etkinleştirerek asistanınızın bağlı veritabanlarına doğrudan kayıt eklemesine, güncellemesine veya silmesine izin verin.

  • Ingest and export data — Yerel ve uzak veritabanları arasında sorgulama yapmak için sunucuyu kullanın; verileri yerel dosya sisteminizden içe aktarın veya dışa aktarın.

Barındırılan MCP Sunucusu

npx add-mcp 'https://api.motherduck.com/mcp'

Claude Code, Codex, Cursor ve daha fazlasına kurulur

Dokümantasyon

MotherDuck / DuckDB Local MCP Server

DuckDB / MotherDuck Yerel MCP Sunucusu

Yapay zeka asistanları ve IDE'ler için SQL analitiği ve veri mühendisliği.


DuckDB'nin güçlü analitik SQL motorunu kullanarak yapay zeka asistanlarını verilerinize bağlayın. Yerel DuckDB dosyalarına, bellek içi veritabanlarına, S3'te barındırılan veritabanlarına ve MotherDuck'a bağlanmayı destekler. SQL okuma ve yazma sorguları çalıştırmanıza, veritabanı kataloglarına göz atmanıza ve farklı veritabanı bağlantıları arasında anında geçiş yapmanıza olanak tanır.

MotherDuck için tam yönetilen uzak MCP sunucusu mu arıyorsunuz? → MotherDuck Uzak MCP belgelerine gidin

Uzak ve Yerel MCP Karşılaştırması

Uzak MCPYerel MCP (bu depo)
BarındırmaMotherDuck tarafından barındırılırYerel/kendi kendine barındırılır
KurulumSıfır kurulumYerel kurulum gerektirir
ErişimOkuma-yazma desteklenirOkuma-yazma desteklenir
Yerel dosya sistemi-Yerel ve uzak veritabanları arasında sorgulama, yerel dosya sisteminden veri alma / veri dışa aktarma

Hızlı Başlangıç

Ön koşullar: uv'yi pip install uv veya brew install uv aracılığıyla kurun

Bellek İçi DuckDB'ye Bağlanma (Geliştirici Modu)

{
  "mcpServers": {
    "DuckDB (in-memory, r/w)": {
      "command": "uvx",
      "args": ["mcp-server-motherduck", "--db-path", ":memory:", "--read-write", "--allow-switch-databases"]
    }
  }
}

Kısıtlama olmadan tam esneklik — okuma-yazma erişimi ve çalışma zamanında herhangi bir veritabanına (yerel dosyalar, S3 veya MotherDuck) geçiş yapabilme.

Yerel DuckDB Dosyasına Salt Okunur Modda Bağlanma

{
  "mcpServers": {
    "DuckDB (read-only)": {
      "command": "uvx",
      "args": ["mcp-server-motherduck", "--db-path", "/absolute/path/to/your.duckdb"]
    }
  }
}

Belirli bir DuckDB dosyasına salt okunur modda bağlanır. Dosya kilidini tutmaz, bu nedenle aynı DuckDB dosyasına yazma bağlantısıyla birlikte kullanmak uygundur. s3://bucket/path.duckdb kullanarak S3'teki uzak DuckDB dosyalarına da bağlanabilirsiniz — S3 kimlik doğrulaması için Ortam Değişkenleri bölümüne bakın. MCP'ye üçüncü taraf erişimi düşünüyorsanız, Üretim için Güvenlik bölümüne bakın.

MotherDuck'a Okuma-Yazma Modunda Bağlanma

{
  "mcpServers": {
    "MotherDuck (local, r/w)": {
      "command": "uvx",
      "args": ["mcp-server-motherduck", "--db-path", "md:", "--read-write"],
      "env": {
        "motherduck_token": "<YOUR_MOTHERDUCK_TOKEN>"
      }
    }
  }
}

Daha fazla seçenek için Komut Satırı Parametreleri, dağıtım rehberliği için Üretim için Güvenlik ve sorun yaşarsanız Sorun Giderme bölümlerine bakın.

İstemci Kurulumu

İstemciYapılandırma KonumuTek Tıkla Kurulum
Claude DesktopAyarlar → Geliştirici → Yapılandırmayı Düzenle.mcpb (MCP Paketi)
Claude CodeAşağıdaki CLI komutlarını kullanın-
Codex CLIAşağıdaki CLI komutlarını veya ~/.codex/config.toml kullanın-
Gemini CLIAşağıdaki CLI komutlarını veya ~/.gemini/settings.json kullanın-
CursorAyarlar → MCP → Yeni genel MCP sunucusu ekleInstall in Cursor
VS CodeCtrl+Shift+P → "Preferences: Open User Settings (JSON)"Install with UV in VS Code
Kiro~/.kiro/settings/mcp.json (genel) veya .kiro/settings/mcp.json (proje)Add to Kiro

MCP uyumlu herhangi bir istemci bu sunucuyu kullanabilir. Hızlı Başlangıç bölümündeki JSON yapılandırmasını istemcinizin MCP yapılandırma dosyasına ekleyin. Yapılandırma dosyasının konumu için istemcinizin belgelerine başvurun.

Claude Code CLI komutları

Bellek İçi DuckDB (Geliştirici Modu):

claude mcp add --scope user duckdb --transport stdio -- uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases

Yerel DuckDB (Salt Okunur):

claude mcp add --scope user duckdb --transport stdio -- uvx mcp-server-motherduck --db-path /absolute/path/to/db.duckdb

MotherDuck (Okuma-Yazma):

claude mcp add --scope user motherduck --transport stdio --env motherduck_token=YOUR_TOKEN -- uvx mcp-server-motherduck --db-path md: --read-write
Codex CLI komutları

Bellek İçi DuckDB (Geliştirici Modu):

codex mcp add duckdb -- uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases

Yerel DuckDB (Salt Okunur):

codex mcp add duckdb -- uvx mcp-server-motherduck --db-path /absolute/path/to/db.duckdb

MotherDuck (Okuma-Yazma):

codex mcp add motherduck --env motherduck_token=YOUR_TOKEN -- uvx mcp-server-motherduck --db-path md: --read-write
Gemini CLI komutları

Bellek İçi DuckDB (Geliştirici Modu):

gemini mcp add -s user duckdb uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases

Yerel DuckDB (Salt Okunur):

gemini mcp add -s user duckdb uvx mcp-server-motherduck --db-path /absolute/path/to/db.duckdb

MotherDuck (Okuma-Yazma):

gemini mcp add -s user -e motherduck_token=YOUR_TOKEN motherduck uvx mcp-server-motherduck --db-path md: --read-write
Kiro manuel JSON yapılandırması

Aşağıdakileri Kiro MCP yapılandırma dosyanıza ekleyin (genel için ~/.kiro/settings/mcp.json veya proje kapsamlı için .kiro/settings/mcp.json). Daha fazla ayrıntı için Kiro MCP belgelerine bakın.

Bellek İçi DuckDB (Geliştirici Modu):

{
  "mcpServers": {
    "DuckDB (in-memory, r/w)": {
      "command": "uvx",
      "args": ["mcp-server-motherduck", "--db-path", ":memory:", "--read-write", "--allow-switch-databases"]
    }
  }
}

MotherDuck (Okuma-Yazma):

{
  "mcpServers": {
    "MotherDuck (local, r/w)": {
      "command": "uvx",
      "args": ["mcp-server-motherduck", "--db-path", "md:", "--read-write"],
      "env": {
        "motherduck_token": "<YOUR_MOTHERDUCK_TOKEN>"
      }
    }
  }
}

Araçlar

AraçAçıklamaGerekli Girdilerİsteğe Bağlı Girdiler
execute_querySQL sorgusu çalıştırın (DuckDB lehçesi)sql-
list_databasesTüm veritabanlarını listele (MotherDuck veya birden fazla ekli DB için kullanışlıdır)--
list_tablesTabloları ve görünümleri listele-database, schema
list_columnsBir tablonun/görünümün sütunlarını listeletabledatabase, schema
switch_database_connection*Farklı bir veritabanına geçpathcreate_if_not_exists

*--allow-switch-databases bayrağı gerektirir

Tüm araçlar JSON döndürür. Sonuçlar varsayılan olarak 1024 satır / 50.000 karakterle sınırlıdır (--max-rows, --max-chars ile yapılandırılabilir).

Üretim için Güvenlik

Üçüncü taraflara kendi kendine barındırılan bir MCP sunucusuna erişim verirken, yalnızca salt okunur mod yeterli değildir — yerel dosya sistemine erişime, DuckDB ayarlarını değiştirmeye ve diğer potansiyel olarak hassas işlemlere hâlâ izin verir.

Üçüncü taraf erişimi olan üretim dağıtımları için MotherDuck Uzak MCP öneririz — sıfır kurulum, okuma-yazma yetenekli ve MotherDuck tarafından barındırılır.

MotherDuck MCP'yi kendi kendine barındırma: Bu depoyu çatallayın ve gerektiği gibi özelleştirin. Yerel dosya erişimini kısıtlamak için SaaS modunu etkinleştirin ve okuma ölçekleme belirteçleri olan bir hizmet hesabı kullanın.

DuckDB MCP'yi kendi kendine barındırma: Güvenlik ayarlarını uygulamak için --init-sql kullanın. Mevcut seçenekler için DuckDB'yi Güvenli Hale Getirme kılavuzuna bakın.

Docker

Sunucuyu 8000 numaralı bağlantı noktasında Streamable HTTP ile derleyin ve çalıştırın (varsayılan olarak bellek içi DuckDB kullanır):

docker build -t mcp-server-motherduck .
docker run --rm -p 8000:8000 mcp-server-motherduck

Bir belirteç ileterek ve komutu geçersiz kılarak MotherDuck'a bağlanın:

docker run --rm -p 8000:8000 \
  -e motherduck_token="$MOTHERDUCK_TOKEN" \
  mcp-server-motherduck --transport http --db-path md:

MCP uç noktası http://localhost:8000/mcp adresinde mevcuttur. Aşağıdaki CLI bayrakları ve ortam değişkenleri hâlâ geçerlidir.

Komut Satırı Parametreleri

ParametreVarsayılanAçıklama
--db-path:memory:Veritabanı yolu: yerel dosya (mutlak), md: (MotherDuck) veya s3:// URL'si
--motherduck-tokenmotherduck_token ortam değişkeniMotherDuck erişim belirteci
--read-writeFalseYazma erişimini etkinleştir
--motherduck-saas-modeFalseMotherDuck SaaS modu (yerel erişimi kısıtlar)
--allow-switch-databasesFalseswitch_database_connection aracını etkinleştir
--max-rows1024Döndürülen maksimum satır sayısı
--max-chars50000Döndürülen maksimum karakter sayısı
--query-timeout-1Sorgu zaman aşımı saniye cinsinden (-1 = devre dışı)
--init-sqlNoneBaşlangıçta çalıştırılacak SQL
--motherduck-connection-parameterssession_hint=mcp&
dbinstance_inactivity_ttl=0s
Ek MotherDuck bağlantı dizesi parametreleri (key=value çiftleri & ile ayrılır)
--ephemeral-connectionsTrueSalt okunur yerel dosyalar için geçici bağlantılar kullan
--transportstdioTaşıma türü: stdio veya http
--stateless-httpFalseYalnızca protokol uyumluluğu için (ör. AWS Bedrock AgentCore Runtime ile). Sunucu, paylaşılan DatabaseClient aracılığıyla genel durumu korumaya devam eder.
--port8000HTTP taşıması için bağlantı noktası
--host127.0.0.1HTTP taşıması için ana bilgisayar

Ortam Değişkenleri

DeğişkenAçıklama
motherduck_token veya MOTHERDUCK_TOKENMotherDuck erişim belirteci (--motherduck-token alternatifi)
HOMEDuckDB tarafından uzantılar ve yapılandırma için kullanılır. Ayarlanmamışsa --home-dir ile geçersiz kılın.
AWS_ACCESS_KEY_IDS3 veritabanı bağlantıları için AWS erişim anahtarı
AWS_SECRET_ACCESS_KEYS3 veritabanı bağlantıları için AWS gizli anahtarı
AWS_SESSION_TOKENGeçici kimlik bilgileri için AWS oturum belirteci (IAM rolleri, SSO, EC2 örnek profilleri)
AWS_DEFAULT_REGIONS3 bağlantıları için AWS bölgesi
AWS_ENDPOINTS3 bağlantıları için AWS uç noktası

Sorun Giderme

  • spawn uvx ENOENT: uvx için tam yolu belirtin (bulmak için which uvx çalıştırın)
  • Dosya kilitli: --ephemeral-connections öğesinin açık olduğundan (varsayılan: true) ve okuma-yazma modunda bağlı olmadığınızdan emin olun

Kaynaklar

Geliştirme

Kaynaktan çalıştırmak için:

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

Sürüm Süreci

  1. Release New Version GitHub Eylemini çalıştırın
  2. Sürümü MAJOR.MINOR.PATCH biçiminde girin
  3. İş akışı sürümü artırır, PyPI/MCP kayıt defterine yayınlar ve MCPB paketiyle GitHub sürümünü oluşturur

Lisans

MIT Lisansı - LICENSE dosyasına bakın.

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