Megosztás:


Mi az SQL MCP Server?

Fontos

Az SQL Model Context Protocol (MCP) kiszolgáló előzetes verzióban érhető el, és ez a dokumentáció és a motor implementációja változhat. Bár a Data API Builder 1.7-es verziója előzetes verzióban érhető el, kifejezetten az előzetes verziót kell használnia (például 1.7.83-rc), mert az MCP-funkciók még nem szerepelnek a :latest címkében.

Az SQL MCP Server egyszerű, kiszámítható és biztonságos módot biztosít a fejlesztőknek az AI-ügynökök adat-munkafolyamatokba való beépítésére. Az SQL MCP Server ezt a célt anélkül éri el, hogy felfedi az adatbázist, vagy törékeny természetes nyelvi elemzésre támaszkodik. A Data API Builder entitás-absztrakciójára, RBAC-jára, gyorsítótárazására és telemetriájára épülve, a kiszolgáló egy éles környezetre kész felületet biztosít, amely ugyanúgy működik a REST, a GraphQL és az MCP esetén is. Ezt egyszer konfigurálja, és a motor kezeli a többit.

Ábra arról, hogy az SQL MCP Server hogyan csatlakoztatja az AI-ügynököket az SQL-adatbázisokhoz a Data API Builder absztrakciós rétegén keresztül.

Model Context Protocol (MCP)

A Model Context Protocol (MCP) egy szabvány, amely meghatározza, hogy az AI-ügynökök hogyan derítik fel és hívják meg a külső eszközöket. A funkció egyetlen művelet, például rekord létrehozása vagy adatok olvasása. Minden eszköz leírja a bemeneteit, kimeneteit és viselkedését. Az MCP kiszámítható módot biztosít az ügynökök számára a képességek felderítésére és használatára.

MCP-kiszolgáló SQL-hez

Az SQL MCP Server a Microsoft dinamikus, nyílt forráskódú motorja az ügynöki alkalmazásokhoz. Konfigurálja egy JSON-fájllal, amely a következőket határozza meg:

  • Csatlakozás az adatbázishoz
  • Mely táblákat, nézeteket vagy tárolt eljárásokat tegye közzé
  • Az egyes objektumokra vonatkozó engedélyek

Az SQL MCP Server az 1.7-es verziótól kezdve a Data API Builder (DAB) része. Az SQL-műveleteket az MCP-eszközök kis családjaként teszi elérhetővé, így az ügynökök szabályozott szerződéssel kezelhetik az adatbázis-entitásokat. A kiszolgáló saját üzemeltetésű, de fejlesztők számára helyileg is futtatható a DAB parancssorán keresztül.

Jótanács

A Data API Builder nyílt forráskódú, és szabadon használható.

MCP protokoll részletei

Az SQL MCP Server az MCP protokoll 2025-06-18-as verzióját implementálja rögzített alapértelmezettként. Két átvitelt támogat: streamelhető HTTP-t standard üzemeltetési forgatókönyvekhez, és stdio helyi vagy CLI-forgatókönyvekhez. Az inicializálás során a kiszolgáló közzéteszi az eszköz- és naplózási képességeit, visszaküldi a kiszolgáló metaadatait (név és DAB-verzió), és visszaadja a runtime.mcp.description, hogy az ügyfelek megértsék a kiszolgáló célját.

Stdio szállítás

A stdio transport hasznos helyi fejlesztési és CLI-alapú munkafolyamatokhoz. Megadhat egy szerepkört a role:<role-name> segítségével, amely alapértelmezés szerint anonymous lesz, ha nincs megadva. Ebben a módban a hitelesítés a szimulátorszolgáltatót használja, és a bejövő kérések legfeljebb 1 MB-ra korlátozódnak.

dab --mcp-stdio role:<role-name>

Az SQL MCP-kiszolgálót az MCP-felügyelővel tesztelheti.

Használati esetek

Íme néhány tipikus használati eset az SQL MCP Serverhez:

  • A copilotok vagy csevegőrobotok biztonságos CRUD-műveletek végrehajtásának engedélyezése
  • Belső automatizálások létrehozása SQL írása nélkül
  • Ügynöki képességek hozzáadása az adatbázis közvetlen felfedése nélkül

A séma biztonságossá tétele

A Data API Builder egy jól definiált entitás absztrakciós réteget használ, amely felsorolja a konfigurációban az API-val közzétett összes táblát, nézetet és tárolt eljárást. Ezzel a réteggel aliasneveket és oszlopokat adhat meg, leírhatja az objektumokat és paramétereket, és korlátozhatja a különböző szerepkörök számára elérhető mezőket.

Fontos

A Data API Builder (DAB) szerepkör-tudatos, és csak azokat az entitásokat és műveleteket teszi elérhetővé, amelyekhez az aktuális szerepkör hozzáférése engedélyezett.

