Open Source · v0.1.0

MCP auth.
Working.
In 5 minutes.

Self-hosted OAuth 2.1 authorization server for the Model Context Protocol. One Go binary. Every RFC the spec requires. Deploy alongside your MCP server.

8 RFCs implemented
<5min to deploy
1 binary, zero deps
bash
$ docker run -p 8080:8080 authgent/authgent:latest
Authgent v0.1.0 · MCP Auth Server
────────────────────────────────────
✓ Database connected (SQLite)
✓ ES256 signing key loaded
✓ OAuth 2.1 AS ready on :8080
Endpoints:
/.well-known/oauth-authorization-server
/.well-known/jwks.json (ES256)
/oauth/authorize
/oauth/token
/oauth/register (DCR)
/oauth/revoke
$ curl -s localhost:8080/.well-known/oauth-authorization-server | jq .
{
"issuer": "https://auth.yourcompany.com",
"authorization_endpoint": "…/oauth/authorize",
"token_endpoint": "…/oauth/token",
"code_challenge_methods_supported": ["S256"]
}

MCP auth is genuinely broken.

Most MCP servers ship without auth

The MCP specification requires OAuth 2.1. In practice, most servers omit it entirely — exposing tools and data to any caller.

OAuth 2.1 is expensive to implement

PKCE, DCR, protected resource metadata, token lifecycle, key rotation — implementing the full spec correctly takes significant engineering time.

🔒

No self-hosted option exists

Auth0, WorkOS, Descope — all cloud-only. Financial services, healthcare, and defense cannot route tokens through third-party infrastructure.

Four steps. Five minutes.

01

Deploy the binary

Single Docker image or Go binary. PostgreSQL or SQLite. No external dependencies. Starts in under 5 seconds.

02

Point your MCP server at it

One config line: authorization_server: https://auth.you.com. Authgent serves all required OAuth AS metadata. MCP clients discover it automatically via RFC 8414.

03

MCP clients authenticate

Claude, Cursor, GPT, any MCP client runs Authorization Code + PKCE. Dynamic Client Registration — no manual setup per client. Consent screen included.

04

Validate JWTs in your server

Authgent issues signed JWTs. Your MCP server fetches the JWKS once, caches it, and verifies tokens offline. Stateless. Standard. No Authgent dependency at runtime.

# Verify Authgent JWTs in FastMCP
from fastmcp.server.auth import RemoteAuthProvider

auth = RemoteAuthProvider(
    authorization_server_url="https://auth.yourcompany.com",
    audience="https://mcp.yourcompany.com",
)
// Verify Authgent JWTs in Go
v, _ := verifier.New(verifier.Config{
    Issuer:   "https://auth.yourcompany.com",
    Audience: "https://mcp.yourcompany.com",
    JWKSURL:  "https://auth.yourcompany.com/.well-known/jwks.json",
})

mux.Handle("/mcp", v.RequireAuth()(handler))
// Verify Authgent JWTs in TypeScript
import { createRemoteJWKSet, jwtVerify } from "jose";

const JWKS = createRemoteJWKSet(
  new URL("https://auth.yourcompany.com/.well-known/jwks.json")
);

const { payload } = await jwtVerify(token, JWKS, {
  issuer: "https://auth.yourcompany.com",
  audience: "https://mcp.yourcompany.com",
});

Everything the MCP spec requires.

A complete OAuth 2.1 authorization server built to the MCP authorization specification.

OAuth 2.1

Complete authorization server

Authorization Code + PKCE, client credentials, token refresh and revocation. Every grant type the MCP spec requires.

DCR

Dynamic Client Registration

MCP clients self-register automatically. No manual setup per client. Constrained mode for regulated deployments.

JWT

JWKS & offline verification

ES256 signed JWTs with automated key rotation. Your MCP server fetches JWKS once and verifies tokens locally.

IdP

Upstream IdP federation

Plug into Okta, Entra, or Google Workspace. Your employees use SSO. Agents get scoped tokens.

Scopes

Tool-level permissions

Define permissions per tool, not per server. Consent screen shows exactly which tools an agent requests.

Ops

Single binary, zero deps

One Docker image. PostgreSQL or SQLite. Prometheus metrics, OpenTelemetry tracing, structured logs.

Start free. Scale when you need to.

The OSS core is everything you need for production. Enterprise adds what regulated industries require.

All tiers include full OAuth 2.1 AS. No feature gating on core auth.
Apache 2.0

Open Source

$0 forever

Self-hosted. Full MCP auth server. Everything you need to go to production.

  • OAuth 2.1 AS + PKCE + DCR
  • Unlimited MCP servers
  • Unlimited client registrations
  • PostgreSQL + SQLite
  • Single upstream IdP (OIDC)
  • JWKS, metadata, revocation
  • Structured audit logging
  • Go + Python verifier libraries
Deploy now →
Hosted by us

Cloud SaaS

Coming soon

Managed auth server. No infrastructure to maintain.

  • Managed auth server
  • Automatic updates and key rotation
  • Multiple upstream IdPs
  • Usage dashboard and analytics
  • Email support
Join waitlist →
Regulated industries

Enterprise

Custom

Air-gapped deployments for healthcare, finance, and defense.

  • Everything in Self-Hosted Pro
  • Unlimited IdP connections
  • Air-gap and offline deployment
  • Dedicated Slack channel
  • Deployment engineering included
  • Custom SLA
Talk to us →
Self-hosted — your infra, your dataAir-gap deployment supportedStructured audit loggingApache 2.0 — open source, auditableSingle binary, minimal attack surfaceSBOM on every release

Honest comparison.

Every competitor is cloud-only. For regulated industries, that's a hard blocker. We are not.

Feature Authgent Auth0 for MCPWorkOSDescopeKeycloak
Self-hosted
OAuth 2.1 + PKCE partial
Dynamic Client Registration EA only partial partial
MCP spec compliant EA
Runs in regulated infra complex
Deploy time 5 min 10+ steps ~1 hour ~30 min hours–days
Open Source
SQLite (dev mode)
Purpose-built for MCP add-on add-on add-on
Open Source · Apache 2.0

MCP auth. Working.
In 5 minutes.

Not a hosted service you depend on. Your binary. Your tokens. Your infrastructure.

authgent/authgent · authgent/authgent:latest · Apache-2.0