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!
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。