jhr-mssql-mcp-server

basakpazarlama/jhr-mssql-mcp-server

3.2

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.

Tools
2
Resources
0
Prompts
0

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

  1. src/queries.ts dosyasını açın
  2. predefinedQueries array'ine yeni sorgu ekleyin
  3. Rebuild edin: npm run build

Sorun Giderme

Database bağlantı hatası

  • .env dosyası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