Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Server Protokol Konteks Model SQL (MCP) tersedia di pembuat API Data versi 1.7 dan yang lebih baru.
SQL MCP Server memberi pengembang cara yang sederhana, dapat diprediksi, dan aman untuk membawa agen AI ke dalam alur kerja data mereka. SQL MCP Server mencapai tujuan ini tanpa mengekspos database atau mengandalkan penguraian bahasa alami yang rapuh. Server dibangun pada abstraksi entitas Data API penyusun, RBAC, caching, dan telemetri untuk memberikan antarmuka siap produksi yang berfungsi sama di semua 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 microsoft yang dinamis dan open source 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 open source dan gratis digunakan.
Detail protokol MCP
SQL MCP Server menerapkan protokol MCP versi 2025-06-18 sebagai default tetap. Ini mendukung dua protokol: HTTP streaming untuk skenario hosting standar dan stdio untuk skenario lokal atau CLI. Selama inisialisasi, server mengiklankan kemampuan alat dan pengelogan, mengembalikan metadata server seperti nama dan versi DAB, dan menyertakan instructions bidang dari runtime.mcp.description sehingga klien memahami tujuan server.
Inspektur MCP
Untuk titik akhir MCP berbasis HTTP, misalnya ketika DAB berjalan di http://localhost:5000/mcp, luncurkan McP Inspector dalam mode proksi dengan meneruskan URL titik akhir secara langsung:
Pertama, mulai pembangun API Data:
dab start
Kemudian, di terminal lain, mulai McP Inspector dengan URL titik akhir:
npx -y @modelcontextprotocol/inspector http://localhost:5000/mcp
Ini merutekan permintaan melalui proxy Inspector dan membantu menghindari browser CORS dan masalah header sesi seperti Mcp-Session-Id yang dapat terjadi dalam mode langsung.
Transport Stdio
Transportasi stdio berguna untuk pengembangan lokal dan alur kerja CLI. Anda dapat menentukan peran dengan role:<role-name>, yang secara default menjadi anonymous jika tidak ditentukan. Dalam mode ini, autentikasi menggunakan penyedia simulator, dan permintaan masuk dibatasi hingga 1 MB.
dab start --mcp-stdio
dab start --mcp-stdio role:<role-name>
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 SQL MCP Server 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 dengan cara yang sepenuhnya deterministik. 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 mengubah skema selama pengembangan lokal, Anda dapat menggunakan ekstensi Microsoft SQL Server (MSSQL) di Visual Studio Code, yang menyediakan dukungan DDL komprehensif.
Dukungan untuk RBAC
SQL MCP Server mendapat manfaat dari sistem kontrol akses berbasis peran (RBAC) yang telah terbukti sama yang digunakan di seluruh Data API 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, Wawasan Aplikasi, 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.
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 environment, atau Azure Key Vault rahasia.
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
"aggregate-records": true // default: true
}
}
}
Atur dml-tools ke true atau false untuk mengaktifkan atau menonaktifkan semua alat, atau gunakan objek dengan tombol per alat. Alat aggregate-records ini juga dapat menerima objek dengan properti enabled dan query-timeout (1–600 detik, default 30). Untuk referensi konfigurasi lengkap, lihat Konfigurasi runtime MCP.
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
dab configure --runtime.mcp.dml-tools.aggregate-records.enabled 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 mcp 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.
Gunakan format objek untuk konfigurasi MCP tingkat entitas:
"entities": {
"Products": {
"mcp": {
"dml-tools": true
}
},
"SensitiveData": {
"mcp": {
"dml-tools": false
}
}
}
Untuk entitas prosedur tersimpan, Anda juga dapat mengaktifkan custom-tool untuk mendaftarkan prosedur sebagai alat MCP bernama:
"entities": {
"GetBookById": {
"source": {
"type": "stored-procedure",
"object": "dbo.get_book_by_id"
},
"mcp": {
"custom-tool": true
}
}
}
Ketika custom-tool adalah true, SQL MCP Server mendaftarkan prosedur tersimpan sebagai alat bernama melalui tools/list dan tools/call, memungkinkan agen untuk menemukan dan memanggilnya langsung dengan nama. Properti custom-tool hanya berlaku untuk entitas prosedur tersimpan.
Nota
Fungsionalitas SQL MCP Server 2.0 yang dijelaskan di bagian ini saat ini dalam pratinjau dan mungkin berubah sebelum ketersediaan umum. Untuk informasi selengkapnya, lihat Apa yang baru dalam versi 2.0.
Alat DML
SQL MCP Server memaparkan tujuh alat Data Manipulation Language (DML) yang memungkinkan agen AI melakukan operasi database yang aman dan aman terhadap jenis data: describe_entities, create_record, read_records, update_record, delete_record, execute_entity, dan aggregate_records. 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.
Alat MCP kustom
Selain alat DML bawaan, SQL MCP Server mendukung alat MCP kustom yang berasal dari prosedur tersimpan. Saat Anda mengatur "custom-tool": true pada entitas prosedur tersimpan, DAB mendaftarkannya sebagai alat bernama melalui MCP tools/list dan tools/call. Pendekatan ini memungkinkan agen menemukan dan memanggil prosedur tersimpan secara langsung dengan nama, melengkapi alat DML generik execute_entity .
Penelusuran OpenTelemetry untuk MCP
Eksekusi alat MCP sepenuhnya diinstrumentasi dengan spans OpenTelemetry (OTEL). Setiap panggilan alat MCP menghasilkan data pelacakan bersama operasi REST dan GraphQL, memungkinkan pengamatan terpadu di semua permukaan API. Pelajari selengkapnya tentang pelacakan OpenTelemetry.
Nota
Fungsionalitas SQL MCP Server 2.0 yang dijelaskan di bagian ini saat ini dalam pratinjau dan mungkin berubah sebelum ketersediaan umum. Untuk informasi selengkapnya, lihat Apa yang baru dalam versi 2.0.
Konten terkait
- Menambahkan deskripsi semantik ke SQL MCP Server
- Mengonfigurasi autentikasi untuk SQL MCP Server
- Alat manipulasi data di SQL MCP Server
- Terapkan SQL MCP Server ke Azure Container Apps
- Mulai dengan SQL MCP Server di Visual Studio Code
- Mulai dengan SQL MCP Server di .NET Aspire
- Mulai dengan SQL MCP Server di Azure AI Foundry