Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Serwer MCP (SQL Model Context Protocol) jest dostępny w narzędziu Data API Builder w wersji 1.7 lub nowszej.
Program SQL MCP Server zapewnia deweloperom prosty, przewidywalny i bezpieczny sposób uwzględnienia agentów sztucznej inteligencji w przepływach pracy danych. Program SQL MCP Server realizuje ten cel bez uwidaczniania bazy danych lub polegania na kruchej analizy języka naturalnego. Serwer opiera się na abstrakcji jednostek API danych buildera, RBAC (kontroli dostępu opartej na rolach), buforowaniu i telemetrii, aby dostarczyć jednolitą warstwę produkcyjną gotową do użycia, która działa tak samo w architekturze REST, GraphQL i MCP. Konfigurujesz go raz, a aparat obsługuje resztę.
Protokół MCP (Model Context Protocol)
Model Context Protocol (MCP) to standard definiujący sposób odnajdywania i wywoływania narzędzi zewnętrznych przez agentów sztucznej inteligencji. Narzędzie to jedna operacja, taka jak tworzenie rekordu lub odczytywanie danych. Każde narzędzie opisuje swoje dane wejściowe, dane wyjściowe i zachowanie. McP zapewnia przewidywalny sposób odnajdywania i używania możliwości przez agentów.
Serwer MCP dla bazy danych SQL
SQL MCP Server to dynamiczny silnik open source firmy Microsoft dla aplikacji autonomicznych. Konfigurujesz go przy użyciu pliku JSON, który definiuje:
- Jak nawiązać połączenie z bazą danych
- Które tabele, widoki lub procedury składowane mają być uwidoczniane
- Uprawnienia, które mają zastosowanie do każdego obiektu
Program SQL MCP Server jest dołączony jako część konstruktora interfejsu API danych (DAB) począwszy od wersji 1.7. Uwidacznia operacje SQL jako małą rodzinę narzędzi MCP , dzięki czemu agenci mogą wchodzić w interakcje z jednostkami bazy danych za pośrednictwem kontrolowanego kontraktu. Serwer jest hostowany samodzielnie, ale dla deweloperów może również działać lokalnie w wierszu polecenia DAB.
Wskazówka
Konstruktor interfejsu API danych jest open source i jest bezpłatny do użycia.
Szczegóły protokołu MCP
Program SQL MCP Server implementuje protokół MCP w wersji 2025-06-18 jako stałą wartość domyślną. Obsługuje dwa rodzaje transportów: HTTP z funkcją przesyłania strumieniowego dla standardowych scenariuszy hostingu oraz stdio dla scenariuszy lokalnych lub interfejsu wiersza polecenia. Podczas inicjowania serwer anonsuje narzędzia i możliwości logowania, zwraca metadane serwera, takie jak nazwa i wersja DAB, oraz zawiera pole instructions z runtime.mcp.description, aby klienci rozumieli przeznaczenie serwera.
Inspektor MCP
W przypadku punktów końcowych MCP opartych na protokole HTTP, na przykład gdy usługa DAB jest uruchomiona w trybie serwera proxy http://localhost:5000/mcp, uruchom narzędzie MCP Inspector, przekazując bezpośrednio adres URL punktu końcowego:
Najpierw uruchom konstruktora interfejsu API danych:
dab start
Następnie w innym terminalu uruchom inspektora MCP przy użyciu adresu URL punktu końcowego:
npx -y @modelcontextprotocol/inspector http://localhost:5000/mcp
Spowoduje to kierowanie żądań za pośrednictwem serwera proxy Inspector i pomaga uniknąć problemów z mechanizmem CORS przeglądarki oraz nagłówków sesji, takie jak Mcp-Session-Id, które mogą wystąpić w trybie bezpośrednim.
Transport Stdio
Transport stdio jest przydatny w przypadku lokalnych przepływów pracy programowania i interfejsu wiersza polecenia. Możesz określić rolę za pomocą role:<role-name>, która będzie domyślnie ustawiana na anonymous, jeśli zostanie pominięta. W tym trybie uwierzytelnianie korzysta z dostawcy symulatora, a żądania przychodzące są ograniczone do 1 MB.
dab start --mcp-stdio
dab start --mcp-stdio role:<role-name>
Przypadki użycia
Oto kilka typowych przypadków użycia programu SQL MCP Server:
- Zezwalaj asystentom lub czatbotom na wykonywanie bezpiecznych operacji CRUD
- Tworzenie automatyzacji wewnętrznych bez pisania kodu SQL
- Dodawanie możliwości agenta bez bezpośredniego uwidaczniania bazy danych
Zabezpieczanie schematu
Konstruktor API danych używa dobrze zdefiniowanej warstwy abstrakcji jednostek, która obejmuje listę wszystkich tabel, widoków i procedur składowanych udostępnionych przez API w konfiguracji. Ta warstwa umożliwia aliasy nazw i kolumn, opisywanie obiektów i parametrów oraz ograniczanie pól dostępnych dla różnych ról.
Ważne
Konstruktor interfejsu API danych (DAB) uwzględnia rolę i udostępnia tylko jednostki i operacje, do których może uzyskać dostęp bieżąca rola.
Ponieważ program SQL MCP Server jest funkcją konstruktora interfejsu API danych, używa również tej warstwy abstrakcji. Takie podejście uniemożliwia ujawnienie schematu wewnętrznego użytkownikom zewnętrznym i pozwala definiować złożone oraz międzyźródłowe rodziny obiektów i relacji w warstwie API.
Rozwiązywanie problemów z nl2SQL
Program SQL MCP Server korzysta z innego podejścia niż wiele obecnie dostępnych krótkowzrocznych serwerów MCP baz danych. Kluczowym przykładem jest to, że program SQL MCP Server celowo nie obsługuje nl2SQL.
Why? Modele nie są deterministyczne, a złożone zapytania najprawdopodobniej generują subtelne błędy. Te złożone zapytania są często tymi, których użytkownicy mają nadzieję, że sztuczna inteligencja może wygenerować, ale są to również te, które wymagają największej kontroli w sposób nieokreślony.
Uwaga / Notatka
Deterministyczne oznacza, że te same dane wejściowe zawsze generują te same dane wyjściowe. Nie ma losowości ani różnic między wywołaniami, co sprawia, że wyniki są przewidywalne, testowalne i bezpieczne do zautomatyzowania.
Zamiast tego program SQL MCP Server obsługuje elementy, które mogą być nazywane modelem NL2DAB. To podejście korzysta z zabezpieczonej warstwy abstrakcji jednostki Data API Builder oraz wbudowanego DAB Query Builder. Razem tworzą dokładne, dobrze sformułowane Transact-SQL (T-SQL) w całkowicie deterministyczny sposób. Takie podejście eliminuje ryzyko, obciążenie i uciążliwość związane z nl2SQL przy jednoczesnym zachowaniu bezpieczeństwa i niezawodności zapytań generowanych przez agentów.
Obsługa DDL
Język DDL (Data Definition Language) to język bazy danych używany do tworzenia i modyfikowania obiektów, takich jak tabele i widoki. Program SQL MCP Server jest oparty na języku DML (Data Manipulation Language), języku bazy danych używanym do tworzenia, odczytywania, aktualizowania i usuwania danych w istniejących tabelach i widokach. DML obejmuje również wykonywanie procedur składowanych. W związku z tym program SQL MCP Server jest przeznaczony do pracy z danymi, a nie ze schematem. Ten projekt jest zgodny z produkcyjnymi przypadkami użycia MCP, w których agenci sztucznej inteligencji wchodzą w interakcje z systemami o znaczeniu krytycznym lub biznesowym.
Wskazówka
Aby zmodyfikować schemat podczas programowania lokalnego, możesz użyć rozszerzenia Microsoft SQL Server (MSSQL) w Visual Studio Code, które zapewnia kompleksową obsługę języka DDL.
Obsługa kontroli dostępu opartej na rolach
Program SQL MCP Server korzysta z tego samego sprawdzonego systemu kontroli dostępu opartej na rolach (RBAC) używanego przez konstruktora interfejsu API danych. Każda jednostka w konfiguracji definiuje role, które mogą odczytywać, tworzyć, aktualizować lub usuwać dane oraz które pola są uwzględniane lub wykluczane dla tych ról. Te reguły są stosowane automatycznie do każdego narzędzia MCP, zapewniając spójność zabezpieczeń w architekturze REST, GraphQL i MCP bez konieczności dodatkowej konfiguracji.
Ważne
Ograniczenia oparte na rolach mają zastosowanie na każdym etapie interakcji agenta.
Obsługa buforowania
Program SQL MCP Server automatycznie buforuje wyniki z read_records narzędzia.
Buforowanie w narzędziu Data API Builder jest włączone globalnie i można je skonfigurować dla każdej jednostki. Buforowanie na poziomie 1 i 2 pomaga zmniejszyć obciążenie bazy danych, zapobiec lawinom żądań i wspierać scenariusze szybkiego rozruchu w środowiskach skalowanych poziomo.
Obsługa monitorowania
Program SQL MCP Server emituje dzienniki i dane telemetryczne, które umożliwiają przedsiębiorstwom monitorowanie i weryfikowanie aktywności z jednego okienka szkła. Ta funkcja obejmuje Azure Log Analytics, Application Insights i lokalne dzienniki plików wewnątrz kontenera.
Telemetria
Program SQL MCP Server jest w pełni instrumentowany za pomocą zakresu i działań OpenTelemetry (OTEL). Każda operacja jest śledzona, aby deweloperzy mogli skorelować zachowanie w systemach rozproszonych. Dowiedz się więcej o natywnej obsłudze Open Telemetry w konstruktorze Data API.
Kontrole kondycji
SQL MCP Server zapewnia szczegółowe monitorowanie kondycji oraz kontrolę elementów w punktach końcowych REST, GraphQL i MCP. Narzędzie Data API Builder Health umożliwia deweloperom definiowanie oczekiwań dotyczących wydajności, ustawianie progów i sprawdzanie, czy każdy punkt końcowy działa zgodnie z oczekiwaniami.
Jak skonfigurować program SQL MCP Server
Program MCP jest skonfigurowany w pliku konfiguracji języka DAB. Jeśli masz już działającą konfigurację konstruktora interfejsu API danych, uaktualnienie do wersji 1.7 lub nowszej automatycznie zapewnia działający program SQL MCP Server bez dodatkowych kroków.
Konfiguracja
Możesz włączyć mcp globalnie lub na poziomie jednostki. Ta funkcja umożliwia wybranie, które jednostki mają dostęp do narzędzi MCP i które pozostają niedostępne dla agentów. Program MCP jest zgodny z tymi samymi regułami używanymi w przypadku architektury REST i GraphQL, więc konfiguracja pozostaje pojedynczym źródłem prawdy dla uprawnień, projekcji i zasad.
Po włączeniu MCP, SQL MCP Server automatycznie generuje powierzchnię narzędziową zgodnie z konfiguracją. Narzędzia MCP nie są definiowane ręcznie. Wbudowany dml-tools system odnajduje i uwidacznia jednostki proceduralnie, które skaluje się dobrze z małych schematów do bardzo dużych baz danych.
Wprowadzenie
Wprowadzenie oznacza utworzenie modułu dab-config.json w celu sterowania silnikiem. To zadanie można wykonać ręcznie lub możesz użyć interfejsu wiersza polecenia narzędzia Data API Builder (DAB). Interfejs wiersza polecenia upraszcza zadanie, umożliwiając zainicjowanie pliku za pomocą jednego polecenia. Wartości właściwości konfiguracji mogą używać ciągów znaków, zmiennych środowiskowych lub sekretów z usługi Azure Key Vault.
dab init --database-type mssql --connection-string "<your-connection-string>" --config dab-config.json --host-mode development
Możesz określić każdą tabelę, widok lub procedurę składowaną, którą ma uwidocznić program SQL MCP Server, dodając je do konfiguracji. Interfejs wiersza polecenia umożliwia łatwe dodawanie ich, przypisywanie aliasów, konfigurowanie ich uprawnień i mapowanie kolumn, jeśli chcesz. Co najważniejsze, za pomocą description właściwości, można uwzględnić szczegóły semantyczne, aby ułatwić modelom językowym lepsze zrozumienie danych.
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)
Ustawienia środowiska uruchomieniowego
Program SQL MCP Server jest domyślnie włączony w konfiguracji konstruktora interfejsu API danych. W większości przypadków nie trzeba dodawać żadnych ustawień. Serwer jest automatycznie zgodny z tymi samymi uprawnieniami i regułami zabezpieczeń co interfejs API i baza danych. Skonfiguruj protokół MCP tylko wtedy, gdy chcesz zawęzić lub ograniczyć możliwości agentów.
"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
}
}
}
Ustaw dml-tools lub true lub false, aby włączyć lub wyłączyć wszystkie narzędzia, albo użyj obiektu do przełączania poszczególnych narzędzi. Narzędzie aggregate-records może również zaakceptować obiekt z właściwościami enabled i query-timeout (1–600 sekund, domyślne 30). Aby uzyskać pełną dokumentację dotyczącą konfiguracji, zobacz Konfiguracja środowiska uruchomieniowego MCP.
Interfejs wiersza polecenia umożliwia również ustawienie każdej właściwości indywidualnie lub programowo za pomocą skryptów.
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
Dlaczego wyłączyć poszczególne narzędzia?
Deweloperzy mogą chcieć ograniczyć określone akcje nawet wtedy, gdy zezwalają na nie role lub uprawnienia jednostki. Wyłączenie narzędzia na poziomie środowiska uruchomieniowego gwarantuje, że nigdy nie wydaje się agentom. Na przykład wyłączenie delete_record powoduje całkowite ukrycie funkcji usuwania, niezależnie od konfiguracji w innych miejscach. Ten scenariusz jest nietypowy, ale przydatny, gdy wymagane są ścisłe granice operacyjne.
Ustawienia encji
Nie trzeba również włączać MCP dla każdej jednostki. Jednostki uczestniczą automatycznie, chyba że zdecydujesz się je ograniczyć. Właściwość mcp istnieje, aby można było wykluczyć jednostkę z mcP lub zawęzić jej możliwości, ale nie musisz ustawiać niczego do normalnego użycia. Wartości domyślne obsługują wszystko.
Użyj formatu obiektu dla konfiguracji MCP na poziomie jednostki:
"entities": {
"Products": {
"mcp": {
"dml-tools": true
}
},
"SensitiveData": {
"mcp": {
"dml-tools": false
}
}
}
W przypadku obiektów procedury składowanej można również włączyć custom-tool, aby zarejestrować procedurę jako narzędzie MCP pod określoną nazwą.
"entities": {
"GetBookById": {
"source": {
"type": "stored-procedure",
"object": "dbo.get_book_by_id"
},
"mcp": {
"custom-tool": true
}
}
}
Gdy custom-tool to true, serwer SQL MCP rejestruje procedurę składowaną jako nazwane narzędzie za pośrednictwem tools/list i tools/call, co umożliwia agentom jej odnajdywanie i wywoływanie bezpośrednio według nazwy. Właściwość custom-tool jest prawidłowa tylko dla encji procedury składowanej.
Uwaga / Notatka
Funkcja programu SQL MCP Server 2.0 opisana w tej sekcji jest obecnie dostępna w wersji zapoznawczej i może ulec zmianie przed ogólną dostępnością. Aby uzyskać więcej informacji, zobacz Co nowego w wersji 2.0.
Narzędzia DML
Program SQL MCP Server udostępnia siedem narzędzi do manipulowania danymi (DML), które umożliwiają agentom sztucznej inteligencji wykonywanie bezpiecznych, bezpiecznych operacji bazy danych: describe_entities, , create_record, read_recordsupdate_recorddelete_record, execute_entityi .aggregate_records Te narzędzia tworzą przewidywalną powierzchnię CRUD, która zawsze odzwierciedla konfigurację, uprawnienia i schemat.
Każde narzędzie uwzględnia kontrolę dostępu opartą na rolach (RBAC), uprawnienia jednostki i zasady. Agenci nigdy nie wchodzą w interakcje bezpośrednio z bazą danych — pracują za pośrednictwem bezpiecznej warstwy abstrakcji konstruktora interfejsu API danych.
Niestandardowe narzędzia MCP
Oprócz wbudowanych narzędzi DML program SQL MCP Server obsługuje niestandardowe narzędzia MCP pochodzące z procedur składowanych. Po ustawieniu "custom-tool": true w obiekcie procedury składowanej, DAB rejestruje go jako nazwane narzędzie za pośrednictwem MCP tools/list i tools/call. Takie podejście umożliwia agentom odnajdywanie i wywoływanie procedur składowanych bezpośrednio według nazwy, uzupełniając ogólne execute_entity narzędzie DML.
Śledzenie OpenTelemetry dla MCP
Wykonywanie narzędzia MCP jest w pełni instrumentowane za pomocą spanów OpenTelemetry (OTEL). Każde wywołanie narzędzia MCP generuje dane śledzenia wraz z operacjami REST i GraphQL, co umożliwia ujednoliconą obserwację na wszystkich powierzchniach interfejsu API. Dowiedz się więcej na temat śledzenia technologii OpenTelemetry.
Uwaga / Notatka
Funkcja programu SQL MCP Server 2.0 opisana w tej sekcji jest obecnie dostępna w wersji zapoznawczej i może ulec zmianie przed ogólną dostępnością. Aby uzyskać więcej informacji, zobacz Co nowego w wersji 2.0.
Treści powiązane
- Dodawanie opisów semantycznych do programu SQL MCP Server
- Konfigurowanie uwierzytelniania dla programu SQL MCP Server
- Narzędzia do manipulowania danymi w programie SQL MCP Server
- Wdrażanie serwera SQL MCP w aplikacjach kontenerowych Azure
- Rozpocznij pracę z SQL MCP Server w Visual Studio Code
- Rozpocznij pracę z SQL MCP Server w .NET Aspire
- Rozpocznij pracę z serwerem SQL MCP w ramach usługi Azure AI Foundry