Bagikan melalui


Apa itu SQL MCP Server?

Penting

Server Protokol Konteks Model SQL (MCP) sedang dalam pratinjau, dan dokumentasi ini serta implementasi mesin dapat berubah. Saat Data API Builder versi 1.7 dalam pratinjau, Anda harus menggunakan versi prarilis secara eksplisit (misalnya, 1.7.83-rc) karena fitur MCP belum disertakan dalam tag :latest.

SQL MCP Server memberi pengembang cara yang sederhana, dapat diprediksi, dan aman untuk membawa agen AI ke dalam alur kerja data mereka. Fungsi ini tercapai tanpa mengekspos database atau mengandalkan penguraian bahasa alami yang rentan. Dengan membangun abstraksi entitas pembangun Data API, RBAC, caching, dan telemetri, SQL MCP Server memberikan permukaan siap produksi yang berfungsi sama di REST, GraphQL, dan MCP. Anda mengonfigurasinya sekali, dan mesin menangani sisanya.

Protokol Konteks Model (MCP)

Model Context Protocol (MCP) adalah standar yang menentukan bagaimana agen AI menemukan dan memanggil alat eksternal. Alat adalah operasi tunggal seperti membuat rekaman atau membaca data. Setiap alat menjelaskan input, output, dan perilakunya. MCP menyediakan cara yang dapat diprediksi bagi agen untuk menemukan dan menggunakan kemampuan.

Server MCP untuk SQL

SQL MCP Server adalah mesin sumber terbuka microsoft yang dinamis untuk aplikasi agenik. Anda mengonfigurasinya dengan file JSON yang menentukan:

  • Cara menyambungkan ke database Anda
  • Tabel, tampilan, atau prosedur tersimpan mana yang akan diekspos
  • Izin yang berlaku untuk setiap objek

SQL MCP Server disertakan sebagai bagian dari penyusun API Data (DAB) mulai versi 1.7. Ini mengekspos operasi SQL sebagai keluarga kecil alat MCP sehingga agen dapat berinteraksi dengan entitas database melalui kontrak terkontrol. Server dihost sendiri tetapi, untuk pengembang, server juga dapat berjalan secara lokal melalui baris perintah DAB.

Petunjuk / Saran

Penyusun API Data adalah sumber terbuka dan gratis untuk digunakan.

Kasus penggunaan

Berikut adalah beberapa kasus penggunaan umum untuk SQL MCP Server:

  • Mengizinkan pendamping atau chatbot untuk melakukan operasi CRUD yang aman
  • Membangun otomatisasi internal tanpa menulis SQL
  • Menambahkan kemampuan agen tanpa mengekspos database secara langsung

Mengamankan skema

Penyusun API Data menggunakan lapisan abstraksi entitas yang terdefinisi dengan baik yang mencantumkan semua tabel, tampilan, dan prosedur tersimpan yang diekspos melalui API dalam konfigurasi. Lapisan ini memungkinkan Anda memberikan alias untuk nama dan kolom, menggambarkan objek dan parameter, dan membatasi kolom data mana yang tersedia untuk peran yang berbeda.

Penting

Penyusun API Data (DAB) memahami peran dan hanya memperlihatkan entitas serta operasi yang diizinkan untuk diakses oleh peran saat ini.

Karena SQL MCP Server adalah fitur penyusun Data API, SQL MCP Server juga menggunakan lapisan abstraksi ini. Pendekatan ini mencegah skema internal terekspos ke konsumen eksternal dan memungkinkan Anda menentukan sumber data yang kompleks, dan bahkan lintas sumber data, keluarga objek dan hubungan di lapisan API.

Memecahkan NL2SQL

SQL MCP Server mengambil pendekatan yang berbeda dari banyak server MCP database yang berpandangan sempit yang tersedia saat ini. Contoh utamanya adalah bahwa kami sengaja tidak mendukung NL2SQL.

Why? Model bersifat tidak deterministik, dan kueri yang kompleks adalah yang paling mungkin menghasilkan kesalahan yang halus. Kueri kompleks ini seringkali merupakan kueri yang diharapkan AI dapat dihasilkan oleh pengguna, namun mereka juga yang memerlukan pengamatan paling banyak ketika diproduksi dengan cara yang tidak menentukan.

Nota

Deterministik berarti input yang sama selalu menghasilkan output yang sama. Tidak ada keacakan atau variasi di seluruh panggilan, yang membuat hasil dapat diprediksi, dapat diuji, dan aman untuk diotomatiskan.

