Delen via


Wat is SQL MCP Server?

Belangrijk

SQL Model Context Protocol (MCP) Server is beschikbaar in Data API Builder versie 1.7 en hoger.

SQL MCP Server biedt ontwikkelaars een eenvoudige, voorspelbare en veilige manier om AI-agents in hun gegevenswerkstromen te brengen. SQL MCP Server bereikt dit doel zonder de database bloot te stellen of te vertrouwen op fragiele parsering van natuurlijke taal. Door voort te bouwen op de entiteitabstractie, RBAC, caching en telemetrie van data-API's, levert de server een voor productie gereed oppervlak dat hetzelfde werkt in REST, GraphQL en MCP. U configureert het één keer en de engine doet de rest.

Diagram waarin wordt getoond hoe SQL MCP Server AI-agents verbindt met SQL-databases via de abstractielaag data-API builder.

Model Context Protocol (MCP)

Model Context Protocol (MCP) is een standaard waarmee wordt gedefinieerd hoe AI-agents externe hulpprogramma's detecteren en aanroepen. Een hulpprogramma is één bewerking, zoals het maken van een record of het lezen van gegevens. Elk hulpprogramma beschrijft de invoer, uitvoer en het gedrag. MCP biedt een voorspelbare manier voor agents om mogelijkheden te detecteren en te gebruiken.

MCP-server voor SQL

SQL MCP Server is de dynamische open source-engine van Microsoft voor agentische apps. U configureert het met een JSON-bestand dat het volgende definieert:

  • Verbinding maken met uw database
  • Welke tabellen, weergaven of opgeslagen procedures beschikbaar moeten worden gesteld
  • De machtigingen die van toepassing zijn op elk object

SQL MCP Server is opgenomen als onderdeel van Data API Builder (DAB) vanaf versie 1.7. Sql-bewerkingen worden beschikbaar gesteld als een kleine familie van MCP-hulpprogramma's , zodat agents kunnen communiceren met database-entiteiten via een beheerd contract. De server wordt zelf gehost, maar voor ontwikkelaars kan deze ook lokaal worden uitgevoerd via de DAB-opdrachtregel.

Aanbeveling

Data API Builder is open source en is gratis te gebruiken.

Details van MCP-protocol

SQL MCP Server implementeert MCP-protocolversie 2025-06-18 als een vaste standaardwaarde. Het ondersteunt twee transporten: streambare HTTP voor standaard hostingscenario's en stdio voor lokale of CLI-scenario's. Tijdens de initialisatie maakt de server hulpprogramma- en logboekregistratiemogelijkheden bekend, retourneert metagegevens van de server, zoals de naam en DAB-versie, en bevat het veld van waaruit clients het doel van de server begrijpen.

MCP Inspector

Voor OP HTTP gebaseerde MCP-eindpunten, bijvoorbeeld wanneer DAB wordt uitgevoerd op , start u MCP Inspector in de proxymodus door de eindpunt-URL rechtstreeks door te geven:

Start eerst data-API builder:

dab start

Start vervolgens MCP Inspector in een andere terminal met de eindpunt-URL:

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

Hiermee worden aanvragen via de Inspector-proxy gerouteerd en worden problemen met de CORS van de browser en sessieheaders voorkomen, zoals die zich in de directe modus kunnen voordoen.

Stdio transport

Het stdio-transport is handig voor lokale ontwikkeling en CLI-werkstromen. U kunt een rol opgeven met , die standaard op wordt gezet wanneer deze wordt weggelaten. In deze modus maakt verificatie gebruik van de simulatorprovider en zijn binnenkomende aanvragen beperkt tot 1 MB.

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

Gebruikssituaties

Hier volgen enkele typische gebruiksvoorbeelden voor SQL MCP Server:

  • Sta copilots en chatbots toe om veilige CRUD-bewerkingen uit te voeren
  • Interne automatisering bouwen zonder SQL te schrijven
  • Agentmogelijkheden toevoegen zonder de database rechtstreeks beschikbaar te maken

Het schema beveiligen

Data API Builder maakt gebruik van een goed gedefinieerde entiteitabstractielaag waarin alle tabellen, weergaven en opgeslagen procedures worden weergegeven via de API in de configuratie. Met deze laag kunt u aliasnamen en kolommen gebruiken, objecten en parameters beschrijven en beperken welke velden beschikbaar zijn voor verschillende rollen.

Belangrijk

Data API Builder (DAB) is rolbewust en toont alleen de entiteiten en bewerkingen waar de huidige rol toegang toe heeft.

Omdat de SQL MCP Server een functie van Data API Builder is, wordt deze abstractielaag ook gebruikt. Met deze aanpak voorkomt u dat het interne schema beschikbaar wordt gemaakt voor externe consumenten en kunt u complexe en zelfs kruisgegevensbronnen, families van objecten en relaties op de API-laag definiëren.

