Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
SQL MCP Server je ve verzi Preview a tato dokumentace a implementace modulu se během tohoto zkušebního období může změnit.
SQL MCP Server poskytuje vývojářům jednoduchý, předvídatelný a bezpečný způsob, jak přenést agenty AI do svých datových pracovních postupů. Dosahuje toho bez vystavení databáze nebo spoléhání se na analýzu křehkého přirozeného jazyka. Díky využití abstrakce entit v Data API builderu, RBAC, ukládání do mezipaměti a telemetrie poskytuje SQL MCP Server produkčně připravené rozhraní, které funguje jednotně v rámci REST, GraphQL a MCP. Nakonfigurujete ho jednou a modul zpracuje zbytek.
Model Context Protocol (MCP)
Model Context Protocol (MCP) je standard, který definuje, jak agenti umělé inteligence zjišťují a volají externí nástroje. Nástroj je jedna operace, například vytvoření záznamu nebo čtení dat. Každý nástroj popisuje své vstupy, výstupy a chování. MCP poskytuje předvídatelný způsob, jak agenti zjišťovat a používat funkce.
Server MCP pro SQL
SQL MCP Server je dynamický opensourcový modul Microsoftu pro aplikace agentů. Nakonfigurujete ho pomocí souboru JSON, který definuje:
- Jak se připojit k databázi
- Které tabulky, zobrazení nebo uložené procedury mají být vystaveny
- Oprávnění, která platí pro jednotlivé objekty
SQL MCP Server je součástí Tvůrce rozhraní DATA API (DAB) počínaje verzí 1.7. Zpřístupňuje operace SQL jako malou řadu nástrojů MCP , aby agenti mohli komunikovat s databázovými entitami prostřednictvím řízeného kontraktu. Server je hostovaný samostatně, ale pro vývojáře může také běžet místně prostřednictvím příkazového řádku DAB.
Návod
Tvůrce rozhraní DATA API je opensourcový a bezplatný.
Případy použití
Tady je několik typických případů použití SQL MCP Serveru:
- Povolit kopilotům nebo chatovacím robotům provádět bezpečné CRUD operace
- Vytváření interních automatizací bez psaní SQL
- Přidání možností agenta bez přímého zveřejnění databáze
Zabezpečení schématu
Tvůrce rozhraní Data API používá dobře definovanou vrstvu abstrakce entit, která obsahuje seznam všech tabulek, zobrazení a uložených procedur vystavených prostřednictvím rozhraní API v konfiguraci. Tato vrstva umožňuje vytvořit aliasy pro názvy a sloupce, popisovat objekty a parametry a omezit, která pole jsou dostupná pro různé role.
Důležité
Tvůrce rozhraní DATA API (DAB) je pracující s rolemi a zveřejňuje pouze entity a operace, ke kterým má aktuální role povolený přístup.
Vzhledem k tomu, že SQL MCP Server je funkcí Tvůrce rozhraní Data API, používá také tuto abstraktní vrstvu. Tento přístup zabraňuje zpřístupnění interního schématu externím uživatelům a umožňuje definovat složité rodiny objektů a vztahů, včetně těch, které zasahují do více zdrojů dat, ve vrstvě API.
Řešení NL2SQL
SQL MCP Server používá jiný přístup než mnoho krátkozrakých MCP serverů, které jsou dnes k dispozici. Klíčovým příkladem je, že záměrně nepodporujeme NL2SQL.
Why? Modely nejsou deterministické a složité dotazy s největší pravděpodobností způsobí drobné chyby. Tyto složité dotazy jsou často ty, které uživatelé doufají, že AI může vygenerovat, ale jsou to i ty, které vyžadují největší kontrolu při vytváření nedeterministickým způsobem.
Poznámka:
Deterministický znamená, že stejný vstup vždy vytvoří stejný výstup. Neexistuje žádná náhodnost ani variace mezi voláními, díky čemuž jsou výsledky předvídatelné, testovatelné a bezpečné pro automatizaci.
Místo toho SQL MCP Server podporuje to, co se může volat model NL2DAB. Tento přístup používá zabezpečenou vrstvu abstrakce entity Tvůrce rozhraní Data API a integrovanou tvůrce dotazů DAB. Společně vytvářejí přesné a dobře vytvořené Transact-SQL (T-SQL) plně deterministickým způsobem. Tento přístup odstraňuje riziko, režii a nepříjemnosti spojené s NL2SQL a zachovává bezpečnost a spolehlivost dotazů generovaných agentem.
Podpora DDL
DDL (Data Definition Language) je databázový jazyk používaný k vytváření a změnám objektů, jako jsou tabulky a zobrazení. SQL MCP Server je založený na jazyce DML (Data Manipulation Language), databázovém jazyce používaném k vytváření, čtení, aktualizaci a odstraňování dat v existujících tabulkách a zobrazeních. DML se zabývá také prováděním uložených procedur. V důsledku toho je SQL MCP Server navržený tak, aby fungoval s daty, nikoli se schématem. Tento návrh odpovídá provozním případům použití MCP, kdy agenti umělé inteligence pracují s důležitými nebo obchodními citlivými systémy.
Návod
K úpravě schématu během místního vývoje můžou technici použít rozšíření MSSQL v editoru Visual Studio Code (VS Code), které poskytuje komplexní podporu DDL.
Podpora RBAC
SQL MCP Server přináší výhody stejného osvědčeného systému řízení přístupu na základě role (RBAC) používaného v tvůrci rozhraní Data API. Každá entita ve vaší konfiguraci definuje, které role mohou číst, vytvářet, aktualizovat nebo odstraňovat data a která pole jsou zahrnuta nebo vyloučena pro tyto role. Tato pravidla platí automaticky pro každý nástroj MCP a zajišťují konzistentní zabezpečení napříč rozhraními REST, GraphQL a MCP bez nutnosti další konfigurace.
Důležité
Omezení založená na rolích se vztahují v každém kroku interakce agenta.
Podpora ukládání do mezipaměti
SQL MCP Server automaticky ukládá výsledky z nástroje do read_records mezipaměti.
Ukládání do mezipaměti v Tvůrci rozhraní Data API je povolené globálně a můžete ho nakonfigurovat pro každou entitu. Ukládání do mezipaměti úrovně 1 i úrovně 2 pomáhá snížit zatížení databáze, zabránit přívalům požadavků a podporovat teplé spuštění scénářů v horizontálně škálovaných prostředích.
Podpora monitorování
SQL MCP Server generuje protokoly a telemetrii, které podnikům umožňují monitorovat a ověřovat aktivity z jednoho centralizovaného rozhraní. Tato funkce zahrnuje protokoly Azure Log Analytics, Application Insights a místní souborové protokoly uvnitř kontejneru.
Telemetrie
SQL MCP Server je plně instrumentovaný s rozsahy a aktivitami OpenTelemetry (OTEL). Každá operace je trasována, aby vývojáři mohli korelovat chování napříč distribuovanými systémy. Přečtěte si další informace o nativní podpoře Open Telemetry v Data API builderu.
Zdravotní prohlídky
SQL MCP Server poskytuje podrobné kontroly stavu a entit napříč koncovými body REST, GraphQL a MCP. Služba Data API Builder Health umožňuje vývojářům definovat očekávání výkonu, nastavit prahové hodnoty a ověřit, že každý koncový bod funguje podle očekávání.
Jak nakonfigurovat SQL MCP Server?
McP je nakonfigurovaný v konfiguračním souboru DAB. Pokud už máte funkční konfiguraci Tvůrce rozhraní Data API, upgrade na verzi 1.7 nebo novější vám automaticky poskytne funkční SQL MCP Server bez nutnosti dalších kroků.
Konfigurace
McP můžete povolit globálně nebo na úrovni entity. Tato funkce umožňuje zvolit, které entity mají přístup k nástrojům MCP a které zůstanou pro agenty nedostupné. MCP se řídí stejnými pravidly, která se používají pro REST a GraphQL, takže konfigurace zůstává jediným zdrojem pravdivých informací pro oprávnění, projekce a zásady.
Když je povolená služba MCP, SQL MCP Server automaticky vygeneruje svou plochu nástrojů na základě vaší konfigurace. Nástroje MCP nedefinujete ručně. Integrovaný dml-tools systém zjišťuje a zveřejňuje entity procedurálně, což se škáluje dobře od malých schémat až po velmi velké databáze.
Začínáme
Začínáme vytvořením dab-config.json pro řízení motoru. Tuto úlohu můžete provést ručně nebo můžete použít rozhraní příkazového řádku DAB (Data API Builder). Rozhraní příkazového řádku zjednodušuje úlohu a umožňuje inicializovat soubor jediným příkazem. Hodnoty vlastností konfigurace mohou používat literální řetězce, proměnné prostředí nebo tajemství Azure Key Vault.
dab init --database-type mssql --connection-string "<your-connection-string>" --config dab-config.json --host-mode development
Můžete zadat každou tabulku, zobrazení nebo uloženou proceduru, kterou má SQL MCP Server zveřejnit přidáním do konfigurace. Rozhraní příkazového řádku umožňuje snadno přidávat, přiřazovat aliasy, konfigurovat jejich oprávnění a mapovat sloupce, pokud chcete. Nejdůležitější je, že s description vlastností můžete zahrnout sémantické podrobnosti, které pomáhají jazykovým modelům lépe porozumět vašim datům.
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)
Nastavení modulu runtime
Sql MCP Server je ve výchozím nastavení povolen v konfiguraci Tvůrce rozhraní Data API. Ve většině případů nemusíte přidávat žádná nastavení. Server automaticky dodržuje stejná oprávnění a pravidla zabezpečení jako vaše rozhraní API a databáze. McP nakonfigurujte jenom v případech, kdy chcete zúžit nebo omezit, co můžou agenti dělat.
"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
}
}
}
Rozhraní příkazového řádku také umožňuje nastavit každou vlastnost jednotlivě nebo programově prostřednictvím skriptování.
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
Proč zakázat jednotlivé nástroje?
Vývojáři můžou chtít omezit konkrétní akce i v případě, že jim oprávnění rolí nebo entit umožňují. Zakázání nástroje na úrovni modulu runtime zajistí, že se agentům nikdy nezobrazí. Vypnutím funkce odstranění se například delete_record zcela skryje, a to bez ohledu na konfiguraci jinde. Tento scénář je neobvyklý, ale užitečný v případě, že jsou vyžadovány přísné provozní hranice.
Nastavení entity
U každé entity také nemusíte povolovat MCP. Entity se automaticky účastní, pokud se nerozhodnete je omezit. Vlastnost dml-tools existuje, takže entitu můžete vyloučit z MCP nebo zúžit její schopnosti, ale nemusíte nic nastavovat pro normální použití. Výchozí nastavení vše spravuje.
"entities": {
"products": {
"mcp": {
"dml-tools": true
}
}
}
Nástroje DML
SQL MCP Server zveřejňuje šest nástrojů DML (Data Manipulat Language), které umožňují agentům AI provádět zabezpečené, typově bezpečné databázové operace: describe_entities, create_record, read_records, update_record, , delete_recorda execute_entity. Tyto nástroje tvoří předvídatelný povrch CRUD, který vždy odráží vaši konfiguraci, oprávnění a schéma.
Každý nástroj respektuje řízení přístupu na základě role (RBAC), oprávnění entit a zásady. Agenti nikdy nepracují přímo s vaší databází – pracují prostřednictvím zabezpečené abstrakční vrstvy tvůrce rozhraní Data API.
Podrobné informace o jednotlivých nástrojích, možnostech konfigurace a osvědčených postupech najdete v referenčních informacích k nástrojům DML.