MCP Server
Der primedocs MCP Server (PrimeDocs.Web.Mcp) ist eine eigenständige ASP.NET-Core-Anwendung (.NET 10), die primedocs-Funktionen über das Model Context Protocol für KI-Agenten bereitstellt. Er wird getrennt vom übrigen primedocs-Server betrieben.
Voraussetzungen
- .NET 10 Windows Hosting Bundle (wie beim primedocs-Server).
- Eine erreichbare primedocs-IdentityServer-Instanz für die OAuth-Autorisierung.
- Eine
primedocs.config(dieselbe wie beim primedocs-Server bzw. eine darauf verweisende), siehe primedocs.config.
Installation
Der MCP Server ist Bestandteil des Server-Installationspakets und wird als eigene ASP.NET-Core-Anwendung im IIS betrieben (In-Process-Hosting über das ASP.NET Core Module).
-
On-Premises: Das Installationsskript
Install.ps1legt die MCP-Anwendung zusammen mit den übrigen Serverapplikationen als IIS-Anwendung unter dem Pfad/mcpan (siehe Installation primedocs-Server). In der von der Installation erzeugtenprimedocs.configist der zugehörigeapps-Eintrag bereits enthalten:<apps>...<add id="[GUID]" name="Mcp" url="https://your-url.local/mcp/" logFilePath="Mcp\" type="Mcp" /></apps> -
Azure: Die MCP-Anwendung wird über dasselbe
ZipDeploywie der übrige Server ausgerollt (siehe Konfiguration abschliessen). Damit der Pfad/mcperreichbar ist, muss er als Path Mapping vom Typ Application angelegt sein (siehe App Service › Path Mappings).
Konfiguration
Der MCP Server liest seine Einstellungen aus der primedocs.config (dieselbe wie beim primedocs-Server). Daraus stammen insbesondere:
- die IdentityServer-URL (Authority für JWT-Bearer und Token-Introspection),
- die MCP-Basis-URL aus dem
apps-Eintrag vom TypMcp, - das Attribut
mcpTemplateTagNameauf dem<openAi>-Element — erforderlich, damit die Vorlagensuche funktioniert:GetAllTemplatesundFindTemplatesgeben nur Vorlagen mit diesem Tag zurück (siehe primedocs AI (Preview)), - optionale Werte wie das Introspection-Secret und eine Proxy-Konfiguration.
Client für MCP-Zugriff registrieren
Damit sich MCP-Clients (z. B. Microsoft 365 Copilot oder Copilot Studio) über OAuth 2.0 anmelden können, muss in der primedocs.config ein Client mit userAuthType="FromLoginForMcp" hinterlegt sein. Als id kann eine beliebige GUID verwendet werden:
<primedocs>
...
<clients>
<add id="[GUID]" oidcClientId="McpClient" userAuthType="FromLoginForMcp" />
</clients>
...
</primedocs>
Bei der dynamischen Client-Registrierung (POST /oauth/register) gibt der Server die oidcClientId dieses Eintrags als client_id zurück. Ohne einen solchen Client schlägt die Registrierung mit einem Fehler fehl.
Die Datasource wird pro Anfrage über das URL-Segment bestimmt (siehe Endpunkt).
Endpunkt und Authentifizierung
Der MCP-Endpunkt ist mandantenspezifisch:
https://<mcp-host>/{dataSourceId}
Der Server ist eine über OAuth 2.0 geschützte Ressource. Clients ermitteln die Autorisierungsparameter über die Discovery-Endpunkte:
GET /.well-known/oauth-protected-resource
GET /.well-known/oauth-authorization-server
Bei einem 401 liefert der Server einen WWW-Authenticate-Header mit der resource_metadata-URL. Zugriffstoken werden gegen den IdentityServer per Introspection validiert; erforderlich ist der MCP-Scope.
Funktionstest
Zur Überprüfung die Basis-URL des MCP Servers (https://your-url.local/mcp/) im Browser aufrufen: Es wird eine Landing Page mit Server-Informationen und dem Tool-Katalog angezeigt.
Zusätzlich sollten die Discovery-Endpunkte ohne Authentifizierung ein JSON-Dokument zurückgeben:
https://your-url.local/mcp/.well-known/oauth-protected-resource
https://your-url.local/mcp/.well-known/oauth-authorization-server
Details zu den bereitgestellten Tools (GetTemplateStructure, GenerateDocument, GetAllTemplates, FindTemplates) beschreibt die Schnittstellenseite MCP.