MCP Database Manager
Enables AI assistants to interact with and manage multiple database types (PostgreSQL, MySQL, SQLite, SQL Server, MongoDB, Redis) through natural language, supporting query analysis, schema management, data analysis, backup/restore, and security analysis.
README
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!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.