MotherDuck MCP Server

resmi

MotherDuck ve yerel DuckDB ile veri sorgulama ve analiz etme

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ızı 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ırmaya, veritabanı kataloglarına göz atmaya ve farklı veritabanı bağlantıları arasında anında geçiş yapmaya 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 repo)
BarındırmaMotherDuck tarafından barındırılırYerelde/self-hosted çalışır
KurulumSıfır kurulumYerel kurulum gerektirir
ErişimOkuma-yazma desteklenirOkuma-yazma desteklenir
Yerel dosya sistemi-Yerel ve uzak veritabanlarında sorgulama, yerel dosya sisteminden veri alma / dosya sistemine veri aktarma

📝 v0.x sürümünden mi geçiş yapıyorsunuz?

  • Varsayılan olarak salt okunur: Sunucu artık varsayılan olarak salt okunur modda çalışır. Yazma erişimini etkinleştirmek için --read-write ekleyin. Üretim için Güvenlik bölümüne bakın.
  • Varsayılan veritabanı değişti: --db-path varsayılanı md: yerine :memory: olarak değiştirildi. MotherDuck için açıkça --db-path md: ekleyin.
  • MotherDuck salt okunur modu, okuma ölçeklendirme jetonu gerektirir: Salt okunur moddaki MotherDuck bağlantıları bir okuma ölçeklendirme jetonu gerektirir. Normal jetonlar --read-write gerektirir.

Hızlı Başlangıç

Ön Koşullar: uv'i pip install uv veya brew install uv aracılığıyla yükleyin

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

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

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

Salt Okunur Modda Yerel Bir DuckDB Dosyasına 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 kullanımı 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.

Okuma-Yazma Modunda MotherDuck'a 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 sorunlarla karşılaşırsanı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 → "Tercihler: Kullanıcı Ayarlarını Aç (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ştirme 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ştirme 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ştirme 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ğıdakini 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ştirme 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 (DuckDB diyalekti)sql-
list_databasesTüm veritabanlarını listele (MotherDuck veya birden çok ekli VT için kullanışlı)--
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ı veritabanına geçpathcreate_if_not_exists

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

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

Üretim için Güvenlik

Üçüncü taraflara self-hosted bir MCP sunucusuna erişim verirken, salt okunur mod tek başına 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'yi öneririz — sıfır kurulum, okuma-yazma yetenekli ve MotherDuck tarafından barındırılır.

MotherDuck MCP'yi self-hosted olarak kullanma: Bu repoyu çatallayın ve gerektiği gibi özelleştirin. Bir hizmet hesabı ile okuma ölçeklendirme jetonları kullanın ve yerel dosya erişimini kısıtlamak için SaaS modunu etkinleştirin.

DuckDB MCP'yi self-hosted olarak kullanma: Güvenlik ayarlarını uygulamak için --init-sql kullanın. Mevcut seçenekler için DuckDB Güvenlik Rehberi'ne bakın.

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 jetonu
--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-1Saniye cinsinden sorgu zaman aşımı (-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
--transportstdioAktarım türü: stdio veya http
--stateless-httpFalseYalnızca protokol uyumluluğu içindir (örn. AWS Bedrock AgentCore Runtime ile). Sunucu, paylaşılan DatabaseClient aracılığıyla genel durumu hâlâ korur.
--port8000HTTP aktarımı için bağlantı noktası
--host127.0.0.1HTTP aktarımı için ana bilgisayar

Ortam Değişkenleri

DeğişkenAçıklama
motherduck_token veya MOTHERDUCK_TOKENMotherDuck erişim jetonu (--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 jetonu (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 tam yolunu belirtin (bulmak için which uvx çalıştırın)
  • Dosya kilitli: --ephemeral-connections 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 defterinde 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