MCP Database Manager, AI asistanlarının (Cursor, Claude, vb.) veritabanlarıyla etkileşime girmesi, sorguları analiz etmesi ve veritabanı yönetim görevlerini gerçekleştirmesi için kapsamlı bir MCP server'dır.
MCP Database Manager
Comprehensive MCP (Model Context Protocol) server for database management and analysis. Supports multiple database types including PostgreSQL, MySQL, SQLite, SQL Server, MongoDB, and Redis.
🎯 Ne İşe Yarar?
MCP Database Manager, AI asistanlarının (Cursor, Claude, vb.) veritabanlarıyla etkileşime girmesi, sorguları analiz etmesi ve veritabanı yönetim görevlerini gerçekleştirmesi için kapsamlı bir MCP server'dır.
Temel Özellikler
- 🔌 Çoklu Veritabanı Desteği: PostgreSQL, MySQL, SQLite, SQL Server, MongoDB, Redis
- 🔍 SQL Sorgu Analizi: Performance analizi, execution plan, index önerileri
- 📊 Şema Yönetimi: ER diyagramları, migration generation, dokümantasyon
- 📈 Veri Analizi: İstatistikler, kalite kontrolü, duplicate detection
- 💾 Backup & Restore: Otomatik backup ve restore işlemleri
- 🔒 Güvenlik: İzin analizi, güvenlik açığı tespiti, sensitive data detection
🚀 Kurulum
Gereksinimler
- Node.js 18 veya üzeri
- npm veya yarn
- TypeScript (dev dependency)
Adımlar
- Repository'yi klonlayın:
git clone https://github.com/code-alchemist01/database-manager-mcp-Server.git
cd database-manager-mcp-Server
- Bağımlılıkları yükleyin:
npm install
- Projeyi derleyin:
npm run build
- Test edin:
npm start
📦 MCP Client'lara Kurulum
Bu MCP server, MCP (Model Context Protocol) standardını destekleyen herhangi bir client ile kullanılabilir. Aşağıda popüler client'lar için kurulum rehberleri bulunmaktadır.
Cursor IDE
1. MCP Config Dosyasını Oluştur/Düzenle
Windows:
%APPDATA%\Cursor\User\globalStorage\mcp.json
macOS/Linux:
~/.config/Cursor/User/globalStorage/mcp.json
2. Config İçeriği
{
"mcpServers": {
"database-manager": {
"command": "node",
"args": [
"C:\\Users\\YourUsername\\path\\to\\database-manager-mcp-Server\\dist\\index.js"
]
}
}
}
Not: args içindeki path'i kendi proje yolunuza göre güncelleyin.
3. Cursor'u Yeniden Başlatın
Config dosyasını kaydettikten sonra Cursor'u tamamen kapatıp yeniden açın.
4. Doğrulama
Cursor'da Settings > Tools & MCP bölümünde "database-manager" listede görünmeli.
Claude Desktop
1. MCP Config Dosyasını Oluştur/Düzenle
Windows:
%APPDATA%\Claude\claude_desktop_config.json
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
2. Config İçeriği
{
"mcpServers": {
"database-manager": {
"command": "node",
"args": [
"/path/to/database-manager-mcp-Server/dist/index.js"
]
}
}
}
3. Claude Desktop'u Yeniden Başlatın
Diğer MCP Client'lar
Herhangi bir MCP client kullanıyorsanız, client'ın MCP server yapılandırma formatına göre aşağıdaki bilgileri kullanın:
- Command:
node - Args:
[path/to/dist/index.js] - Transport:
stdio(standard input/output)
Örnek Config Formatları
Genel MCP Config:
{
"mcpServers": {
"database-manager": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {}
}
}
}
Environment Variables ile:
{
"mcpServers": {
"database-manager": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}
Programatik Kullanım
MCP server'ı doğrudan Node.js uygulamanızda da kullanabilirsiniz:
import { DatabaseMCPServer } from './dist/server.js';
const server = new DatabaseMCPServer();
await server.run();
Docker ile Kullanım
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
CMD ["node", "dist/index.js"]
Standalone Server Olarak
MCP server'ı standalone bir process olarak çalıştırabilirsiniz:
# Development
npm run dev
# Production
npm run build
npm start
🛠️ Kullanım
MCP Client'larda Kullanım
MCP server kurulduktan sonra, client'ınızın chat arayüzünde doğal dil komutları kullanarak veritabanı işlemlerini gerçekleştirebilirsiniz.
Örnek Komutlar
Veritabanı Bağlantısı:
SQLite veritabanına bağlan: sqlite://test.db
PostgreSQL veritabanına bağlan: postgresql://user:password@localhost:5432/dbname
MySQL veritabanına bağlan: mysql://user:password@localhost:3306/dbname
Bağlantı Yönetimi:
Bağlı veritabanların listesini göster
test_connection_id bağlantısını kapat
Şema İşlemleri:
Şemayı göster
users tablosunun şemasını detaylı göster
Veritabanı şemasını ER diagram olarak görselleştir
Veri Analizi:
users tablosunun istatistiklerini getir
users tablosundan 10 satır örnekle
users tablosunda duplicate kayıtları bul
users tablosunun veri kalitesi analizini yap
Query Analizi:
SELECT * FROM users WHERE age > 25 sorgusunu analiz et
SELECT * FROM orders JOIN users ON orders.user_id = users.id sorgusunun execution plan'ını göster
SELECT * FROM products WHERE name LIKE '%laptop%' sorgusunu optimize et
Güvenlik:
Veritabanındaki güvenlik açıklarını tespit et
users tablosunda hassas veri (PII) olup olmadığını kontrol et
API Kullanımı (Programatik)
MCP server'ı programatik olarak da kullanabilirsiniz:
import { connectionManager } from './dist/utils/connection-manager.js';
import { QueryAnalyzer } from './dist/analyzers/query-analyzer.js';
// Veritabanına bağlan
const connectionId = await connectionManager.createConnection({
type: 'postgresql',
host: 'localhost',
port: 5432,
database: 'mydb',
username: 'user',
password: 'pass'
});
// Adapter al
const adapter = connectionManager.getConnection(connectionId);
// Query analiz et
const analyzer = new QueryAnalyzer(adapter);
const result = await analyzer.analyzeQuery('SELECT * FROM users');
CLI Kullanımı
MCP server'ı doğrudan çalıştırarak stdio üzerinden MCP protokolü ile iletişim kurabilirsiniz:
node dist/index.js
Bu komut server'ı stdio transport üzerinden başlatır ve MCP client'ları ile iletişime hazır hale getirir.
📋 MCP Tools (27 Araç)
Connection Management (4)
connect_database- Veritabanına bağlanlist_connections- Aktif bağlantıları listeledisconnect_database- Bağlantıyı kapattest_connection- Bağlantıyı test et
Query Analysis (5)
analyze_query- SQL sorgusunu analiz etexplain_query- Execution plan gösteroptimize_query- Sorgu optimizasyon önerileridetect_slow_queries- Yavaş sorguları tespit etsuggest_indexes- Index önerileri
Schema Management (5)
get_schema- Şema bilgilerini getirvisualize_schema- ER diyagramı oluştur (Mermaid)analyze_foreign_keys- Foreign key analizigenerate_migration- Migration script oluşturdocument_schema- Şema dokümantasyonu
Data Analysis (5)
get_table_stats- Tablo istatistiklerianalyze_data_quality- Veri kalitesi analizifind_duplicates- Duplicate kayıtları bulsample_data- Veri örneklemegenerate_report- Custom rapor oluştur
Backup & Restore (4)
create_backup- Backup oluşturlist_backups- Backup'ları listelerestore_backup- Backup'tan geri yükleverify_backup- Backup doğrula
Security (4)
analyze_permissions- İzin analizidetect_vulnerabilities- Güvenlik açığı tespitifind_sensitive_data- Hassas veri tespitiaudit_logs- Audit log analizi
🗄️ Desteklenen Veritabanları
| Veritabanı | Durum | Özellikler | |-----------|-------|------------| | PostgreSQL | ✅ | Connection, Query, Schema, Transactions | | MySQL | ✅ | Connection, Query, Schema, Transactions | | SQLite | ✅ | Connection, Query, Schema, Transactions | | SQL Server | ✅ | Connection, Query, Schema, Transactions | | MongoDB | ✅ | Connection, Query, Schema, Collections | | Redis | ✅ | Connection, Commands, Keys |
📁 Proje Yapısı
database-manager-mcp-Server/
├── src/
│ ├── index.ts # MCP server ana giriş noktası
│ ├── server.ts # MCP server implementasyonu
│ ├── tools/ # MCP tools
│ │ ├── connection.ts # Veritabanı bağlantı yönetimi
│ │ ├── query-analysis.ts # Sorgu analizi
│ │ ├── schema-management.ts # Şema yönetimi
│ │ ├── data-analysis.ts # Veri analizi
│ │ ├── backup-restore.ts # Backup/restore
│ │ └── security.ts # Güvenlik
│ ├── database/ # Veritabanı adaptörleri
│ │ ├── base-adapter.ts # Temel adapter interface
│ │ ├── postgresql.ts # PostgreSQL adapter
│ │ ├── mysql.ts # MySQL adapter
│ │ ├── sqlite.ts # SQLite adapter
│ │ ├── mssql.ts # SQL Server adapter
│ │ ├── mongodb.ts # MongoDB adapter
│ │ └── redis.ts # Redis adapter
│ ├── analyzers/ # Analiz motorları
│ │ ├── query-analyzer.ts # Sorgu analizi
│ │ ├── schema-analyzer.ts # Şema analizi
│ │ ├── data-analyzer.ts # Veri analizi
│ │ └── security-analyzer.ts # Güvenlik analizi
│ ├── utils/ # Yardımcı fonksiyonlar
│ │ ├── connection-manager.ts
│ │ ├── query-builder.ts
│ │ └── formatters.ts
│ └── types/ # TypeScript tip tanımları
│ └── index.ts
├── dist/ # Derlenmiş JavaScript dosyaları
├── package.json
├── tsconfig.json
└── README.md
🔧 Geliştirme
Development Modu
npm run dev
Build
npm run build
Test
npm test
📝 Örnek Kullanım Senaryoları
Senaryo 1: SQLite Veritabanı Analizi
MCP Client Chat'te:
SQLite veritabanına bağlan: sqlite://mydb.db
Şemayı göster
users tablosunun istatistiklerini getir
users tablosunda duplicate kayıtları bul
Beklenen Sonuç:
- Veritabanı bağlantısı kurulur
- Tüm tablolar ve ilişkiler gösterilir
- İstatistiksel analiz yapılır
- Duplicate kayıtlar tespit edilir
Senaryo 2: PostgreSQL Query Optimizasyonu
MCP Client Chat'te:
PostgreSQL veritabanına bağlan: postgresql://user:pass@localhost:5432/dbname
SELECT * FROM orders WHERE customer_id = 123 sorgusunu analiz et
Bu sorgu için index önerileri yap
Beklenen Sonuç:
- Query performance analizi
- Execution plan görselleştirmesi
- Index önerileri
- Optimizasyon tavsiyeleri
Senaryo 3: Schema Migration
MCP Client Chat'te:
İki şema arasındaki farkları bul ve migration script oluştur
Schema'yı ER diagram olarak görselleştir
Beklenen Sonuç:
- Schema karşılaştırması
- Migration script oluşturma
- Mermaid formatında ER diagram
Senaryo 4: Veri Kalitesi Kontrolü
MCP Client Chat'te:
products tablosunun veri kalitesi analizini yap
products tablosunda hassas veri olup olmadığını kontrol et
Beklenen Sonuç:
- Veri kalitesi skoru
- Eksik/duplicate/inconsistent veri tespiti
- PII ve sensitive data tespiti
- Öneriler ve raporlar
Senaryo 5: Backup ve Restore
MCP Client Chat'te:
Veritabanının backup'ını oluştur
Backup'ları listele
Backup'ın doğruluğunu kontrol et
Beklenen Sonuç:
- Backup oluşturma
- Backup listesi
- Backup doğrulama
🔐 Güvenlik
- Connection string'ler güvenli saklanır
- SQL injection koruması (parameterized queries)
- Query timeout yönetimi
- Read-only mode desteği
- Input validation ve sanitization
📊 Çıktı Formatları
- JSON - Structured data responses
- Markdown - Raporlar ve dokümantasyon
- CSV - Veri export
- SQL - Migration scripts
- Mermaid - ER diyagramları
🤝 Katkıda Bulunma
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Commit edin (
git commit -m 'Add amazing feature') - Push edin (
git push origin feature/amazing-feature) - Pull Request açın
📄 Lisans
MIT License - Detaylar için LICENSE dosyasına bakın.
🔗 MCP Client Desteği
Bu MCP server aşağıdaki client'lar ile uyumludur:
- ✅ Cursor IDE - Tam destek
- ✅ Claude Desktop - Tam destek
- ✅ Anthropic API - MCP protokolü üzerinden
- ✅ Diğer MCP Client'lar - Standart MCP protokolü destekleyen tüm client'lar
🙏 Teşekkürler
- Model Context Protocol - MCP standardı için
- Cursor - MCP desteği için
- Claude - MCP desteği için
📞 İletişim
Sorularınız veya önerileriniz için issue açabilirsiniz.
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!