apps/e2e/**. Each project runs the same Notes + Tasks apps but wires a different auth mode, transport policy, and consent experience so you can validate clients before touching your own code.
Projects at a glance
All commands assume
yarn install has already been run at the repo root. Replace the port if it conflicts with another service.Run a demo locally
1
Pick a project
Decide which auth mode to explore (
demo-e2e-public, demo-e2e-transparent, or demo-e2e-orchestrated).2
Configure environment
Transparent mode needs an upstream IdP. Export
IDP_PROVIDER_URL and IDP_EXPECTED_AUDIENCE before serving:3
Serve the project
Run
yarn nx serve <project> --port <port> and wait for the Listening on log. Requests are available at http://localhost:<port>.curl http://localhost:<port>/health returns ok when the server is ready.demo-e2e-public: instant anonymous access
apps/e2e/demo-e2e-public/src/main.ts
- Exercises the
auth.publicAccesspath without any login UI. - Uses framework defaults for transports (Streamable HTTP + SSE + JSON), suitable for smoke tests.
demo-e2e-orchestrated: built-in OAuth server
apps/e2e/demo-e2e-orchestrated/src/main.ts
- Spins up the full OAuth 2.1 stack (authorization code + PKCE) entirely inside FrontMCP.
- Shows the consent UI grouping tools by app, plus incremental auth defaults.
- Uses the same transport defaults documented in Transport controls so you can compare behavior with production builds.
demo-e2e-transparent: pass-through tokens
apps/e2e/demo-e2e-transparent/src/main.ts
- Validates upstream JWTs while reusing the same consent UI and transport policies.
- Demonstrates how to forward-declare an IdP without shipping secrets—set
IDP_PROVIDER_URL/IDP_EXPECTED_AUDIENCEper environment. - Keeps anonymous access off so every tool call requires a verified token.
If your IdP exposes a JWKS file, frontload the URL in
providerConfig.jwksUri to skip metadata discovery during tests.Test with @frontmcp/testing
You can point the Jest fixtures at any demo by spinning it up through the built-inTestServer helper:
demo-public.e2e.ts
What to read next
Authentication Modes
Understand when to reach for public, transparent, or orchestrated auth.
Transport controls
Dive deeper into Streamable, stateful, and stateless HTTP settings.