basakpazarlama/jhr-mssql-mcp-server
If you are the rightful owner of jhr-mssql-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
JHR MSSQL MCP Server is a Model Context Protocol server that connects to an MSSQL database and supports HTTP/SSE.
JHR MSSQL MCP Server
JHR uygulaması için MSSQL veritabanına bağlanan, HTTP/SSE destekli Model Context Protocol (MCP) server'ı.
Özellikler
- ✅ Read-only erişim: Sadece SELECT sorguları
- ✅ Parametreli sorgular: SQL injection koruması ile güvenli
- ✅ HTTP/SSE desteği: HTTP üzerinden Server-Sent Events
- ✅ Stdio desteği: Standart MCP transport
- ✅ Connection pooling: Verimli veritabanı bağlantı yönetimi
- ✅ TypeScript: Tam tip güvenliği
Kurulum
1. Bağımlılıkları yükleyin
npm install
2. Environment variables ayarlayın
.env dosyası oluşturun:
cp .env.example .env
.env dosyasını düzenleyin:
# MSSQL Database Configuration
DB_SERVER=localhost
DB_DATABASE=YourDatabaseName
DB_USER=sa
DB_PASSWORD=YourPassword
DB_PORT=1433
DB_ENCRYPT=false
# MCP Server Configuration
MCP_PORT=3000
3. Build edin
npm run build
Kullanım
HTTP/SSE Modu
HTTP üzerinden SSE transport kullanır:
npm run start:http
# veya development için:
npm run dev:http
Server başladığında: http://localhost:3000/ adresinde çalışır.
Stdio Modu
Standart MCP transport kullanır (Claude Desktop, vb.):
npm start
# veya development için:
npm run dev
MCP Tools
1. list_queries
Kullanılabilir tüm sorguları listeler.
Örnek kullanım:
{
"queryName": null
}
Response:
{
"queries": [
{
"name": "getUser",
"description": "Kullanıcıyı isme göre getirir",
"parameters": [
{
"name": "name",
"type": "string",
"required": true,
"description": "Kullanıcı adı"
}
]
}
]
}
2. execute_query
Önceden tanımlı bir sorguyu parametrelerle çalıştırır.
Örnek kullanım:
{
"queryName": "getUser",
"parameters": {
"name": "ozan"
}
}
Response:
{
"success": true,
"data": [
{
"id": 1,
"name": "ozan",
"email": "ozan@example.com"
}
],
"rowCount": 1
}
Önceden Tanımlı Sorgular
src/queries.ts dosyasında yeni sorgular ekleyebilirsiniz:
{
name: 'myQuery',
description: 'Açıklama',
sql: 'SELECT * FROM table WHERE column = @param',
parameters: [
{ name: 'param', type: 'string', required: true }
]
}
Mevcut Sorgular
- getUser: Kullanıcıyı isme göre getirir
- getUsers: Tüm kullanıcıları getirir (sayfalama)
- getUserById: Kullanıcıyı ID'ye göre getirir
- searchUsers: Kullanıcılarda isim araması yapar
Güvenlik
- ✅ Read-only: Sadece SELECT sorguları çalıştırılabilir
- ✅ Parameterized queries: SQL injection'a karşı korumalı
- ✅ Input validation: Parametreler validate edilir
- ✅ Error handling: Güvenli hata mesajları
Geliştirme
Proje yapısı
/src
/index.ts # Stdio MCP server
/server-http.ts # HTTP/SSE MCP server
/database.ts # MSSQL bağlantı yönetimi
/queries.ts # Önceden tanımlı sorgular
/types.ts # TypeScript types
Yeni sorgu ekleme
src/queries.tsdosyasını açınpredefinedQueriesarray'ine yeni sorgu ekleyin- Rebuild edin:
npm run build
Sorun Giderme
Database bağlantı hatası
.envdosyasındaki bilgileri kontrol edin- MSSQL server'ın çalıştığından emin olun
- Firewall ayarlarını kontrol edin
Port zaten kullanılıyor
MCP_PORT değerini değiştirin veya kullanan process'i durdurun.
Lisans
MIT