https://github.com/code-alchemist01/database-manager-mcp-server
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.
https://github.com/code-alchemist01/database-manager-mcp-server
database-management mcp mcp-server model-context-protocol
Last synced: 4 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/code-alchemist01/database-manager-mcp-server
- Owner: code-alchemist01
- License: mit
- Created: 2025-11-14T18:50:45.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-11-14T19:06:42.000Z (4 months ago)
- Last Synced: 2025-11-14T21:07:54.603Z (4 months ago)
- Topics: database-management, mcp, mcp-server, model-context-protocol
- Language: TypeScript
- Homepage:
- Size: 199 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MCP Database Manager
[](https://www.typescriptlang.org/)
[](https://nodejs.org/)
[](https://modelcontextprotocol.io/)
[](https://mseep.ai/app/5445a3f9-87c7-4c55-b67f-fa071504bf86)
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
1. **Repository'yi klonlayın:**
```bash
git clone https://github.com/code-alchemist01/database-manager-mcp-Server.git
cd database-manager-mcp-Server
```
2. **Bağımlılıkları yükleyin:**
```bash
npm install
```
3. **Projeyi derleyin:**
```bash
npm run build
```
4. **Test edin:**
```bash
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
```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.
#### 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
```json
{
"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:**
```json
{
"mcpServers": {
"database-manager": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {}
}
}
}
```
**Environment Variables ile:**
```json
{
"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:
```javascript
import { DatabaseMCPServer } from './dist/server.js';
const server = new DatabaseMCPServer();
await server.run();
```
### Docker ile Kullanım
```dockerfile
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:
```bash
# 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:
```typescript
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:
```bash
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ğlan
- `list_connections` - Aktif bağlantıları listele
- `disconnect_database` - Bağlantıyı kapat
- `test_connection` - Bağlantıyı test et
### Query Analysis (5)
- `analyze_query` - SQL sorgusunu analiz et
- `explain_query` - Execution plan göster
- `optimize_query` - Sorgu optimizasyon önerileri
- `detect_slow_queries` - Yavaş sorguları tespit et
- `suggest_indexes` - Index önerileri
### Schema Management (5)
- `get_schema` - Şema bilgilerini getir
- `visualize_schema` - ER diyagramı oluştur (Mermaid)
- `analyze_foreign_keys` - Foreign key analizi
- `generate_migration` - Migration script oluştur
- `document_schema` - Şema dokümantasyonu
### Data Analysis (5)
- `get_table_stats` - Tablo istatistikleri
- `analyze_data_quality` - Veri kalitesi analizi
- `find_duplicates` - Duplicate kayıtları bul
- `sample_data` - Veri örnekleme
- `generate_report` - Custom rapor oluştur
### Backup & Restore (4)
- `create_backup` - Backup oluştur
- `list_backups` - Backup'ları listele
- `restore_backup` - Backup'tan geri yükle
- `verify_backup` - Backup doğrula
### Security (4)
- `analyze_permissions` - İzin analizi
- `detect_vulnerabilities` - Güvenlik açığı tespiti
- `find_sensitive_data` - Hassas veri tespiti
- `audit_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
```bash
npm run dev
```
### Build
```bash
npm run build
```
### Test
```bash
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
1. Fork edin
2. Feature branch oluşturun (`git checkout -b feature/amazing-feature`)
3. Commit edin (`git commit -m 'Add amazing feature'`)
4. Push edin (`git push origin feature/amazing-feature`)
5. Pull Request açın
## 📄 Lisans
MIT License - Detaylar için [LICENSE](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](https://modelcontextprotocol.io/) - MCP standardı için
- [Cursor](https://cursor.sh/) - MCP desteği için
- [Claude](https://claude.ai/) - 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!**