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é
Server MCP (SQL Model Context Protocol) je k dispozici v Tvůrci rozhraní Data API verze 1.7. Nejnovější možnosti a opravy chyb najdete ve verzi 2.0 Preview.
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ů. SQL MCP Server dosahuje tohoto cíle bez vystavení databáze nebo spoléhání se na analýzu křehkého přirozeného jazyka. Server využívá abstrakci entit nástroje Data API builder, RBAC, ukládání do mezipaměti a telemetrii k dodání plně funkční produkční platformy, která funguje jednotně s REST, GraphQL a MCP. Nakonfigurujete ho jednou a modul zpracuje zbytek.
Protokol modelového kontextu (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ý open source 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 open source a může se používat zdarma.
Podrobnosti protokolu MCP
SQL MCP Server implementuje jako pevný výchozí protokol MCP verze 2025-06-18. Podporuje dva přenosy: streamovatelné HTTP pro standardní scénáře hostování a stdio pro místní scénáře nebo scénáře rozhraní příkazového řádku. Během inicializace server oznamuje nástrojové a protokolovací schopnosti, vrací metadata serveru, jako je název a verze DAB, a obsahuje instructions pole z runtime.mcp.description , aby klienti rozuměli účelu serveru.
Inspektor MCP
U koncových bodů MCP založených na protokolu HTTP, například když je DAB spuštěný na http://localhost:5000/mcp, spusťte MCP Inspector v režimu proxy předáním přímo adresy URL koncového bodu:
Nejprve spusťte Tvůrce rozhraní Data API:
dab start
Pak v jiném terminálu spusťte kontrolu MCP s adresou URL koncového bodu:
npx -y @modelcontextprotocol/inspector http://localhost:5000/mcp
Tato trasa směruje požadavky prostřednictvím proxy inspektoru a pomáhá vyhnout se problémům s CORS prohlížeče a hlavičkami relace, jako jsou problémy, ke Mcp-Session-Id kterým může dojít v přímém režimu.
Doprava stdio
Přenos stdio je užitečný pro lokální vývoj a workflow v prostředí příkazového řádku. Můžete zadat roli s role:<role-name>, která se ve výchozím nastavení anonymous použije, pokud je vynechána. V tomto režimu ověřování používá poskytovatele simulátoru a příchozí požadavky jsou omezeny na 1 MB.
dab start --mcp-stdio
dab start --mcp-stdio role:<role-name>
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 to, že SQL MCP Server záměrně nepodporuje 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 Manipulat 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 komunikují s důležitými nebo obchodními systémy.
Návod
Pokud chcete změnit schéma během místního vývoje, můžete použít rozšíření Microsoft SQL Server (MSSQL) v Visual Studio 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 Azure Log Analytics, Application Insights a protokoly místních souborů v 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 můžou používat literální řetězce, environmentové proměnné nebo tajné kódy 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ý. Ve většině případů nemusíte přidávat žádná nastavení MCP. 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řípadě, že chcete zúžit nebo omezit, co můžou agenti dělat – například zakázáním delete-record zabránit ztrátě dat nebo zakázání aggregate-records velkých tabulek.
Referenční informace o úplné konfiguraci modulu runtime, včetně přepínačů jednotlivých nástrojů, časových limitů dotazů a příkazů rozhraní příkazového řádku , najdete v tématu Konfigurace modulu runtime.
Nastavení entity
U každé entity také nemusíte povolovat MCP. Entity se automaticky účastní, pokud se nerozhodnete je omezit. Vlastnost mcp 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.
Pro konfiguraci MCP na úrovni entity použijte formát objektu:
"entities": {
"Products": {
"mcp": {
"dml-tools": true
}
},
"SensitiveData": {
"mcp": {
"dml-tools": false
}
}
}
U entit uložených procedur můžete také povolit custom-tool registraci procedury jako pojmenovaného nástroje MCP:
"entities": {
"GetBookById": {
"source": {
"type": "stored-procedure",
"object": "dbo.get_book_by_id"
},
"mcp": {
"custom-tool": true
}
}
}
Pokud je custom-tool, true SQL MCP Server zaregistruje uloženou proceduru jako pojmenovaný nástroj prostřednictvím tools/list a tools/call, což umožňuje agentům zjistit a vyvolat ji přímo podle názvu. Vlastnost custom-tool je platná pouze pro entity uložené procedury.
Poznámka:
Funkce SQL MCP Serveru 2.0 popsané v této části jsou aktuálně ve verzi Preview a můžou se změnit před obecnou dostupností. Další informace najdete v tématu Co je nového ve verzi 2.0.
Nástroje DML
SQL MCP Server zveřejňuje sedm 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_recordexecute_entitya aggregate_records. 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.
Vlastní nástroje MCP
Kromě integrovaných nástrojů DML podporuje SQL MCP Server vlastní nástroje odvozené z uložených procedur. Nastavte "custom-tool": true u entity uložené procedury, která ji zaregistruje jako pojmenovaný nástroj MCP.
Trasování OpenTelemetry pro MCP
Provádění nástroje MCP je plně instrumentováno pomocí OpenTelemetry (OTEL) spanů. Každé volání nástroje MCP generuje data trasování společně s operacemi REST a GraphQL, což umožňuje jednotnou pozorovatelnost napříč všemi povrchy rozhraní API. Přečtěte si další informace o trasování OpenTelemetry.
Poznámka:
Funkce SQL MCP Serveru 2.0 popsané v této části jsou aktuálně ve verzi Preview a můžou se změnit před obecnou dostupností. Další informace najdete v tématu Co je nového ve verzi 2.0.
Použití s místními modely
SQL MCP Server funguje s libovolným klientem kompatibilním s MCP, včetně místních LLM obsluhovaného prostřednictvím Ollama nebo podobných nástrojů. Pokyny k nastavení, ukázku harnessu v Pythonu, předběžné vložení schématu a pokyny pro malé modely najdete v článku Použití SQL MCP Serveru s lokálními modely.
Související obsah
- Přidání sémantických popisů na SQL MCP Server
- Použití SQL MCP Serveru s místními modely
- Konfigurace ověřování pro SQL MCP Server
- Nástroje pro manipulaci s daty na SQL MCP Serveru
- Nasadit SQL MCP Server do Azure Container Apps
- Nasadit SQL MCP Server na Azure App Service
- Začněte s SQL MCP Serverem ve Visual Studio Code
- Začněte se SQL MCP serverem v .NET Aspire
- Začněte se SQL MCP Serverem v Azure AI Foundry