Token导航 LogoToken导航TokenDH.com
Sqlite Database MCP Server logo
数据服务未说明官方级别未说明来源级核验

Sqlite Database MCP Server

MCP Server

Database MCP Server 是一个基于Model Context Protocol (MCP)的Node.js应用,提供通过自然语言进行数据库查询的功能,支持SQLite数据库和LLM集成。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
数据分析自然语言处理TypeScriptSQLite

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

canergulsoyy

提供方

canergulsoyy

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🗄️ Database MCP Server

](https://nodejs.org/) ![TypeScript](https://www.typescriptlang.org/) ![License](LICENSE) ![MCP](https://modelcontextprotocol.io/)

Database MCP Server, Model Context Protocol (MCP) kullanarak veritabanı sorgulama yetenekleri sunan modern bir Node.js uygulamasıdır. LLM entegrasyonu ile doğal dil kullanarak veritabanı sorguları yapabilirsiniz.

✨ Özellikler

  • 🚀 MCP 1.3.0 protokol desteği
  • 🗄️ SQLite veritabanı entegrasyonu
  • 🤖 LLM entegrasyonu (OpenAI/OpenRouter)
  • 🔍 Gelişmiş sorgu filtreleme ve arama
  • 📊 Gerçek zamanlı istatistikler ve raporlama
  • 🛡️ Güvenli SQL sorguları (sadece SELECT)
  • 📱 Interactive CLI arayüzü
  • 🧪 Otomatik test senaryoları
  • 🔧 TypeScript ile tam tip güvenliği

🏗️ Mimari

src/
├── index.ts              # MCP Server ana dosyası
├── database/
│   ├── setup.ts         # Veritabanı yönetimi
│   ├── query-service.ts # Sorgu servisleri
│   └── seed.ts          # Örnek veri ekleme
└── client/
    ├── index.ts         # CLI arayüzü
    └── weather-client.ts # LLM client

🚀 Hızlı Başlangıç

Gereksinimler

  • Node.js >= 18.18.0
  • npm veya yarn
  • OpenRouter API Key (ücretsiz)

Kurulum

  1. Repository'yi klonlayın
git clone https://github.com/canergulsoyy/database-mcp-server.git
cd database-mcp-server
  1. Bağımlılıkları yükleyin
npm install
  1. Environment dosyasını oluşturun
cp env.example .env
  1. OpenRouter API key'inizi ekleyin
# .env dosyasını düzenleyin
OPENROUTER_API_KEY=your_api_key_here
  1. Projeyi build edin
npm run build
  1. Veritabanını kurun
npm run db:setup
npm run db:seed

Çalıştırma

Development Mode

npm run dev

Production Mode

npm start

Interactive CLI

npm run client:dev

Test Client

npm run test:client

📚 Kullanım

MCP Tools

1. Health Check

"health_check": {
    title: "Database Health Check",
    description: "Veritabanı ve sunucu sağlık kontrolü"
}

2. User Management

"get_users": {
    title: "Kullanıcıları Getir",
    description: "Kullanıcı bilgilerini filtreleme ile getirir",
    inputSchema: {
        name: "Kullanıcı adında arama",
        city: "Şehir bazında filtreleme",
        minAge/maxAge: "Yaş aralığı",
        email: "Email arama"
    }
}

3. Product Management

"get_products": {
    title: "Ürünleri Getir",
    description: "Ürün bilgilerini kategorilere göre getirir",
    inputSchema: {
        name: "Ürün adı arama",
        category: "Kategori filtreleme",
        minPrice/maxPrice: "Fiyat aralığı",
        inStock: "Stok durumu"
    }
}

4. Order Management

"get_orders": {
    title: "Siparişleri Getir",
    description: "Sipariş bilgilerini detaylı olarak getirir",
    inputSchema: {
        userId: "Kullanıcı ID'si",
        productId: "Ürün ID'si",
        status: "Sipariş durumu",
        minTotal/maxTotal: "Toplam tutar aralığı"
    }
}

5. Database Statistics

"get_database_stats": {
    title: "Veritabanı İstatistikleri",
    description: "Genel veritabanı istatistikleri ve analizler"
}

6. Custom SQL Queries

"execute_custom_query": {
    title: "Özel SQL Sorgusu",
    description: "Güvenli SELECT sorguları çalıştırır",
    inputSchema: {
        sql: "SELECT sorgusu",
        params: "Sorgu parametreleri"
    }
}

Örnek Kullanımlar

CLI ile Sorgulama

npm run client:dev

# Örnek sorular:
🤔 Sorunuz: İstanbul'da yaşayan kullanıcıları göster
🤔 Sorunuz: Elektronik kategorisindeki ürünleri listele
🤔 Sorunuz: Tamamlanan siparişleri göster
🤔 Sorunuz: Veritabanı istatistiklerini göster

Programmatic Usage

import { DatabaseLLMClient } from './dist/client/weather-client.js';

const client = new DatabaseLLMClient('./dist/index.js');
await client.initialize();

const response = await client.processQuestion("En pahalı 5 ürünü getir");
console.log(response);

🗄️ Veritabanı Şeması

Users Tablosu

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE NOT NULL,
    age INTEGER,
    city TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

Products Tablosu

CREATE TABLE products (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    category TEXT NOT NULL,
    price REAL NOT NULL,
    stock INTEGER DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

Orders Tablosu

CREATE TABLE orders (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    user_id INTEGER NOT NULL,
    product_id INTEGER NOT NULL,
    quantity INTEGER NOT NULL,
    total_price REAL NOT NULL,
    status TEXT DEFAULT 'pending',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users (id),
    FOREIGN KEY (product_id) REFERENCES products (id)
);

🔧 API Reference

DatabaseQueryService

getUsers(query: UserQuery): Promise

interface UserQuery {
    name?: string;      // Kullanıcı adında arama
    city?: string;      // Şehir bazında filtreleme
    minAge?: number;    // Minimum yaş
    maxAge?: number;    // Maksimum yaş
    email?: string;     // Email arama
}

getProducts(query: ProductQuery): Promise

interface ProductQuery {
    name?: string;      // Ürün adı arama
    category?: string;  // Kategori filtreleme
    minPrice?: number;  // Minimum fiyat
    maxPrice?: number;  // Maksimum fiyat
    inStock?: boolean;  // Stok durumu
}

getOrders(query: OrderQuery): Promise

interface OrderQuery {
    userId?: number;    // Kullanıcı ID'si
    productId?: number; // Ürün ID'si
    status?: string;    // Sipariş durumu
    minTotal?: number;  // Minimum toplam tutar
    maxTotal?: number;  // Maksimum toplam tutar
}

🧪 Test

Otomatik Test

npm run test:client

Manuel Test

# Server'ı başlat
npm run dev

# Yeni terminal'de client'ı başlat
npm run client:dev

📦 Scripts

ScriptAçıklama
buildTypeScript compilation
devDevelopment mode
startProduction mode
db:setupVeritabanı kurulumu
db:seedÖrnek veri ekleme
test:clientOtomatik test
client:devInteractive CLI
typecheckType checking

🔐 Güvenlik

  • SQL Injection koruması - Parametrized queries
  • Sadece SELECT sorguları - Güvenli sorgu çalıştırma
  • Input validation - Zod schema validation
  • Foreign key constraints - Veri bütünlüğü
  • Unique constraints - Duplicate data önleme

🚀 Deployment

Docker ile

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist/ ./dist/
EXPOSE 3000
CMD ["npm", "start"]

Environment Variables

# Gerekli
OPENROUTER_API_KEY=your_api_key_here

# Opsiyonel
MCP_SERVER_PATH=./dist/index.js
DB_PATH=./data/app.db
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1

🤝 Katkıda Bulunma

  1. Fork yapın
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Commit yapın (git commit -m 'Add amazing feature')
  4. Push yapın (git push origin feature/amazing-feature)
  5. Pull Request oluşturun

Development Setup

# Repository'yi klonlayın
git clone https://github.com/canergulsoyy/database-mcp-server.git

# Development branch'e geçin
git checkout develop

# Bağımlılıkları yükleyin
npm install

# Pre-commit hooks kurun
npm run prepare

📄 License

Bu proje MIT License altında lisanslanmıştır.

🙏 Teşekkürler

📞 İletişim

  • Author: Caner Gülsoy
  • GitHub: @canergulsoyy
  • Email: canergulsoyy@gmail.com
  • Project:

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

目录标签

目录标签

数据分析自然语言处理TypeScriptSQLite数据库查询本地部署LLM集成Node.js应用

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP