Mi az SQL MCP Server?

Fontos

Az SQL Model Context Protocol (MCP) server a Data API Builder 1.7-es és újabb verziójában érhető el. A legújabb képességek és hibajavítások érdekében használja a legújabb 2.0-s kiadást.

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 kiszolgáló a Data API Builder entitás-absztrakciójára, RBAC-jára, cache-ére és telemetriára épít, hogy éles használatra kész felületet kínáljon, amely mind a REST, mind a GraphQL, mind az MCP esetében ugyanúgy működik. 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 ingyenesen 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ó ismerteti az eszköztár és naplózási képességeket, visszaadja a kiszolgáló metaadatait, például a nevét és a DAB-verzióját, valamint tartalmazza a instructions mezőt a runtime.mcp.description, hogy az ügyfelek megértsék a kiszolgáló célját.

MCP-felügyelő

HTTP-alapú MCP-végpontok esetén, például ha a DAB a következő helyen http://localhost:5000/mcpfut, indítsa el az MCP Inspectort proxy módban a végpont URL-címének közvetlen átadásával:

Először indítsa el a Data API Buildert:

dab start

Ezután egy másik terminálban indítsa el az MCP Inspectort a végpont URL-címével:

npx -y @modelcontextprotocol/inspector http://localhost:5000/mcp

Ez a kéréseket az Inspector-proxyn keresztül irányítja át, és segít elkerülni a böngésző CORS- és munkamenetfejléc-problémáit, mint például Mcp-Session-Id, amelyek a közvetlen módban fordulhatnak elő.

Stdio szállítás

A stdio-átvitel hasznos helyi fejlesztési és CLI-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, a bejövő kérések pedig 1 MB-ra korlátozódnak.

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

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. Ezek együttesen pontosan és jól formázott Transact-SQL (T-SQL) kódot generálnak 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 Visual Studio Code, 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 a Azure Log Analytics, a Application Insights é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ékei használhatnak literális sztringeket, környezeti változókat vagy Azure Key Vault titkos kódokat.

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 legtöbb esetben nem kell mcp-beállításokat hozzáadnia. 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é, hogy az ügynökök milyen műveleteket hajthatnak végre – például a delete-record letiltásával az adatvesztés megelőzése érdekében, vagy a aggregate-records letiltásával nagy táblákon.

A teljes futásidejű konfigurációs referencia – beleértve az eszközenkénti kapcsolókat, a lekérdezési időtúllépéseket és a parancssori felületi parancsokat – lásd: Futtatókörnyezet konfigurációja.

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 mcp 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.

Objektumformátum használata entitásszintű MCP-konfigurációhoz:

"entities": {
  "Products": {
    "mcp": {
      "dml-tools": true
    }
  },
  "SensitiveData": {
    "mcp": {
      "dml-tools": false
    }
  }
}

Tárolt eljárás entitások esetén engedélyezheti custom-tool az eljárás névvel ellátott MCP-eszközként való regisztrálását is:

"entities": {
  "GetBookById": {
    "source": {
      "type": "stored-procedure",
      "object": "dbo.get_book_by_id"
    },
    "mcp": {
      "custom-tool": true
    }
  }
}

Amikor custom-tooltrue megfelel, az SQL MCP Server a tárolt eljárást névvel ellátott eszközként regisztrálja tools/list és tools/call által, lehetővé téve, hogy az ügynökök közvetlenül nevük alapján felderíthessék és meghívhassák azt. A custom-tool tulajdonság csak tárolt eljárás entitásokra érvényes.

Megjegyzés:

Az ebben a szakaszban ismertetett SQL MCP Server-funkciók a Data API Builder 2.0-s és újabb verzióiban érhetők el. További információ: A 2.0-s verzió újdonságai.

A DML-eszközök

Az SQL MCP Server hét 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, execute_entityés aggregate_records. 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.

Egyéni MCP-eszközök

A beépített DML-eszközök mellett az SQL MCP Server a tárolt eljárásokból származó egyéni eszközöket is támogatja. Állítsa be a(z) "custom-tool": true elemet egy tárolteljárás-entitáson, hogy elnevezett MCP-eszközként regisztrálja.

OpenTelemetry nyomkövetés az MCP-hez

Az MCP eszköz végrehajtása teljes mértékben OpenTelemetry (OTEL) tracerekkel van instrumentálva. Minden MCP-eszközhívás nyomkövetési adatokat hoz létre a REST- és GraphQL-műveletek mellett, így egységes megfigyelhetőség érhető el minden API-felületen. További információ az OpenTelemetry-nyomkövetésről.

Megjegyzés:

Az ebben a szakaszban ismertetett SQL MCP Server-funkciók a Data API Builder 2.0-s és újabb verzióiban érhetők el. További információ: A 2.0-s verzió újdonságai.

Használat helyi modellekkel

Az SQL MCP Server bármilyen MCP-kompatibilis ügyféllel működik, beleértve az Ollama vagy hasonló eszközök által kiszolgált helyi LLM-eket is. A beállítási utasításokért tekintse meg a Python példarendszert, a séma-előinjektálást és a kis modellekre vonatkozó útmutatást: Az SQL MCP Server használata helyi modellekkel.