Plugins
MCP
Issue resource-bound bearer tokens for MCP clients and servers.
The MCP plugin issues JWT access tokens with OAuth Resource Indicator semantics. It uses the OAuth client registry for client lookup and the JWT plugin signing keys for token issuance.
Installation
uv add kernia authlibImport path
from kernia.plugins.jwt import jwt
from kernia.plugins.mcp import MCPOptions, mcpServer configuration
import os
from kernia import KerniaOptions
from kernia.auth import init
from kernia.plugins.jwt import jwt
from kernia.plugins.mcp import MCPOptions, mcp
from .db import adapter
auth = init(KerniaOptions(
database=adapter,
secret=os.environ["KERNIA_SECRET"],
base_url=os.environ["KERNIA_BASE_URL"],
base_path="/api/auth",
plugins=(
jwt(),
mcp(MCPOptions(issuer=os.environ["KERNIA_BASE_URL"])),
),
))API routes
POST
/api/auth/mcp/authorizeIssues a bearer token for a client, scope string, and optional resource audience.
GET
/api/auth/.well-known/oauth-authorization-serverReturns MCP/OAuth discovery metadata including issuer, token endpoint, JWKS URI, scopes, and resource-indicator support.
Schema impact
No MCP-specific table. It reads OAuth clients and uses JWT signing keys.
Behavior and options
MCPOptions.issuershould match the public auth base URL.- Tokens include
sub,iss,aud,client_id,scope,jti, and optionalresource. - Downstream MCP servers should verify the token and expected resource with
introspect_mcp_token.