NL2SQL oplossen

SQL MCP Server heeft een andere benadering dan veel van de kortzichtige DATABASE MCP-servers die momenteel beschikbaar zijn. Een belangrijk voorbeeld is dat SQL MCP Server opzettelijk geen ondersteuning biedt voor NL2SQL.

Why? Modellen zijn niet deterministisch en complexe query's hebben de meeste kans om subtiele fouten te veroorzaken. Deze complexe query's zijn vaak de queries waarvan gebruikers hopen dat AI ze kan genereren, maar het zijn ook de queries die het meest moeten worden gecontroleerd wanneer ze op een niet-deterministische manier worden geproduceerd.

Opmerking

Deterministisch betekent dat dezelfde invoer altijd dezelfde uitvoer produceert. Er is geen willekeurigheid of variatie tussen aanroepen, waardoor resultaten voorspelbaar, testbaar en veilig zijn om te automatiseren.

In plaats daarvan ondersteunt SQL MCP Server wat een NL2DAB-model kan worden genoemd. Deze benadering maakt gebruik van de secure Data API Builder-entiteitabstractielaag en de ingebouwde DAB Query Builder. Samen produceren ze nauwkeurige, goed gevormde Transact-SQL (T-SQL) op een volledig deterministische manier. Deze aanpak verwijdert de risico's, overhead en overlast die verband houden met NL2SQL, terwijl de veiligheid en betrouwbaarheid voor door agents gegenereerde query's behouden blijven.

Ondersteuning voor DDL

DDL (Data Definition Language) is de databasetaal die wordt gebruikt om objecten zoals tabellen en weergaven te maken en te wijzigen. SQL MCP Server is gebouwd rond DML (Data Manipulation Language), de databasetaal die wordt gebruikt voor het maken, lezen, bijwerken en verwijderen van gegevens in bestaande tabellen en weergaven. DML behandelt ook de uitvoering van opgeslagen procedures. Als gevolg hiervan is SQL MCP Server ontworpen om te werken met gegevens, niet met een schema. Dit ontwerp is afgestemd op productie-MCP-gebruiksvoorbeelden waarbij AI-agents communiceren met bedrijfskritieke of bedrijfsgevoelige systemen.

Aanbeveling

Als u het schema tijdens de lokale ontwikkeling wilt wijzigen, kunt u de extensie Microsoft SQL Server (MSSQL) gebruiken in Visual Studio Code, die uitgebreide DDL-ondersteuning biedt.

Ondersteuning voor RBAC

SQL MCP Server profiteert van hetzelfde bewezen RBAC-systeem (op rollen gebaseerd toegangsbeheer) dat wordt gebruikt in data-API builder. Elke entiteit in uw configuratie definieert welke rollen gegevens kunnen lezen, maken, bijwerken of verwijderen en welke velden voor deze rollen zijn opgenomen of uitgesloten. Deze regels zijn automatisch van toepassing op elk MCP-hulpprogramma, zodat beveiliging consistent blijft in REST, GraphQL en MCP, zonder dat er extra configuratie is vereist.

Belangrijk

Beperkingen op basis van rollen zijn van toepassing bij elke stap van agentinteractie.

Ondersteuning voor opslaan in cache

SQL MCP Server slaat automatisch resultaten van het hulpprogramma in de cache op. Caching in Data API Builder is wereldwijd ingeschakeld en u kunt deze per entiteit configureren. Caching op niveau 1 en niveau 2 helpt bij het verminderen van de databasebelasting, het voorkomen van verzoekstempedes en het ondersteunen van warmstart-scenario's in horizontaal geschaalde omgevingen.

Ondersteuning voor bewaking

SQL MCP Server verzendt logboeken en telemetriegegevens waarmee ondernemingen activiteiten vanuit een enkel overzicht kunnen bewaken en valideren. Deze mogelijkheid omvat Azure Log Analytics, Application Insights en lokale bestandslogboeken in een container.

Telemetrie

SQL MCP Server is volledig geïnstrumenteerd met OpenTelemetry (OTEL) spans en activiteiten. Elke bewerking wordt getraceerd zodat ontwikkelaars gedrag in gedistribueerde systemen kunnen correleren. Meer informatie over de systeemeigen Open Telemetry-ondersteuning van Data API Builder.

Gezondheidscontroles

SQL MCP Server biedt gedetailleerde status- en entiteitscontroles voor REST-, GraphQL- en MCP-eindpunten. Met Data API Builder Health kunnen ontwikkelaars prestatie verwachtingen definiëren, drempelwaarden instellen en controleren of elk eindpunt werkt zoals verwacht.

SQL MCP Server configureren

De MCP is geconfigureerd in uw DAB-configuratiebestand. Als u al een werkende data-API builder-configuratie hebt, krijgt u automatisch een werkende SQL MCP-server met een upgrade naar versie 1.7 of hoger zonder extra stappen.

Configuratie

U kunt MCP globaal of op entiteitsniveau inschakelen. Met deze mogelijkheid kunt u kiezen welke entiteiten MCP-hulpprogramma's gebruiken en welke niet toegankelijk blijven voor agents. MCP volgt dezelfde regels die worden gebruikt voor REST en GraphQL, dus uw configuratie blijft de enige bron van waarheid voor machtigingen, projecties en beleid.

Wanneer MCP is ingeschakeld, genereert SQL MCP Server automatisch het hulpprogrammaoppervlak op basis van uw configuratie. U definieert MCP-hulpprogramma's niet handmatig. Het ingebouwde systeem detecteert en maakt entiteiten procedureel beschikbaar, wat goed kan worden geschaald van kleine schema's tot zeer grote databases.

Get started

Aan de slag betekent het maken van de besturing om de motor te controleren. U kunt deze taak handmatig uitvoeren of u kunt de DAB CLI (Data API Builder) gebruiken. De CLI vereenvoudigt de taak, zodat u het bestand kunt initialiseren met één opdracht. Waarden voor configuratie-eigenschappen kunnen letterlijke tekenreeksen, omgevingsvariabelen of Azure Key Vault geheimen gebruiken.

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

U kunt elke tabel, weergave of opgeslagen procedure opgeven die de SQL MCP-server beschikbaar moet maken door deze toe te voegen aan de configuratie. Met de CLI kunt u ze eenvoudig toevoegen, aliassen toewijzen, de machtigingen configureren en indien gewenst kolommen toewijzen. Het belangrijkste is dat u met de eigenschap semantische gegevens kunt opnemen om taalmodellen beter inzicht te geven in uw gegevens.

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)

Runtime-instellingen

De SQL MCP-server is standaard ingeschakeld in de configuratie van de Data API Builder. In de meeste gevallen hoeft u geen instellingen toe te voegen. De server volgt automatisch dezelfde machtigingen en beveiligingsregels als uw API en database. Configureer MCP alleen als u wilt beperken wat agents kunnen doen.

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

Met de CLI kunt u ook elke eigenschap afzonderlijk of programmatisch instellen via scripts.

dab configure --runtime.mcp.enabled true
dab configure --runtime.mcp.path "/mcp"
dab configure --runtime.mcp.dml-tools.describe-entities.enabled true
dab configure --runtime.mcp.dml-tools.create-record.enabled true
dab configure --runtime.mcp.dml-tools.read-records.enabled true
dab configure --runtime.mcp.dml-tools.update-record.enabled true
dab configure --runtime.mcp.dml-tools.delete-record.enabled true
dab configure --runtime.mcp.dml-tools.execute-entity.enabled true

Waarom afzonderlijke hulpprogramma's uitschakelen?

Ontwikkelaars willen mogelijk specifieke acties beperken, zelfs wanneer rollen of entiteitsmachtigingen deze toestaan. Als u een hulpprogramma uitschakelt op runtimeniveau, zorgt u ervoor dat het nooit wordt weergegeven bij agents. Als u bijvoorbeeld de functie voor verwijderen uitschakelt , wordt de mogelijkheid voor verwijderen volledig verborgen, ongeacht de configuratie elders. Dit scenario is ongebruikelijk, maar nuttig wanneer strikte operationele grenzen vereist zijn.

Entiteitsinstellingen

U hoeft MCP ook niet in te schakelen voor elke entiteit. Entiteiten nemen automatisch deel, tenzij u ervoor kiest om ze te beperken. De eigenschap bestaat zodat u een entiteit kunt uitsluiten van MCP of de mogelijkheden ervan kunt beperken, maar u hoeft niets in te stellen voor normaal gebruik. De standaardinstellingen verwerken alles.

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

De DML-hulpprogramma's

SQL MCP Server maakt zes DML-hulpprogramma's (Data Manipulation Language) beschikbaar waarmee AI-agents veilige databasebewerkingen kunnen uitvoeren: , , , , , en . Deze hulpprogramma's vormen een voorspelbaar CRUD-oppervlak dat altijd uw configuratie, machtigingen en schema weerspiegelt.

Elk hulpprogramma respecteert op rollen gebaseerd toegangsbeheer (RBAC), entiteitsmachtigingen en beleid. Agents communiceren nooit rechtstreeks met uw database. Ze werken via de beveiligde abstractielaag van data-API's.