MotherDuck
resmiMotherDuck ve yerel DuckDB ile veri sorgulama ve analiz etme
Mother Duck MCP ile neler yapabilirsiniz?
- DuckDB veya MotherDuck’a karşı SQL sorguları çalıştırın — asistanınızın
execute_queryaracılığıyla analitik SQL yürütmesini isteyin; okuma ve isteğe bağlı yazma işlemlerini destekler. - Veritabanı şemalarını keşfedin —
list_databasesile kullanılabilir veritabanlarını listeleyin, ardındanlist_tablesvelist_columnskullanarak tablolara ve sütunlara detaylıca bakın. - Veritabanı bağlantıları arasında geçiş yapın — çalışma zamanında yerel DuckDB dosyaları, bellek içi örnekler, S3’te barındırılan veritabanları veya MotherDuck arasında geçiş yapmak için
switch_database_connectionkullanın. - Bulut analitiği için MotherDuck’a bağlanın — sunucuyu bir token ile
md:adresine yönlendirerek MotherDuck veritabanlarını doğrudan sorgulayın ve yönetin. - Sorgu çıktı boyutunu kontrol edin — asistana döndürülen sonuç kümelerini sınırlamak için
--max-rowsve--max-charsyapılandırın.
Dokümantasyon
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ı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 bir uzak MCP sunucusu mu arıyorsunuz? → MotherDuck Uzak MCP belgelerine gidin
Uzak ve Yerel MCP Karşılaştırması
| Uzak MCP | Yerel MCP (bu repo) | |
|---|---|---|
| Barındırma | MotherDuck tarafından barındırılır | Yerelde/self-hosted çalışır |
| Kurulum | Sıfır kurulum | Yerel kurulum gerektirir |
| Erişim | Okuma-yazma desteklenir | Okuma-yazma desteklenir |
| Yerel dosya sistemi | - | Yerel ve uzak veritabanları arası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-writeekleyin. Üretim için Güvenlik bölümüne bakın.- Varsayılan veritabanı değişti:
--db-pathvarsayı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-writegerektirir.
Hızlı Başlangıç
Ön Koşullar: uv'ı 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"]
}
}
}
Hiçbir kısıtlama olmaksızın tam esneklik — okuma-yazma erişimi ve çalışma zamanında herhangi bir veritabanına (yerel dosyalar, S3 veya MotherDuck) geçiş yapma 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. Ayrıca 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
| İstemci | Yapılandırma Konumu | Tek Tıklamayla Kurulum |
|---|---|---|
| Claude Desktop | Ayarlar → Geliştirici → Yapılandırmayı Düzenle | .mcpb (MCP Paketi) |
| Claude Code | Aşağıdaki CLI komutlarını kullanın | - |
| Codex CLI | Aşağıdaki CLI komutlarını veya ~/.codex/config.toml kullanın | - |
| Gemini CLI | Aşağıdaki CLI komutlarını veya ~/.gemini/settings.json kullanın | - |
| Cursor | Ayarlar → MCP → Yeni genel MCP sunucusu ekle | |
| VS Code | Ctrl+Shift+P → "Tercihler: Kullanıcı Ayarlarını Aç (JSON)" | |
| Kiro | ~/.kiro/settings/mcp.json (genel) veya .kiro/settings/mcp.json (proje) |
Herhangi bir MCP uyumlu 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çıklama | Gerekli Girdiler | İsteğe Bağlı Girdiler |
|---|---|---|---|
execute_query | SQL sorgusu çalıştır (DuckDB diyalekti) | sql | - |
list_databases | Tüm veritabanlarını listele (MotherDuck veya birden çok ekli VT için kullanışlıdır) | - | - |
list_tables | Tabloları ve görünümleri listele | - | database, schema |
list_columns | Bir tablonun/görünümün sütunlarını listele | table | database, schema |
switch_database_connection* | Farklı bir veritabanına geç | path | create_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 hala 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 kılavuzuna bakın.
Docker
Sunucuyu 8000 numaralı bağlantı noktasında Streamable HTTP ile oluşturun ve çalıştırın (varsayılan olarak bellek içi bir DuckDB):
docker build -t mcp-server-motherduck .
docker run --rm -p 8000:8000 mcp-server-motherduck
Bir jeton 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 hala geçerlidir.
Komut Satırı Parametreleri
| Parametre | Varsayılan | Açıklama |
|---|---|---|
--db-path | :memory: | Veritabanı yolu: yerel dosya (mutlak), md: (MotherDuck) veya s3:// URL'si |
--motherduck-token | motherduck_token ortam değişkeni | MotherDuck erişim jetonu |
--read-write | False | Yazma erişimini etkinleştir |
--motherduck-saas-mode | False | MotherDuck SaaS modu (yerel erişimi kısıtlar) |
--allow-switch-databases | False | switch_database_connection aracını etkinleştir |
--max-rows | 1024 | Döndürülen maksimum satır sayısı |
--max-chars | 50000 | Döndürülen maksimum karakter sayısı |
--query-timeout | -1 | Saniye cinsinden sorgu zaman aşımı (-1 = devre dışı) |
--init-sql | None | Başlangıçta çalıştırılacak SQL |
--motherduck-connection-parameters | session_hint=mcp&dbinstance_inactivity_ttl=0s | Ek MotherDuck bağlantı dizesi parametreleri (& ile ayrılmış key=value çiftleri) |
--ephemeral-connections | True | Salt okunur yerel dosyalar için geçici bağlantılar kullan |
--transport | stdio | Aktarım türü: stdio veya http |
--stateless-http | False | Yalnızca protokol uyumluluğu içindir (örn. AWS Bedrock AgentCore Runtime ile). Sunucu, paylaşılan DatabaseClient aracılığıyla hala genel durumu korur. |
--port | 8000 | HTTP aktarımı için bağlantı noktası |
--host | 127.0.0.1 | HTTP aktarımı için ana bilgisayar |
Ortam Değişkenleri
| Değişken | Açıklama |
|---|---|
motherduck_token veya MOTHERDUCK_TOKEN | MotherDuck erişim jetonu (--motherduck-token alternatifi) |
HOME | DuckDB 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_ID | S3 veritabanı bağlantıları için AWS erişim anahtarı |
AWS_SECRET_ACCESS_KEY | S3 veritabanı bağlantıları için AWS gizli anahtarı |
AWS_SESSION_TOKEN | Geçici kimlik bilgileri için AWS oturum jetonu (IAM rolleri, SSO, EC2 örnek profilleri) |
AWS_DEFAULT_REGION | S3 bağlantıları için AWS bölgesi |
AWS_ENDPOINT | S3 bağlantıları için AWS uç noktası |
Sorun Giderme
spawn uvx ENOENT:uvxtam yolunu belirtin (bulmak içinwhich uvxçalıştırın)- Dosya kilitli:
--ephemeral-connectionsözelliğinin açık olduğundan (varsayılan: true) ve okuma-yazma modunda bağlı olmadığınızdan emin olun
Kaynaklar
- MotherDuck MCP Belgeleri
- Döngüyü Kapatın: MCP, DuckDB ve Yapay Zeka ile Daha Hızlı Veri Hatları (Blog)
- MCP ve DuckDB ile Daha Hızlı Veri Hatları (YouTube)
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
Release New VersionGitHub Eylemini çalıştırın- Sürümü
MAJOR.MINOR.PATCHbiçiminde girin - İş 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