Module: Keycardai::MCP

Defined in:
lib/keycardai/mcp.rb,
lib/keycardai/mcp/version.rb,
lib/keycardai/mcp/metadata_app.rb,
lib/keycardai/mcp/rack_support.rb,
lib/keycardai/mcp/auth_provider.rb,
lib/keycardai/mcp/require_bearer_auth.rb

Overview

Keycard integration for MCP servers, attached at the Rack seam: bearer middleware (RFC 6750), OAuth metadata endpoints (RFC 9728 / RFC 8414), and an AuthProvider for delegated token exchange. Handlers read the verified identity and exchanged tokens from the Rack env.

Contract: https://github.com/keycardai/keycard-sdk-spec

Defined Under Namespace

Modules: RackSupport Classes: AuthProvider, MetadataApp, RequireBearerAuth

Constant Summary collapse

ENV_AUTH_INFO =

Rack env key holding the verified inbound token's AuthInfo.

"keycardai.auth_info"
ENV_ACCESS_CONTEXT =

Rack env key holding the AccessContext produced by grant middleware.

"keycardai.access_context"
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.access_context(env) ⇒ Keycardai::OAuth::AccessContext?

The delegated tokens granted for this request, set by grant middleware.

Parameters:

  • env (Hash)

    the Rack env

Returns:

  • (Keycardai::OAuth::AccessContext, nil)


36
37
38
# File 'lib/keycardai/mcp.rb', line 36

def self.access_context(env)
  env[ENV_ACCESS_CONTEXT]
end

.auth_info(env) ⇒ Keycardai::OAuth::AccessToken?

The verified inbound token for this request, set by RequireBearerAuth.

Parameters:

  • env (Hash)

    the Rack env

Returns:

  • (Keycardai::OAuth::AccessToken, nil)


28
29
30
# File 'lib/keycardai/mcp.rb', line 28

def self.auth_info(env)
  env[ENV_AUTH_INFO]
end