MCP server for enterprise authentication and authorization — JWT validation, OIDC token inspection, OAuth 2.0 introspection, role-based access control
Server provides 8 authentication/authorization tools with reasonable naming (verb_noun pattern) and German descriptions. However, critical gaps exist: parameter descriptions are present but often generic; output schemas are not formally documented; error handling lacks recovery guidance; no tool annotations (readOnlyHint, destructiveHint); and parameter constraints (enums, ranges) are missing. Tools are READ_ONLY by risk classification, which is correct, but the server does not leverage tool annotations to signal this to clients. Descriptions average ~150 chars (within baseline 194), but lack actionable context for LLM selection. No pagination support despite tools that could return large results (e.g., list_token_scopes). Schemas are inferred from code rather than explicitly registered with JSON Schema constraints.
Prueft ob ein JWT-Token die benoetigten Scopes und Rollen besitzt. required_scopes: kommagetrennte Liste, z.B. 'read:users,write:data'. required_roles: kommagetrennte Liste, z.B. 'admin,manager'.
JWT-Token dekodieren (ohne Signaturvalidierung). Gibt Header, Payload und Metadaten zurueck. Nuetzlich fuer schnelle Inspektion von Token-Inhalten.
OIDC Discovery Dokument abrufen (/.well-known/openid-configuration). Gibt alle wichtigen Endpoints (authorization, token, userinfo, jwks_uri) zurueck. Beispiel issuer_url: https://accounts.google.com oder https://login.microsoftonline.com/tenant-id
Extrahiert Benutzerrollen und Identitaetsinformationen aus einem JWT. Unterstuetzt Standard-Claims und Keycloak realm_access/resource_access.
Listet alle Scopes, Rollen und Berechtigungen aus einem JWT-Token auf. Erkennt automatisch den Identity Provider (Azure AD, Okta, Auth0, Keycloak).
No formal output schemas documented. Tools return dicts with varying structures (e.g., decode_jwt returns header, payload, algorithm, is_expired; validate_jwt returns valid, signature_verified, payload). LLMs cannot plan downstream calls or extract fields reliably without documented return types.
Parameter descriptions lack actionable constraints. E.g., 'algorithms' param says 'Comma-separated list of allowed algorithms (default: HS256)' but does not enumerate valid values (HS256, HS384, HS512, RS256, RS384, RS512, ES256, etc.). LLMs cannot validate input without explicit enums.
Error responses lack recovery guidance. E.g., 'Token abgelaufen (ExpiredSignatureError)' tells the LLM the token expired but not what to do next. Should include: 'Token expired. Request a new token from the authorization server or refresh using the refresh_token endpoint.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
OAuth 2.0 Token-Introspection (RFC 7662). introspection_url: Endpoint des Authorization Servers (optional). Ohne URL: lokale JWT-Dekodierung als Fallback.
JWT-Token validieren — Signatur, Ablauf und Claims pruefen. secret: HMAC-Secret oder leer fuer keine Signaturpruefung. algorithms: kommagetrennte Liste, z.B. 'HS256,RS256'. audience: erwartete Audience (optional). issuer: erwarteter Issuer (optional).
OIDC-spezifische Claims validieren (OpenID Connect Core 1.0). Prueft: iss, sub, aud, exp, iat, nonce. Erkennt fehlende Pflicht-Claims und Audience/Issuer-Mismatches.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All 8 tools are READ_ONLY, but this is not signaled via MCP tool annotations. Clients cannot optimize caching or retry logic without explicit hints.
list_token_scopes and get_oidc_discovery could return large results but lack pagination (limit, offset, next_cursor). No documented result caps. LLMs may receive unbounded lists, exhausting context windows.