MotherDuck
resmiMotherDuck 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_queryile tam DuckDB SQL diyalektiği desteğiyle sorgulamasını isteyin. -
Explore database structure — Asistanınızdan
list_databases,list_tablesvelist_columnskullanarak 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_connectionaracılığıyla talimat verin (--allow-switch-databasesbayrağı 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
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 MCP | Yerel MCP (bu depo) | |
|---|---|---|
| Barındırma | MotherDuck tarafından barındırılır | Yerel/kendi kendine barındırılı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 / 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
| İstemci | Yapılandırma Konumu | Tek Tıkla 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 → "Preferences: Open User Settings (JSON)" | |
| Kiro | ~/.kiro/settings/mcp.json (genel) veya .kiro/settings/mcp.json (proje) |
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çıklama | Gerekli Girdiler | İsteğe Bağlı Girdiler |
|---|---|---|---|
execute_query | SQL sorgusu çalıştırın (DuckDB lehçesi) | sql | - |
list_databases | Tüm veritabanlarını listele (MotherDuck veya birden fazla ekli DB 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ğı 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
| 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 belirteci |
--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 | Sorgu zaman aşımı saniye cinsinden (-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 (key=value çiftleri & ile ayrılır) |
--ephemeral-connections | True | Salt okunur yerel dosyalar için geçici bağlantılar kullan |
--transport | stdio | Taşıma türü: stdio veya http |
--stateless-http | False | Yalnızca protokol uyumluluğu için (ör. AWS Bedrock AgentCore Runtime ile). Sunucu, paylaşılan DatabaseClient aracılığıyla genel durumu korumaya devam eder. |
--port | 8000 | HTTP taşıması için bağlantı noktası |
--host | 127.0.0.1 | HTTP taşıması için ana bilgisayar |
Ortam Değişkenleri
| Değişken | Açıklama |
|---|---|
motherduck_token veya MOTHERDUCK_TOKEN | MotherDuck erişim belirteci (--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 belirteci (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:uvxiçin tam yolu belirtin (bulmak içinwhich 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
- MotherDuck MCP Belgeleri
- Döngüyü Kapatın: MCP, DuckDB ve Yapay Zeka ile Daha Hızlı Veri Ardışık Düzenleri (Blog)
- MCP ve DuckDB ile Daha Hızlı Veri Ardışık Düzenleri (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 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