An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# MCP Database Manager

[![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue.svg)](https://www.typescriptlang.org/)
[![Node.js](https://img.shields.io/badge/Node.js-18+-green.svg)](https://nodejs.org/)
[![MCP](https://img.shields.io/badge/MCP-1.0-orange.svg)](https://modelcontextprotocol.io/)
[![Verified on MseeP](https://mseep.ai/badge.svg)](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!**