Sebaliknya, SQL MCP Server mendukung apa yang mungkin disebut model NL2DAB. Pendekatan ini menggunakan lapisan abstraksi entitas pembuat API Data yang aman dan Pembangun Kueri DAB bawaan. Bersama-sama, mereka menghasilkan Transact-SQL (T-SQL) yang akurat dan terbentuk dengan baik secara deterministik sepenuhnya. Pendekatan ini menghilangkan risiko, overhead, dan gangguan yang terkait dengan NL2SQL sambil mempertahankan keamanan dan keandalan untuk kueri yang dihasilkan agen.

Dukungan untuk DDL

DDL (Bahasa Definisi Data) adalah bahasa database yang digunakan untuk membuat dan mengubah objek seperti tabel dan tampilan. SQL MCP Server dibangun di sekitar DML (Bahasa Manipulasi Data), bahasa database yang digunakan untuk membuat, membaca, memperbarui, dan menghapus data dalam tabel dan tampilan yang ada. DML juga mencakup eksekusi prosedur tersimpan. Akibatnya, SQL MCP Server dirancang untuk bekerja dengan data, bukan skema. Desain ini selaras dengan kasus penggunaan MCP produksi di mana agen AI berinteraksi dengan sistem misi penting atau sensitif bisnis.

Petunjuk / Saran

Untuk memodifikasi skema selama pengembangan lokal, teknisi dapat menggunakan ekstensi MSSQL di Visual Studio Code (VS Code), yang menyediakan dukungan DDL yang komprehensif.

Dukungan untuk RBAC

SQL MCP Server mendapat manfaat dari sistem kontrol akses berbasis peran (RBAC) yang terbukti sama yang digunakan di seluruh API Data builder. Setiap entitas dalam konfigurasi Anda menentukan peran mana yang dapat membaca, membuat, memperbarui, atau menghapus data, dan bidang mana yang disertakan atau dikecualikan untuk peran tersebut. Aturan ini berlaku secara otomatis untuk setiap alat MCP, memastikan keamanan tetap konsisten di seluruh REST, GraphQL, dan MCP tanpa memerlukan konfigurasi tambahan.

Penting

Batasan berbasis peran berlaku di setiap langkah interaksi agen.

Dukungan untuk cache

SQL MCP Server secara otomatis menyimpan cache hasil dari alat read_records. Caching di API Penyusun Data diaktifkan secara global, dan Anda dapat mengonfigurasinya per entitas. Penembolokan tingkat pertama dan kedua membantu mengurangi beban database, mencegah serbuan permintaan, dan mendukung skenario awal hangat di lingkungan yang berskala horizontal.

Dukungan untuk pemantauan

SQL MCP Server memancarkan log dan telemetri yang memungkinkan perusahaan memantau dan memvalidasi aktivitas dari satu panel kaca. Kemampuan ini mencakup Azure Log Analytics, Application Insights, dan log file lokal di dalam kontainer.

Telemetri

SQL MCP Server sepenuhnya diinstrumentasi dengan rentang dan aktivitas OpenTelemetry (OTEL). Setiap operasi ditelusuri sehingga pengembang dapat menghubungkan perilaku di seluruh sistem terdistribusi. Pelajari selengkapnya tentang dukungan asli Open Telemetry dari pembuat Data API.

Pemeriksaan kesehatan

SQL MCP Server menyediakan pemeriksaan kesehatan dan entitas terperinci di seluruh titik akhir REST, GraphQL, dan MCP. Pembangun API Data Health memungkinkan pengembang menentukan ekspektasi performa, mengatur ambang batas, dan memverifikasi bahwa setiap titik akhir berfungsi seperti yang diharapkan.

Bagaimana cara mengonfigurasi SQL MCP Server?

MCP dikonfigurasi dalam file konfigurasi DAB Anda. Jika Anda sudah memiliki konfigurasi penyusun Api Data yang berfungsi, meningkatkan ke versi 1.7 atau yang lebih baru secara otomatis memberi Anda SQL MCP Server yang berfungsi tanpa langkah tambahan yang diperlukan.

Konfigurasi

Anda dapat mengaktifkan MCP secara global atau di tingkat entitas. Kemampuan ini memungkinkan Anda memilih entitas mana yang menampilkan alat MCP dan yang tetap tidak dapat diakses oleh agen. MCP mengikuti aturan yang sama yang digunakan untuk REST dan GraphQL, sehingga konfigurasi Anda tetap menjadi sumber kebenaran tunggal untuk izin, proyeksi, dan kebijakan.

Ketika MCP diaktifkan, SQL MCP Server secara otomatis menghasilkan antarmuka alatnya berdasarkan konfigurasi Anda. Anda tidak menentukan alat MCP secara manual. Sistem bawaan dml-tools menemukan dan mengekspos entitas secara prosedural, yang menskalakan dengan baik dari skema kecil ke database yang sangat besar.

