Live demoWarden — the governed front door for AI tool access

One gateway between AI clients and your internal tools: SSO login, role-based policy, argument validation, response redaction, and a hash-chained audit trail on every call. This instance is yours to break — everything behind it is synthetic.

1Click through the admin console

Sign in with a throwaway demo identity — no signup, one click. You get the write tier: browse live policy, the per-role tool catalog, upstream health, and the live audit tail; stage and apply a policy edit if you like. The hourly reset puts everything back.

Open the admin console →

2Connect your own MCP client

Warden speaks standard MCP over HTTP with OAuth discovery (RFC 9728) — any compliant client can register itself and log in through the demo IdP.

claude mcp add --transport http warden-demo https://demo.warden.enthus.de/mcp

Then start a conversation and ask for open demo issues — the OAuth window opens on first use.

Settings → Connectors → Add custom connector, then paste:

https://demo.warden.enthus.de/mcp

Works the same on claude.ai. The demo sign-in opens in a popup on first use.

Add to .vscode/mcp.json (Copilot agent mode picks it up):

{
  "servers": {
    "warden-demo": {
      "type": "http",
      "url": "https://demo.warden.enthus.de/mcp"
    }
  }
}

Add to ~/.cursor/mcp.json (or .cursor/mcp.json per project):

{
  "mcpServers": {
    "warden-demo": {
      "url": "https://demo.warden.enthus.de/mcp"
    }
  }
}

Cursor opens the OAuth browser flow on first use.

Add to ~/.gemini/settings.json:

{
  "mcpServers": {
    "warden-demo": {
      "httpUrl": "https://demo.warden.enthus.de/mcp"
    }
  }
}
npx @modelcontextprotocol/inspector
# connect to: https://demo.warden.enthus.de/mcp

No install, runs in your browser — the quickest way to poke the raw MCP surface.

Local clients work out of the box — loopback redirect URIs are allowed by policy for exactly this.

Tools you'll see once connected:

demojira · create_issuedemojira · list_issues demojira · get_issuedemojira · add_comment demojira · search_issuesn8ndocs · search_docs n8ndocs · get_page

3Watch governance happen

  1. Call a demojira tool — your first call is denied with upstream_auth_required and a login link: per-user upstream OAuth, brokered by Warden. Open the link, sign in, retry — it works.
  2. Create an issue, then open the console's Audit page: the denial and the successful call are both there, attributed to your throwaway identity, levels and outcomes included — the in-memory tail of the hash-chained audit log.
  3. Try to cheat: pass an argument the tool schema doesn't declare, or page beyond the response ceiling — the policy engine answers, not the upstream.

What you're looking at

A single Go binary in front of federated MCP upstreams. Every call passes a ten-stage governed pipeline — audit, response ceiling, timeouts, authorization, scope injection, pagination defaults, schema validation, redaction, normalization, concurrency ceiling — before an upstream ever sees it. In production it fronts Entra SSO with group-based roles; the demo swaps in a public IdP that mints throwaway identities.