NodeJS'de MySQL veritabanı entegrasyonu, yapılandırılabilir erişim kontrolleri ve schema incelemesi özellikleri ile sağlanır.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"benborla-mcp-server-mysql": {
"command": "node",
"args": [
"~/.mcp/mcp-server-mysql/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/benborla/mcp-server-mysql.git ~/.mcp/mcp-server-mysql
cd ~/.mcp/mcp-server-mysql 🚀 SSH tunnel desteği ile Claude Code için optimize edilmiş değiştirilmiş sürüm
Orijinal Yazar: @benborla29
Orijinal Repository: https://github.com/benborla/mcp-server-mysql
Lisans: MIT
MYSQL_DISABLE_READ_ONLY_TRANSACTIONS eklendiModel Context Protocol server'ı SSH tunnel'ları aracılığıyla MySQL veritabanlarına erişim sağlar. Bu server Claude ve diğer LLM'lerin veritabanı şemalarını incelemesine ve SQL sorguları güvenli bir şekilde çalıştırmasına olanak tanır.
MCP server'ı kurmanın ve yapılandırmanın birkaç yolu vardır, ancak en yaygın olanı bu website'i ziyaret etmek olacaktır: https://smithery.ai/server/@benborla29/mcp-server-mysql
Cursor IDE için bu MCP server'ını projenizde aşağıdaki komutla kurabilirsiniz:
MCP Get, MCP server'larının merkezi bir registry'sini sağlar ve kurulum işlemini basitleştirir.
Codex CLI kurulumu aşağıdaki Claude Code'a benzerdir
codex mcp add mcp_server_mysql \
--env MYSQL_HOST="127.0.0.1" \
--env MYSQL_PORT="3306" \
--env MYSQL_USER="root" \
--env MYSQL_PASS="your_password" \
--env MYSQL_DB="your_database" \
--env ALLOW_INSERT_OPERATION="false" \
--env ALLOW_UPDATE_OPERATION="false" \
--env ALLOW_DELETE_OPERATION="false" \
-- npx -y @benborla29/mcp-server-mysql
Bu MCP server'ını Claude Desktop'ta zaten yapılandırılmışsa, otomatik olarak içe aktarabilirsiniz:
claude mcp add-from-claude-desktop
Bu, yapılandırılan mcp_server_mysql server'ını tüm mevcut konfigürasyonla seçebileceğiniz etkileşimli bir dialog gösterecektir.
NPM/PNPM Global Kurulumu Kullanarak:
Öncelikle paketi global olarak kurun:
# npm kullanarak
npm install -g @benborla29/mcp-server-mysql
# pnpm kullanarak
pnpm add -g @benborla29/mcp-server-mysql
Ardından server'ı Claude Code'a ekleyin:
claude mcp add mcp_server_mysql \
-e MYSQL_HOST="127.0.0.1" \
-e MYSQL_PORT="3306" \
-e MYSQL_USER="root" \
-e MYSQL_PASS="your_password" \
-e MYSQL_DB="your_database" \
-e ALLOW_INSERT_OPERATION="false" \
-e ALLOW_UPDATE_OPERATION="false" \
-e ALLOW_DELETE_OPERATION="false" \
-- npx @benborla29/mcp-server-mysql
Yerel Repository Kullanarak (geliştirme için):
Klonlanmış bir repository'den çalıştırıyorsanız:
claude mcp add mcp_server_mysql \
-e MYSQL_HOST="127.0.0.1" \
-e MYSQL_PORT="3306" \
-e MYSQL_USER="root" \
-e MYSQL_PASS="your_password" \
-e MYSQL_DB="your_database" \
-e ALLOW_INSERT_OPERATION="false" \
-e ALLOW_UPDATE_OPERATION="false" \
-e ALLOW_DELETE_OPERATION="false" \
-e PATH="/path/to/node/bin:/usr/bin:/bin" \
-e NODE_PATH="/path/to/node/lib/node_modules" \
-- /path/to/node /full/path/to/mcp-server-mysql/dist/index.js
Aşağıdakileri değiştirin:
/path/to/node yerine Node.js binary dosyasının yolu (which node ile bulun)/full/path/to/mcp-server-mysql yerine klonladığınız repository'nin tam yoluUnix Socket Bağlantısı Kullanarak:
Unix socket'ler kullanarak yerel MySQL örnekleri için:
claude mcp add mcp_server_mysql \
-e MYSQL_SOCKET_PATH="/tmp/mysql.sock" \
-e MYSQL_USER="root" \
-e MYSQL_PASS="your_password" \
-e MYSQL_DB="your_database" \
-e ALLOW_INSERT_OPERATION="false" \
-e ALLOW_UPDATE_OPERATION="false" \
-e ALLOW_DELETE_OPERATION="false" \
-- npx @benborla29/mcp-server-mysql
İhtiyaçlarınıza bağlı olarak hangi scope'u kullanacağınızı göz önünde bulundurun:
# Yerel scope (varsayılan) - yalnızca geçerli projede mevcut
claude mcp add mcp_server_mysql [options...]
# Kullanıcı scope'u - tüm projelerinizde mevcut
claude mcp add mcp_server_mysql -s user [options...]
# Proje scope'u - .mcp.json aracılığıyla takım üyeleriyle paylaşılır
claude mcp add mcp_server_mysql -s project [options...]
Kimlik bilgileri olan veritabanı server'ları için, kimlik bilgilerini özel tutmak amacıyla yerel veya kullanıcı scope'u önerilir.
Server'ı ekledikten sonra, düzgün yapılandırıldığını doğrulayın:
# Yapılandırılan tüm server'ları listele
claude mcp list
# MySQL server'ınız için ayrıntıları al
claude mcp get mcp_server_mysql
# Claude Code içinde server durumunu kontrol et
/mcp
Multi-database modu için MYSQL_DB environment variable'ını atlayın:
claude mcp add mcp_server_mysql_multi \
-e MYSQL_HOST="127.0.0.1" \
-e MYSQL_PORT="3306" \
-e MYSQL_USER="root" \
-e MYSQL_PASS="your_password" \
-e MULTI_DB_WRITE_MODE="false" \
-- npx @benborla29/mcp-server-mysql
Gelişmiş özellikler için ek environment variable'lar ekleyin:
claude mcp add mcp_server_mysql \
-e MYSQL_HOST="127.0.0.1" \
-e MYSQL_PORT="3306" \
-e MYSQL_USER="root" \
-e MYSQL_PASS="your_password" \
-e MYSQL_DB="your_database" \
-e MYSQL_POOL_SIZE="10" \
-e MYSQL_QUERY_TIMEOUT="30000" \
-e MYSQL_CACHE_TTL="60000" \
-e MYSQL_RATE_LIMIT="100" \
-e MYSQL_SSL="true" \
-e ALLOW_INSERT_OPERATION="false" \
-e ALLOW_UPDATE_OPERATION="false" \
-e ALLOW_DELETE_OPERATION="false" \
-e MYSQL_ENABLE_LOGGING="true" \
-- npx @benborla29/mcp-server-mysql
Server Bağlantı Sorunları: Server durumunu kontrol etmek ve gerekirse kimlik doğrulamak için Claude Code'da /mcp komutunu kullanın.
Path Sorunları: Yerel repository kullanıyorsanız, Node.js path'lerinin doğru ayarlandığından emin olun:
# Node.js path'inizi bulun
which node
# PATH environment variable'ı için
echo "$(which node)/../"
# NODE_PATH environment variable'ı için
echo "$(which node)/../../lib/node_modules"
Permission Hataları: MySQL kullanıcınızın etkinleştirdiğiniz işlemler için uygun izinlere sahip olduğundan emin olun.
Server Başlamıyor: Claude Code log'larını kontrol edin veya sorun gidermek için server'ı doğrudan çalıştırın:
# Server'ı doğrudan test et
npx @benborla29/mcp-server-mysql
Manuel kurulum için:
# npm kullanarak
npm install -g @benborla29/mcp-server-mysql
# pnpm kullanarak
pnpm add -g @benborla29/mcp-server-mysql
Manuel kurulumdan sonra, LLM uygulamanızı MCP server'ını kullanacak şekilde yapılandırmanız gerekecektir (aşağıdaki Konfigürasyon bölümüne bakın).
MCP server'ını kaynak kodundan doğrudan klonlamak ve çalıştırmak istiyorsanız, aşağıdaki adımları izleyin:
Repository'yi klonlayın
git clone https://github.com/benborla/mcp-server-mysql.git
cd mcp-server-mysql
Bağımlılıkları kurun
npm install
# veya
pnpm install
Projeyi derleyin
npm run build
# veya
pnpm run build
Claude Desktop'ı yapılandırın
Claude Desktop konfigürasyon dosyanıza (claude_desktop_config.json) aşağıdakileri ekleyin:
{
"mcpServers": {
"mcp_server_mysql": {
"command": "/path/to/node",
"args": [
"/full/path/to/mcp-server-mysql/dist/index.js"
],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASS": "your_password",
"MYSQL_DB": "your_database",
"ALLOW_INSERT_OPERATION": "false",
"ALLOW_UPDATE_OPERATION": "false",
"ALLOW_DELETE_OPERATION": "false",
"PATH": "/path/to/node/bin:/usr/bin:/bin", // <--- Aşağıdakini eklemeyi unutmayın, terminalinizde `echo "$(which node)/../"` komutunu çalıştırarak path'i alın
"NODE_PATH": "/path/to/node/lib/node_modules" // <--- Aşağıdakini eklemeyi unutmayın, terminalinizde `echo "$(which node)/../../lib/node_modules"` komutunu çalıştırarak path'i alın
}
}
}
}
Aşağıdakileri değiştirin:
/path/to/node yerine Node.js binary dosyasının tam yolu (which node ile bulun)/full/path/to/mcp-server-mysql yerine klonladığınız repository'nin tam yoluServer'ı test edin
# Server'ı doğrudan çalıştırarak test et
node dist/index.js
MySQL'e başarıyla bağlanırsa, Claude Desktop'ta kullanmaya hazırsınız.
Uzak modda çalıştırmak için, npx script'ine environment variables sağlamanız gerekecektir.
Tercih ettiğiniz dizinde env dosyası oluşturun
# .env dosyası oluştur
touch .env
Bu repository'deki örnek dosyayı kopyala-yapıştır yapın
MySQL kimlik bilgilerini ortamınıza uygun şekilde ayarlayın
IS_REMOTE_MCP=true olarak ayarlayın
REMOTE_SECRET_KEY değerini güvenli bir string olarak ayarlayın
Gerekirse özel PORT sağlayın. Varsayılan 3000'dir.
Değişkenleri geçerli oturuma yükleyin:
source .env
Server'ı çalıştırın
npx @benborla29/mcp-server-mysql
Agent'ınızı MCP'ye aşağıdaki yapılandırmayla bağlanacak şekilde yapılandırın:
{
"mcpServers": {
"mysql": {
"url": "http://your-host:3000/mcp",
"type": "streamableHttp",
"headers": {
"Authorization": "Bearer <REMOTE_SECRET_KEY>"
}
}
}
}
sql (string): Çalıştırılacak SQL sorgusuALLOW_INSERT_OPERATION=true gerektirir)ALLOW_UPDATE_OPERATION=true gerektirir)ALLOW_DELETE_OPERATION=true gerektirir)Server kapsamlı veritabanı bilgisi sağlar:
Smithery kullanarak kurulum yaptıysanız, yapılandırmanız zaten hazırdır. Bunu aşağıdaki komutla görüntüleyebilir veya değiştirebilirsiniz:
smithery configure @benborla29/mcp-server-mysql
Yeniden yapılandırırken, MySQL bağlantı ayrıntılarının yanı sıra yazma işlemi ayarlarından herhangi birini güncelleyebilirsiniz:
Temel bağlantı ayarları:
Yazma işlemi izinleri:
Güvenlik nedenleriyle, tüm yazma işlemleri varsayılan olarak devre dışıdır. Claude'un veritabanı verilerinizi değiştirmesine ihtiyaç duyarsanız, bu ayarları etkinleştirin.
MCP server'ının davranışı üzerinde daha fazla kontrol için bu gelişmiş yapılandırma seçeneklerini kullanabilirsiniz:
{
"mcpServers": {
"mcp_server_mysql": {
"command": "/path/to/npx/binary/npx",
"args": [
"-y",
"@benborla29/mcp-server-mysql"
],
"env": {
// Temel bağlantı ayarları
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASS": "",
"MYSQL_DB": "db_name",
"PATH": "/path/to/node/bin:/usr/bin:/bin",
// Performance ayarları
"MYSQL_POOL_SIZE": "10",
"MYSQL_QUERY_TIMEOUT": "30000",
"MYSQL_CACHE_TTL": "60000",
// Güvenlik ayarları
"MYSQL_RATE_LIMIT": "100",
"MYSQL_MAX_QUERY_COMPLEXITY": "1000",
"MYSQL_SSL": "true",
// Monitoring ayarları
"ENABLE_LOGGING": "true",
"MYSQL_LOG_LEVEL": "info",
"MYSQL_METRICS_ENABLED": "true",
// Yazma işlemi flag'leri
"ALLOW_INSERT_OPERATION": "false",
"ALLOW_UPDATE_OPERATION": "false",
"ALLOW_DELETE_OPERATION": "false"
}
}
}
}
MYSQL_SOCKET_PATH: Yerel bağlantılar için Unix socket path'i (örn. "/tmp/mysql.sock")MYSQL_HOST: MySQL server host'u (varsayılan: "127.0.0.1") - MYSQL_SOCKET_PATH ayarlanmışsa yoksayılırMYSQL_PORT: MySQL server port'u (varsayılan: "3306") - MYSQL_SOCKET_PATH ayarlanmışsa yoksayılırMYSQL_USER: MySQL kullanıcı adı (varsayılan: "root")MYSQL_PASS: MySQL şifresiMYSQL_DB: Hedef veritabanı adı (multi-DB modu için boş bırakın)Sık kimlik bilgisi rotasyonu veya geçici bağlantılar gerektiren senaryolar için, bireysel environment variable'lar yerine MySQL bağlantı string'i kullanabilirsiniz:
MYSQL_CONNECTION_STRING: MySQL CLI biçiminde bağlantı string'i (örn. mysql --default-auth=mysql_native_password -A -hHOST -PPORT -uUSER -pPASS database_name)MYSQL_CONNECTION_STRING sağlandığında, bireysel bağlantı ayarlarından öncelikli olur. Bu özellikle aşağıdakiler için yararlıdır:
Not: Güvenlik için, bu yalnızca environment variable'lar aracılığıyla ayarlanmalı, version kontrol altındaki yapılandırma dosyalarında saklanmamalıdır. Süresi dolan kimlik bilgileri için Claude Code'un MCP yapılandırmasındaki prompt input türünü kullanmayı düşünün.
MYSQL_POOL_SIZE: Bağlantı pool boyutu (varsayılan: "10")MYSQL_QUERY_TIMEOUT: Query timeout'ı milisaniye cinsinden (varsayılan: "30000")MYSQL_CACHE_TTL: Cache time-to-live milisaniye cinsinden (varsayılan: "60000")MYSQL_QUEUE_LIMIT: Sıralanan maksimum bağlantı isteği sayısı (varsayılan: "100")MYSQL_CONNECT_TIMEOUT: Bağlantı timeout'ı milisaniye cinsinden (varsayılan: "10000")MYSQL_RATE_LIMIT: Dakikada maksimum query sayısı (varsayılan: "100")MYSQL_MAX_QUERY_COMPLEXITY: Maksimum query complexity skoru (varsayılan: "1000")MYSQL_SSL: SSL/TLS şifreleme etkinleştir (varsayılan: "false")MYSQL_SSL_CA: SSL CA certificate dosyasının yolu (PEM biçimi). Yalnızca MYSQL_SSL=true olduğunda kullanılır. Kendi imzalı sertifika'lar veya özel CA'ları olan MySQL örneklerine bağlanmak için gereklidir.MYSQL_SSL_CERT: mTLS için client certificate dosyasının yolu (PEM biçimi). Yalnızca MYSQL_SSL=true olduğunda kullanılır. Hem server hem de client'ın sertifika sunduğu karşılıklı TLS (mTLS) kimlik doğrulamayı etkinleştirir. Bazı veritabanı yapılandırmaları tarafından gerekli olabilir.MYSQL_SSL_KEY: mTLS için client private key dosyasının yolu (PEM biçimi). Yalnızca MYSQL_SSL=true olduğunda kullanılır. MYSQL_SSL_CERT tarafından belirtilen sertifikaya karşılık gelmelidir.ALLOW_INSERT_OPERATION: INSERT işlemlerini etkinleştir (varsayılan: "false")ALLOW_UPDATE_OPERATION: UPDATE işlemlerini etkinleştir (varsayılan: "false")ALLOW_DELETE_OPERATION: DELETE işlemlerini etkinleştir (varsayılan: "false")ALLOW_DDL_OPERATION: DDL işlemlerini etkinleştir (varsayılan: "false")MYSQL_DISABLE_READ_ONLY_TRANSACTIONS: [YENİ] Salt-okunur transaction uygulanmasını devre dışı bırak (varsayılan: "false") ⚠️ Güvenlik Uyarısı: Yalnızca tam yazma yeteneğine ihtiyacınız varsa ve LLM'yi veritabanınıza güveniyorsanız etkinleştirinSCHEMA_INSERT_PERMISSIONS: Schema'ya özel INSERT izinleriSCHEMA_UPDATE_PERMISSIONS: Schema'ya özel UPDATE izinleriSCHEMA_DELETE_PERMISSIONS: Schema'ya özel DELETE izinleriSCHEMA_DDL_PERMISSIONS: Schema'ya özel DDL izinleriMULTI_DB_WRITE_MODE: Multi-DB modunda yazma işlemlerini etkinleştir (varsayılan: "false")MYSQL_TIMEZONE: Tarih/saat değerleri için timezone ayarlayın. +08:00 (UTC+8), -05:00 (UTC-5), Z (UTC) veya local (sistem timezone'u) gibi biçimleri kabul eder. Farklı server konumlarında tutarlı tarih/saat işleme için kullanışlıdır.MYSQL_DATE_STRINGS: "true" olarak ayarlandığında, tarih/datetime değerlerini JavaScript Date nesneleri yerine string olarak döndürür. Bu, timezone dönüşümüVeritabanları için kolay, hızlı ve güvenli araçlar sağlayan açık kaynak MCP sunucusu.
Baserow veritabanı entegrasyonu ile tablo arama, listeleme ve satır oluşturma, okuma, güncelleme ve silme işlemlerini gerçekleştirebilirsiniz.
Postgres geliştirme ve operasyonları için kapsamlı MCP sunucusu; performans analizi, ayarlama ve sağlık kontrolleri için araçlar içerir.
Supabase'in resmi MCP sunucusu, AI asistanlarını doğrudan Supabase projenize bağlayarak tablo yönetimi, config getirme ve veri sorgulama gibi işlemleri gerçekleştirmelerine olanak tanır.
A Qdrant MCP server
MySQL veritabanı entegrasyonu, yapılandırılabilir erişim kontrolleri, schema incelemesi ve kapsamlı güvenlik yönergeleri ile gelir.