MotherDuck MCP Server
resmiMotherDuck ve yerel DuckDB ile veri sorgulama ve analiz etme
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ı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 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ı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'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
| İ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 → "Tercihler: Kullanıcı Ayarlarını Aç (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ş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ı) | - | - |
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ı 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 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
| 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 (key=value çiftleri & ile ayrılır) |
--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 genel durumu hâlâ 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-connectionsaçı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 İşlem Hatları (Blog)
- MCP ve DuckDB ile Daha Hızlı Veri İşlem 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