Mivel az SQL MCP Server a Data API Builder szolgáltatása, ezt az absztrakciós réteget is használja. Ez a megközelítés megakadályozza, hogy a belső séma külső felhasználók számára legyen elérhetővé téve, és lehetővé teszi összetett, sőt több adatforrásból álló objektumcsaládok és kapcsolatok definiálását az API-rétegben.

Az NL2SQL megoldása

Az SQL MCP Server más megközelítést alkalmaz, mint a ma elérhető számos rövidlátó adatbázis-MCP-kiszolgáló. A legfontosabb példa az, hogy az SQL MCP Server szándékosan nem támogatja az NL2SQL-t.

Why? A modellek nem determinisztikusak, és az összetett lekérdezések a legnagyobb valószínűséggel okoznak finom hibákat. Ezek az összetett lekérdezések gyakran azok, amelyeket a felhasználók remélnek, hogy a mesterséges intelligenciák létre tudnak hozni, mégis ők azok, amelyek a legnagyobb ellenőrzést igénylik, ha nemdeterminista módon jönnek létre.

Megjegyzés:

A determinisztikus azt jelenti, hogy ugyanaz a bemenet mindig ugyanazt a kimenetet eredményezi. A hívások között nincs véletlenszerűség vagy eltérés, ami kiszámíthatóvá, tesztelhetővé és biztonságossá teszi az eredményeket.

Ehelyett az SQL MCP Server támogatja az NL2DAB-modellnek is nevezhető modellt. Ez a megközelítés a biztonságos Data API Builder entitás absztrakciós rétegét és a beépített DAB Query Buildert használja. A kombinációjuk pontos, jól formázott Transact-SQL-t (T-SQL-t) állít elő teljesen determinisztikus módon. Ez a megközelítés eltávolítja az NL2SQL-hez kapcsolódó kockázatot, többletterhelést és kellemetlenséget, miközben megőrzi az ügynök által létrehozott lekérdezések biztonságát és megbízhatóságát.

DDL támogatása

A DDL (Data Definition Language) az adatbázis nyelve, amellyel objektumokat, például táblákat és nézeteket hozhat létre és módosíthat. Az SQL MCP Server a DML (Adatkezelési nyelv) köré épül, amely a meglévő táblákban és nézetekben lévő adatok létrehozására, olvasására, frissítésére és törlésére használt adatbázisnyelv. A DML a tárolt eljárások végrehajtására is kiterjed. Ennek eredményeképpen az SQL MCP Server úgy lett kialakítva, hogy ne sémával, hanem adatokkal működjön. Ez a kialakítás igazodik az éles MCP-használati esetekhez, amikor az AI-ügynökök kritikus fontosságú vagy üzleti szempontból érzékeny rendszerekkel kommunikálnak.

Jótanács

A séma helyi fejlesztés során történő módosításához használhatja a Microsoft SQL Server (MSSQL) bővítményt a Visual Studio Code-ban, amely átfogó DDL-támogatást nyújt.

Az RBAC támogatása

Az SQL MCP Server ugyanazt a bevált szerepköralapú hozzáférés-vezérlési (RBAC) rendszert használja a Data API Builderben. A konfiguráció minden entitása meghatározza, hogy mely szerepkörök olvashatnak, hozhatnak létre, frissíthetnek vagy törölhetnek adatokat, és hogy mely mezők tartozhatnak vagy zárhatók ki ezekhez a szerepkörökhöz. Ezek a szabályok automatikusan érvényesek minden MCP-eszközre, így a biztonság a REST, a GraphQL és az MCP esetében is konzisztens marad, és nincs szükség további konfigurációra.

Fontos

A szerepköralapú korlátozások az ügynök-interakció minden lépésére érvényesek.

Gyorsítótárazási támogatás

Az SQL MCP Server automatikusan gyorsítótárazza az read_records eszköz eredményeit. A Data API Builder gyorsítótárazása globálisan engedélyezve van, és entitásonként konfigurálható. Az 1. és a 2. szintű gyorsítótárazás egyaránt segít csökkenteni az adatbázis terhelését, megelőzni a kérések áradatát, és támogatni a gyors indítási forgatókönyveket vízszintesen skálázott környezetekben.

Monitorozás támogatása

Az SQL MCP Server naplókat és telemetriát bocsát ki, amelyek lehetővé teszik a vállalatok számára a tevékenységek monitorozását és ellenőrzését egyetlen üvegablakból. Ez a képesség magában foglalja az Azure Log Analyticset, az Application Insightst és a tárolón belüli helyi fájlnaplókat.

Telemetria

Az SQL MCP Server teljes mértékben instrumentálva van OpenTelemetry (OTEL) spanokkal és tevékenységekkel. A rendszer minden műveletet nyomon követ, hogy a fejlesztők korrelálhassák a viselkedést az elosztott rendszerek között. További információ a Data API Builder natív Open Telemetria-támogatásáról .

Állapotellenőrzések

