Skip to content

feat: add mcp_enabled for the remote MCP surface - #13

Merged
lakhansamani merged 1 commit into
mainfrom
feat/mcp-enabled
Aug 11, 2026
Merged

feat: add mcp_enabled for the remote MCP surface#13
lakhansamani merged 1 commit into
mainfrom
feat/mcp-enabled

Conversation

@lakhansamani

Copy link
Copy Markdown
Contributor

Adds authorizer.mcp_enabled so the chart can serve Authorizer's MCP tool surface over HTTP at POST <authorizer_url>/mcp, shipped in authorizerdev/authorizer#757.

Off by default — it is a new internet-facing authenticated surface.

No Service or Ingress change

MCP is served on the main HTTP port, not one of its own: it must be publicly reachable on the same origin as the OAuth metadata clients discover it through. So it needs no new port and inherits the existing Ingress, CORS, security headers and rate limiting.

Fails at render time without authorizer_url

Following the SMTP guard already at the top of deployment.yaml, and for the same reason: in-cluster this failure is a CrashLoopBackOff whose cause is one line in a container log.

The server exits at boot when MCP is enabled with no --url. Every token presented at /mcp is checked against <authorizer_url>/mcp, and deriving that identifier from request headers instead would let a caller name their own token's audience — so the server refuses rather than serving an endpoint that looks authenticated and is not.

Error: execution error at (authorizer/templates/deployment.yaml:31:8):
authorizer.mcp_enabled is true but authorizer.authorizer_url is not set. …

Verified with helm template in all three states

Config Result
default (MCP off) renders, MCP_ENABLED: "false"
mcp_enabled=true, no URL fails at render with the message above
mcp_enabled=true + authorizer_url renders, MCP_ENABLED: "true"

helm lint clean.

Authorizer 2.4.0 can serve its MCP tool surface over HTTP at POST <url>/mcp as
an OAuth 2.1 resource server (authorizerdev/authorizer#757). Off by default —
it is a new internet-facing authenticated surface.

It is served on the MAIN HTTP port, not one of its own, because it must be
publicly reachable on the same origin as the OAuth metadata clients discover it
through. So it needs no Service or Ingress change and inherits the existing
CORS, security headers and rate limiting.

mcp_enabled requires authorizer_url, and the chart FAILS AT RENDER TIME without
it, following the SMTP guard already at the top of deployment.yaml. The server
exits at boot in that configuration — every token presented at /mcp is checked
against <authorizer_url>/mcp, and deriving that identifier from request headers
instead would let a caller name their own token's audience. In-cluster the
failure would otherwise be a CrashLoopBackOff whose cause is one line in a
container log.

Verified with helm template in all three states: off (renders, MCP_ENABLED
false), on without a URL (fails at render with the explanatory message), on with
a URL (renders, MCP_ENABLED true). helm lint clean.
@netlify

netlify Bot commented Aug 11, 2026

Copy link
Copy Markdown

Deploy Preview for authorizer-helm-chart ready!

Name Link
🔨 Latest commit 94f917a
🔍 Latest deploy log https://app.netlify.com/projects/authorizer-helm-chart/deploys/6a7ab1adda0a59000837f9bf
😎 Deploy Preview https://deploy-preview-13--authorizer-helm-chart.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@lakhansamani
lakhansamani merged commit 1b6e432 into main Aug 11, 2026
4 checks passed
@lakhansamani
lakhansamani deleted the feat/mcp-enabled branch August 11, 2026 05:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant