Der SQL MCP Server in Microsofts Data API builder prüft Tokens von Entra ID. Er stellt keine aus, und ein Custom Connector in claude.ai braucht einen Server, der das kann. Also: nicht direkt. Hier steht, was dazwischen sitzen muss, was auf diesem Weg derzeit nicht funktioniert, und was Sie auch dann nicht haben, wenn er funktioniert.
Was der SQL MCP Server kann, und was er Ihnen überlässt
Data API builder (DAB) ist ein Resource Server. Seine Authentifizierungs-Dokumentation beschreibt eingehende Authentifizierung als genau eine Sache: SQL MCP Server can validate JSON Web Tokens (JWTs) issued by an OAuth provider (for example, Microsoft Entra ID). The client includes the token with each request, and SQL MCP Server validates it.
Für alles andere schickt sie Sie weiter: If your MCP client requires API keys or another non-JWT scheme, front SQL MCP Server with a gateway or proxy.
Ein Remote Connector in claude.ai erwartet die andere Hälfte dieser Abmachung. Bevor der Connect-Knopf jemanden auf eine Anmeldeseite schicken kann, muss Claude einen Authorization Server finden und sich dort als Client registrieren. Drei Bausteine müssen existieren:
- Protected Resource Metadata (RFC 9728). Ihre 401-Antwort muss Claude sagen, wo der Authorization Server steht. Ohne sie probiert Claude zwei Well-known-Pfade, findet nichts und meldet, der Server sei nicht erreichbar.
- Ein Weg, auf dem Claude sich als Client registriert. Claude nutzt Dynamic Client Registration oder ein Client ID Metadata Document. Entra ID unterstützt beides nicht. Also muss entweder etwas vor Entra das übernehmen, oder ein Administrator trägt eine vorab registrierte Client-ID in das Connector-Formular ein.
- Ein Authorization- und ein Token-Endpunkt, die PKCE mit S256 sprechen und aus Anthropics Infrastruktur erreichbar sind.
DAB liefert keinen der drei, und seine Dokumentation behauptet auch nichts anderes. Anthropics Seite des Vertrags steht auf einer Seite, Authentication for connectors, inklusive der Entra-Fußnote: Die URL des MCP-Servers muss als Application ID URI registriert sein, auf einer Domain, die Ihr Tenant verifiziert hat, sonst scheitert die Token-Anfrage.
Der Microsoft-Weg: API Management davor
Microsofts eigene Antwort ist Azure API Management (APIM). Der Beitrag Building Claude-Ready Entra ID-Protected MCP Servers with Azure API Management vom Mai 2025 beschreibt ihn: APIM sitzt zwischen Claude und dem MCP-Server, führt das OAuth-Gespräch mit Claude und prüft die Entra-Tokens auf dem Weg durch. Die aktuelle APIM-Dokumentation zur Absicherung von MCP-Servern behandelt die Token-Prüfung per Policy und verweist für Protected Resource Metadata und Client-Autorisierung auf Beispiel-Repositories. Es ist ein unterstütztes Muster. Es besteht aus Policies und Samples, nicht aus einem Häkchen.
Zwei Dinge kommen dazu. Claude verbindet sich aus Anthropics Infrastruktur, nicht vom Laptop des Nutzers, also muss der Endpunkt aus Anthropics veröffentlichtem Adressbereich erreichbar sein. Und liegt die Datenbank on-premises, muss etwas die Anfrage von APIM in Ihr Netz tragen: ein Tunnel, ein VPN oder ein selbst betriebenes Gateway.
Die Stückliste, also:
- Data API builder mit aktiviertem SQL MCP Server
- Azure API Management, mit konfigurierten und gepflegten OAuth-Policies
- Eine Entra-App-Registrierung, mit der Server-URL als Application ID URI auf einer verifizierten Domain
- Ein öffentlicher Endpunkt, erreichbar aus Anthropics Adressbereich
- Bei einer On-Premises-Datenbank ein Tunnel oder ein selbst betriebenes Gateway in Ihr Netz
Fünf Dinge, die jemand betreibt. Keines davon ist in einem Azure-Haus exotisch. Alle gehören ab dann Ihnen.
Der Teil, der derzeit nicht funktioniert
Seit dem Frühsommer 2026 scheitern Custom Connectors, die Claude an Entra ID weiterreichen, auf eine bestimmte Weise. Die Anmeldung klappt. Entra protokolliert einen erfolgreichen Sign-in. Danach ruft Claude den Token-Endpunkt nie auf, um den Authorization Code einzutauschen, und der MCP-Server sieht Anfragen ohne Authorization-Header. Der Nutzer bekommt die Meldung, die Autorisierung beim MCP-Server sei fehlgeschlagen.
Zwei öffentliche Issues dokumentieren das. Issue #506, eröffnet am 29. Juni 2026, betrifft einen selbst gehosteten Server mit Single-Tenant-Entra-App, Confidential Client, PKCE und spezifikationskonformen Metadaten. Issue #632, eröffnet am 16. Juli 2026, betrifft Microsofts eigene Server: Business Central, Power BI und Fabric, Microsoft 365. Dieselben Server verbinden sich aus Claude Code, aus Claude Desktop über eine lokale Bridge und aus ChatGPT. Beide Issues sind zum Zeitpunkt dieses Textes offen, und einige Public-Client-Konfigurationen funktionieren laut den Berichten, während identisch aussehende scheitern.
Ob der APIM-Weg betroffen ist, hängt davon ab, mit wem Claude am Ende spricht. Zeigen die Metadaten Claude direkt auf Entra, gelten die Berichte oben. Tritt APIM selbst als Authorization Server auf und vergibt eigene Client-Registrierungen, sind Sie auf einem anderen Pfad, und Sie sollten ihn Ende zu Ende testen, bevor Sie ein Team darauf festlegen. Nichts davon ist ein Microsoft-Problem. Der Fehler liegt bei Anthropic, und jeder Connector vor Entra hängt an derselben Korrektur, unserer eingeschlossen. Werden die Issues geschlossen, wird aus diesem Abschnitt ein Satz.
Was Sie trotzdem nicht haben werden
Nehmen wir an, alles funktioniert. APIM steht, der Token-Austausch ist repariert, eine Controllerin meldet sich in Claude mit ihrem Entra-Konto an und fragt den SQL MCP Server nach überfälligen Rechnungen. Drei Dinge fehlen weiterhin, und sie sind der Grund für diesen Artikel.
Feldmaskierung
Das Berechtigungsmodell von DAB kann Spalten pro Rolle ein- oder ausblenden. Die Übersicht zur Autorisierung sagt es schlicht: You can configure which fields should be accessible for an action.
Das ist ein Schalter. Eine Kundennummer ist entweder in der Antwort oder nicht. Es gibt keinen Weg, die letzten vier Stellen zu zeigen, eine E-Mail-Adresse zu hashen oder einen Namen zu pseudonymisieren, damit das Modell danach gruppieren kann, ohne ihn zu lesen. Muss ein Feld gleichzeitig nutzbar und geschützt sein, hat DAB dafür keine Einstellung.
Wen die Datenbank sieht
DAB verbindet sich mit SQL Server über einen Connection String: ein SQL-Login oder eine Managed Identity. Die Person in Claude kommt nie als sie selbst an der Datenbank an. DAB kann die Claims des Tokens per Session Context in die Sitzung durchreichen, und Ihre eigenen Row-Level-Security-Policies können sie lesen. Das ist real, und es ist T-SQL, das Sie pro Tabelle schreiben und pflegen. Der Verbindungs-Principal im Audit der Datenbank bleibt so oder so die Dienstidentität. Für den DBA, der das Log liest, ist jeder Mitarbeiter derselbe Aufrufer.
Audit
Was es gibt, ist Telemetrie. Jeder Tool-Aufruf erzeugt einen OpenTelemetry-Span, exportierbar nach Log Analytics oder Application Insights, mit den Tags user.role, action.type und der Datenquelle. Was es nicht gibt, ist ein Audit-Log, das die Frage beantwortet: „Wer hat wann welche Frage gegen welche Tabelle gestellt?" Die Spans tragen eine Rolle, keine Person. Stellt die Compliance diese Frage, bauen Sie den Bericht aus Traces, sofern die Traces noch da sind.
Die Rechnung
Rechnen Sie zusammen. Für SSO in Claude an einem SQL Server betreiben Sie drei Azure-Komponenten, sitzen einen offenen Fehler bei Anthropic aus oder umgehen ihn, und haben am Ende Ausblenden statt Maskierung, ein Dienstkonto statt einer Person und Telemetrie statt eines Audit-Logs. Das ist „Sie könnten das selbst bauen. Danach betreiben Sie es", mit Microsoft-Teilen statt Open Source.
Wann der Microsoft-Weg richtig ist
Nehmen Sie ihn, wenn Sie ein Azure-Haus mit APIM im Produktivbetrieb sind, eine Datenbank anzubinden haben, keine personenbezogenen Daten in den Tabellen liegen oder keine Maskierungspflicht darauf, und Ihr Team warten kann, bis das Token-Issue geschlossen ist. Dann ist DAB kostenlos, produktionsreif und die richtige Wahl, und genau das sagen wir auch auf unserer Startseite.
Schauen Sie weiter, sobald personenbezogene Daten in diesen Tabellen liegen, mehrere Rollen dieselben Daten unterschiedlich sehen sollen oder jemand ein Audit-Log pro Nutzer verlangt hat. Genau diese drei Anforderungen liefert der Stack oben nicht, und keine APIM-Konfiguration fügt sie hinzu. Loopthink setzt vor denselben SQL MCP Server einen Connector, den Claude und ChatGPT so akzeptieren, wie er ist, führt jeden Aufruf unter der Person aus, die gefragt hat, maskiert Felder, bevor die Antwort Ihr Netz verlässt, und protokolliert jeden Aufruf unter ihrem Namen; die Mechanik steht im Whitepaper.
Und falls in Ihrem Unternehmen noch niemand etwas angebunden hat, lesen Sie den Begleitartikel darüber, was in der Zwischenzeit passiert: Ihr ERP ist längst mit ChatGPT verbunden, per CSV-Export.