You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 45dce04
Browse filesBrowse the repository at this point in the historyBrowse files
Let any MCP client connect; drop IdP-specific role and group mapping
- Remove AUTH_ALLOWED_REDIRECT_URIS: any client can register; only redirect
URIs unsafe for OAuth are refused (non-loopback http, javascript:, data:,
file:, user info, fragments); the consent page shows every new client
- Remove OIDC_ROLE_CLAIM and OIDC_GROUPS_CLAIM, AppUser.Roles/Groups and the
role-based admin policy; copy any IdP claim with OIDC_TOKEN_CLAIMS and use
RequireClaim or AppUser.ClaimValues
- Tests and docs updated
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,14 +62,14 @@ Add the server in Claude (Settings → Connectors → Add custom connector) and
62
62
| Area | Included |
63
63
| --- | --- |
64
64
|**MCP**| Tools, resources and prompts discovered from attributes; stateless Streamable HTTP (scales horizontally); annotations; structured content with output schemas |
65
-
|**Auth**| OIDC proxy for any OIDC provider (Entra ID, Google, Auth0, Okta, Keycloak, Zitadel, ...): DCR, PKCE, consent, ID token + userinfo merged into one `AppUser`. Or the `jwt` provider, or your own `IAuthProvider`. `[Authorize]` per item, scope and role policies|
65
+
|**Auth**| OIDC proxy for any OIDC provider (Entra ID, Google, Auth0, Okta, Keycloak, Zitadel, ...): DCR, PKCE, consent, ID token + userinfo merged into one `AppUser`. **Any MCP client can connect**, no allow-list. Or the `jwt` provider, or your own `IAuthProvider`. `[Authorize]` per item, scope policies, any IdP claim when you need it|
66
66
|**MCP Apps**|`ui/` workspace (React 19, Vite, Tailwind 4, ext-apps 2): one bundle per view, host theme, tool calls from the view, zod-validated outputs, sandbox preview, per-entry builds |
67
67
|**Validation**| Data annotations and `IValidatableObject` on every tool and prompt call, nested objects included |
68
68
|**Integrations**| Typed API clients from one line of registration; retries, circuit breaker, timeouts; `bearer`, `api_key`, `basic`, `client_credentials`, or the signed-in user's token |
69
69
|**Redis**| Optional, for scale-out or your own caching: one shared StackExchange.Redis connection, `REDIS_URL` as URL or connection string (cluster, Sentinel, TLS), and one `IRedisConnectionFactory` to plug in any vendor (Azure Entra ID, AWS, GCP, certificates). Health-checked |
70
70
|**Settings**|`.env` plus typed settings classes validated at startup, every problem listed by variable name |
71
71
|**Dev loop**|`dotnet watch` with hot reload, `pnpm run watch` for views, dual-stack `localhost`, startup URL in the log |
72
-
|**Tests**| Unit, integration (a real MCP client against the in-memory server, including the full OAuth flow against a fake IdP) and architecture rules: 80 tests out of the box |
72
+
|**Tests**| Unit, integration (a real MCP client against the in-memory server, including the full OAuth flow against a fake IdP) and architecture rules: 92 tests out of the box |
@@ -273,7 +275,7 @@ HTTP. In production, terminate TLS at a reverse proxy and set `APP_URL` to the p
273
275
|`MCP_AUTH_MODE=none` is refused | Only allowed with `APP_ENV=dev`|
274
276
| Login fails with `IDX20803: Unable to obtain configuration`| Open `OIDC_DISCOVERY_URL` in a browser: it must return JSON (note the dot in `/.well-known/`) |
275
277
| Identity provider says the redirect URI is invalid | Register `${APP_URL}/oauth/callback` exactly, not `APP_URL` alone |
276
-
| A client can't register (`invalid_redirect_uri`) |Add its redirect URI pattern to `AUTH_ALLOWED_REDIRECT_URIS`|
278
+
| A client can't register (`invalid_redirect_uri`) |Its redirect URI is unsafe: it must be `https`, `http` on localhost, or an app scheme|
277
279
| Users must sign in again after a restart |`AUTH_STORE=memory` loses sign-ins: use `file` (default) or `redis`; in Docker keep the `/data` volume |
278
280
|`.env` changes have no effect under `dotnet watch`| Settings are read at startup: press Ctrl+R in the watch terminal |
279
281
|`UI bundle not found at …/ui_dist/<entry>.html`|`cd ui && pnpm install && pnpm run build`|
0 commit comments