Comprehensive MCP (Model Context Protocol) server for database management and analysis. Supports multiple database types including PostgreSQL, MySQL, SQLite, SQL Server, MongoDB, and Redis.
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.
- 🔌 Ç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
- Node.js 18 veya üzeri
- npm veya yarn
- TypeScript (dev dependency)
- 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 startBu 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.
Windows:
%APPDATA%\Cursor\User\globalStorage\mcp.json
macOS/Linux:
~/.config/Cursor/User/globalStorage/mcp.json
{
"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.
Config dosyasını kaydettikten sonra Cursor'u tamamen kapatıp yeniden açın.
Cursor'da Settings > Tools & MCP bölümünde "database-manager" listede görünmeli.
Windows:
%APPDATA%\Claude\claude_desktop_config.json
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"database-manager": {
"command": "node",
"args": [
"/path/to/database-manager-mcp-Server/dist/index.js"
]
}
}
}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)
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"
}
}
}
}MCP server'ı doğrudan Node.js uygulamanızda da kullanabilirsiniz:
import { DatabaseMCPServer } from './dist/server.js';
const server = new DatabaseMCPServer();
await server.run();FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
CMD ["node", "dist/index.js"]MCP server'ı standalone bir process olarak çalıştırabilirsiniz:
# Development
npm run dev
# Production
npm run build
npm startMCP server kurulduktan sonra, client'ınızın chat arayüzünde doğal dil komutları kullanarak veritabanı işlemlerini gerçekleştirebilirsiniz.
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
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');MCP server'ı doğrudan çalıştırarak stdio üzerinden MCP protokolü ile iletişim kurabilirsiniz:
node dist/index.jsBu komut server'ı stdio transport üzerinden başlatır ve MCP client'ları ile iletişime hazır hale getirir.
connect_database- Veritabanına bağlanlist_connections- Aktif bağlantıları listeledisconnect_database- Bağlantıyı kapattest_connection- Bağlantıyı test et
analyze_query- SQL sorgusunu analiz etexplain_query- Execution plan gösteroptimize_query- Sorgu optimizasyon önerileridetect_slow_queries- Yavaş sorguları tespit etsuggest_indexes- Index önerileri
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
get_table_stats- Tablo istatistiklerianalyze_data_quality- Veri kalitesi analizifind_duplicates- Duplicate kayıtları bulsample_data- Veri örneklemegenerate_report- Custom rapor oluştur
create_backup- Backup oluşturlist_backups- Backup'ları listelerestore_backup- Backup'tan geri yükleverify_backup- Backup doğrula
analyze_permissions- İzin analizidetect_vulnerabilities- Güvenlik açığı tespitifind_sensitive_data- Hassas veri tespitiaudit_logs- Audit log analizi
| 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 |
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
npm run devnpm run buildnpm testMCP 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
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
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
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
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
- 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
- JSON - Structured data responses
- Markdown - Raporlar ve dokümantasyon
- CSV - Veri export
- SQL - Migration scripts
- Mermaid - ER diyagramları
- 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
MIT License - Detaylar için LICENSE dosyasına bakın.
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
- Model Context Protocol - MCP standardı için
- Cursor - MCP desteği için
- Claude - MCP desteği için
Sorularınız veya önerileriniz için issue açabilirsiniz.
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!