Get started

Memulai berarti membuat dab-config.json untuk mengontrol mesin. Anda dapat melakukan tugas ini secara manual, atau Anda dapat menggunakan CLI Penyusun API Data (DAB). CLI menyederhanakan tugas, memungkinkan Anda menginisialisasi file dengan satu perintah. Nilai properti konfigurasi dapat menggunakan string harfiah, variabel lingkungan, atau rahasia Azure Key Vault .

dab init --database-type mssql --connection-string "<your-connection-string>" --config dab-config.json --host-mode development

Anda dapat menentukan setiap tabel, tampilan, atau prosedur tersimpan yang Anda inginkan untuk diekspos oleh SQL MCP Server dengan menambahkannya ke konfigurasi. CLI memungkinkan Anda dengan mudah menambahkannya, menetapkan alias, mengonfigurasi izinnya, dan memetakan kolom jika Anda mau. Yang terpenting, dengan description properti , Anda dapat menyertakan detail semantik untuk membantu model bahasa lebih memahami data Anda.

dab add {entity-name} \                          # object alias (Employees)
  --source {table-or-view-name} \                # database object (dbo.Employees)
  --source.type {table|view|stored-procedure} \  # object type (table)
  --permissions "{role:actions}" \               # role and allowed actions (anonymous:*)
  --description "{text}"                         # semantic description (Company employee records)

Pengaturan waktu jalan

SQL MCP Server diaktifkan secara default dalam konfigurasi penyusun API Data. Dalam kebanyakan kasus, Anda tidak perlu menambahkan pengaturan apa pun. Server secara otomatis mengikuti izin dan aturan keamanan yang sama dengan API dan database Anda. Konfigurasikan MCP hanya saat Anda ingin mempersempit atau membatasi apa yang dapat dilakukan agen.

"runtime": {
  "mcp": {
    "enabled": true,              // default: true
    "path": "/mcp",               // default: /mcp
    "dml-tools": {
      "describe-entities": true,  // default: true
      "create-record": true,      // default: true
      "read-records": true,       // default: true
      "update-record": true,      // default: true
      "delete-record": true,      // default: true
      "execute-entity": true      // default: true
    }
  }
}

CLI juga memungkinkan Anda mengatur setiap properti secara individual atau terprogram melalui pembuatan skrip.

dab configure --runtime.mcp.enabled true
dab configure --runtime.mcp.path "/mcp"
dab configure --runtime.mcp.dml-tools.describe-entities true
dab configure --runtime.mcp.dml-tools.create-record true
dab configure --runtime.mcp.dml-tools.read-records true
dab configure --runtime.mcp.dml-tools.update-record true
dab configure --runtime.mcp.dml-tools.delete-record true
dab configure --runtime.mcp.dml-tools.execute-entity true

Mengapa menonaktifkan alat secara individual?

Pengembang mungkin ingin membatasi tindakan tertentu bahkan ketika peran atau izin entitas mengizinkannya. Menonaktifkan alat pada level waktu eksekusi memastikan alat tersebut tidak pernah muncul bagi agen. Misalnya, menonaktifkan delete_record menyembunyikan kemampuan penghapusan sepenuhnya, terlepas dari konfigurasi di tempat lain. Skenario ini jarang terjadi tetapi berguna ketika batas operasional yang ketat diperlukan.

Pengaturan entitas

Anda juga tidak perlu mengaktifkan MCP pada setiap entitas. Entitas berpartisipasi secara otomatis kecuali Anda memilih untuk membatasinya. Properti dml-tools ada sehingga Anda dapat mengecualikan entitas dari MCP atau mempersempit kemampuannya, tetapi Anda tidak perlu mengatur apa pun untuk penggunaan normal. Pengaturan bawaan menangani semuanya.

"entities": {
  "products": {
    "mcp": {
      "dml-tools": true
    }
  }
}

Alat DML

SQL MCP Server memaparkan enam alat Bahasa Manipulasi Data (DML) yang memungkinkan agen AI melakukan operasi basis data yang aman dan terjamin: describe_entities, create_record, read_records, update_record, delete_record, dan execute_entity. Alat-alat ini membentuk permukaan CRUD yang dapat diprediksi yang selalu mencerminkan konfigurasi, izin, dan skema Anda.

Setiap alat menghormati kontrol akses berbasis peran (RBAC), izin entitas, dan kebijakan. Agen tidak pernah berinteraksi langsung dengan database Anda - mereka bekerja melalui lapisan abstraksi penyusun Api Data yang aman.

Untuk detail lengkap tentang setiap alat, opsi konfigurasi, dan praktik terbaik, lihat referensi alat DML.