Skip to content

Comprehensive MCP (Model Context Protocol) server for database management and analysis. Supports multiple database types including PostgreSQL, MySQL, SQLite, SQL Server, MongoDB, and Redis.

License

Notifications You must be signed in to change notification settings

code-alchemist01/database-manager-mcp-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCP Database Manager

TypeScript Node.js MCP Verified on MseeP

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:
git clone https://github.com/code-alchemist01/database-manager-mcp-Server.git
cd database-manager-mcp-Server
  1. Bağımlılıkları yükleyin:
npm install
  1. Projeyi derleyin:
npm run build
  1. 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ğ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

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

  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 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

📞 İletişim

Sorularınız veya önerileriniz için issue açabilirsiniz.


⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!

About

Comprehensive MCP (Model Context Protocol) server for database management and analysis. Supports multiple database types including PostgreSQL, MySQL, SQLite, SQL Server, MongoDB, and Redis.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published