mcp-auth-proxy
MCP Auth Proxy is a secure OAuth 2.1 authentication proxy for Model Context Protocol (MCP) servers
Links
README
From the repo.
MCP Auth Proxy
If you found value here, please consider starring.
Overview
- Drop-in OAuth 2.1/OIDC gateway for MCP servers — put it in front, no code changes.
- Your IdP, your choice: Google, GitHub, or any OIDC provider — e.g. Okta, Auth0, Azure AD, Keycloak — plus optional password.
- Flexible user matching: Support exact matching and glob patterns for user authorization (e.g.,
*@company.com) - Publish local MCP servers safely: Supports all stdio, SSE, and HTTP transports. For stdio, traffic is converted to
/mcp. For SSE/HTTP, it's proxied as-is. Of course, with authentication. - Verified across major MCP clients: Claude, Claude Code, ChatGPT, GitHub Copilot, Cursor, etc. — the proxy smooths client-specific quirks for consistent auth.
📖 For detailed usage, configuration, and examples, see the Documentation
Quickstart
Domain binding & 80/443 must be accessible from outside.
Download binary from release page.
If you use stdio transport
./mcp-auth-proxy \
--external-url https://{your-domain} \
--tls-accept-tos \
--password changeme \
-- npx -y @modelcontextprotocol/server-filesystem ./
That's it! Your HTTP endpoint is now available at https://{your-domain}/mcp.
- stdio (when a command is specified): MCP endpoint is https://{your-domain}/mcp.
- SSE/HTTP (when a URL is specified): MCP endpoint uses the backend’s original path (no conversion).
Already have certificates? Pass
--tls-cert-fileand--tls-key-fileinstead of--tls-accept-tos.
Why not MCP Gateway?
mcp-auth-proxy: A lightweight proxy that adds authentication to any MCP server (optional stdio→HTTP(S) conversion)
MCP Gateway: A hub to orchestrate multiple MCP servers (aggregation, catalog integration)
When to choose mcp-auth-proxy
- You just need to add auth to one or a few MCPs (enforce OAuth/OIDC/password-only)
- Catalog integration and aggregation aren’t needed (e.g., self-hosted or independently managed MCP deployments)
When to choose MCP Gateway
- You need to manage multiple MCPs centrally (aggregation, policies/permissions, auditing, centralized logging)
- You want catalog integration and aggregation
Note: They are not mutually exclusive. You can put mcp-auth-proxy in front of a Gateway's public endpoint to enforce authentication if the Gateway itself doesn't handle it.
TL;DR: Orchestrate many → Gateway / Expose safely & quickly → mcp-auth-proxy
Verified MCP Client
| MCP Client | Status | Notes |
|---|---|---|
| Claude - Web | ✅ | |
| Claude - Desktop | ✅ | |
| Claude Code | ✅ | |
| ChatGPT - Web | ✅ | Need to implement search and fetch tools.(1) |
| ChatGPT - Desktop | ✅ | Need to implement search and fetch tools.(1) |
| GitHub Copilot | ✅ | |
| Cursor | ✅ |
Collected info
- ★ 155 stars
- ⎇ 37 forks
- Language: Go
- Source updated: 8/4/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.