Az SQL MCP Server részletes állapot- és entitásellenőrzéseket biztosít a REST, a GraphQL és az MCP végpontok között. A Data API Builder Health segítségével a fejlesztők meghatározhatók a teljesítményre vonatkozó elvárások, küszöbértékeket állíthatnak be, és ellenőrizhetik, hogy az egyes végpontok a várt módon működnek-e.

Az SQL MCP Server konfigurálása

Az MCP a DAB konfigurációs fájljában van konfigurálva. Ha már rendelkezik működő Data API Builder-konfigurációval, az 1.7-es vagy újabb verzióra való frissítés automatikusan biztosít egy működő SQL MCP Servert további lépések nélkül.

Konfiguráció

Az MCP globálisan vagy entitásszinten is engedélyezhető. Ezzel a funkcióval kiválaszthatja, hogy mely entitások felszínre hozhatják az MCP-eszközöket, és amelyek továbbra is elérhetetlenek maradnak az ügynökök számára. Az MCP ugyanazokat a szabályokat követi, mint a REST és a GraphQL esetében, így a konfiguráció az engedélyek, előrejelzések és szabályzatok egyetlen igazságforrása marad.

Ha az MCP engedélyezve van, az SQL MCP Server automatikusan létrehozza az eszközfelületét a konfiguráció alapján. Az MCP-eszközöket nem definiálja manuálisan. A beépített dml-tools rendszer procedurálisan felderíti és elérhetővé teszi az entitásokat, ami a kis sémáktól a nagyon nagy adatbázisokig jól skálázható.

Első lépések

Első lépésként létre kell hozni a dab-config.json a motor vezérlésére. Ezt a feladatot manuálisan is elvégezheti, vagy használhatja a Data API Builder (DAB) parancssori felületét. A parancssori felület leegyszerűsíti a feladatot, így egyetlen paranccsal inicializálhatja a fájlt. A konfigurációs tulajdonságértékek használhatnak literális sztringeket, környezeti változókat vagy Azure Key Vault-titkos kulcsokat.

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

Az SQL MCP Server által elérhetővé tenni kívánt táblákat, nézeteket és tárolt eljárásokat úgy adhatja meg, hogy hozzáadja őket a konfigurációhoz. A parancssori felület segítségével egyszerűen felveheti őket, aliasokat rendelhet hozzájuk, konfigurálhatja az engedélyeiket, és igény szerint leképezheti az oszlopokat. A legfontosabb, hogy a description tulajdonsággal szemantikai részleteket is megadhat, hogy a nyelvi modellek jobban megértsék az adatokat.

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)

Futtatókörnyezet beállításai

Az SQL MCP Server alapértelmezés szerint engedélyezve van a Data API Builder konfigurációjában. A legtöbb esetben nincs szükség beállítások hozzáadására. A kiszolgáló automatikusan ugyanazokat az engedélyeket és biztonsági szabályokat követi, mint az API és az adatbázis. Csak akkor konfigurálja az MCP-t, ha szűkíteni vagy korlátozni szeretné az ügynökök által elvégezhető műveleteket.

"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
    }
  }
}

A parancssori felület lehetővé teszi minden tulajdonság egyedi vagy programozott beállítását is szkriptek használatával.

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

Miért érdemes letiltani az egyes eszközöket?

Előfordulhat, hogy a fejlesztők akkor is korlátozni szeretnének bizonyos műveleteket, ha a szerepkörök vagy entitásengedélyek engedélyezik őket. Az eszköz futásidejű letiltása biztosítja, hogy soha ne jelenjen meg az ügynökök számára. A törlési funkció kikapcsolása delete_record például teljesen elrejti a törlési képességet, függetlenül attól, hogy máshol van-e konfigurálva. Ez a forgatókönyv nem gyakori, de akkor hasznos, ha szigorú működési határokra van szükség.

Entitásbeállítások

Emellett nem kell engedélyeznie az MCP-t az egyes entitásokon. Az entitások automatikusan részt vesznek, hacsak ön nem korlátozza őket. A dml-tools tulajdonság létezik, így kizárhat egy entitást az MCP-ből, vagy szűkítheti annak képességeit, de nem kell semmit beállítania a normál használathoz. Az alapértelmezett értékek mindent kezelnek.

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

A DML-eszközök

Az SQL MCP Server hat olyan adatmanipulációs nyelvi (DML) eszközt tesz elérhetővé, amelyek lehetővé teszik, hogy az AI-ügynökök biztonságos, típusbiztos adatbázis-műveleteket hajtsanak végre: describe_entities, create_record, , read_records, update_recorddelete_recordés execute_entity. Ezek az eszközök kiszámítható CRUD felületet alkotnak, amely mindig tükrözi a konfigurációt, az engedélyeket és a sémát.

Minden eszköz tiszteletben tartja a szerepköralapú hozzáférés-vezérlést (RBAC), az entitásengedélyeket és a szabályzatokat. Az ügynökök soha nem kommunikálnak közvetlenül az adatbázissal – a biztonságos Data API builder absztrakciós rétegen keresztül működnek.