explaingit

acartag7/mcp-sso

Analysis updated 2026-05-18

8TypeScriptAudience · developerComplexity · 4/5Setup · moderate

TLDR

A bridge that adds proper login (OAuth) to MCP servers, so AI tools don't need shared API keys pasted into configs.

Mindmap

mindmap
  root((mcp-sso))
    What it does
      Adds login to MCP servers
      Replaces static API keys
      Issues short lived tokens
    Tech stack
      TypeScript
      Node.js
      jose library
    Identity providers
      Cloudflare Access
      Microsoft Entra ID
      Google and OIDC
      Console pairing
    Use cases
      Secure remote MCP servers
      Machine to machine auth
      API key gateway
    Audience
      Developers
      Platform teams

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add proper user login to a remote MCP server instead of using a shared API key.

USE CASE 2

Let enterprise identity providers like Entra ID or Cloudflare Access secure an MCP server even without Dynamic Client Registration support.

USE CASE 3

Set up machine to machine authentication so automated jobs like CI pipelines can call an MCP server securely.

USE CASE 4

Put a login gateway in front of an existing backend that only accepts a static API key.

What is it built with?

TypeScriptNode.jsOAuth 2.1fastifyexpresshonoSQLiteMySQL

How does it compare?

acartag7/mcp-ssoabdulkader-safi/obsidian-image-magick-pluginsfeatherwolf/enhancedgv
Stars888
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderateeasyeasy
Complexity4/52/52/5
Audiencedevelopergeneralgeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Quickest path needs no identity provider, connecting a real IdP like Entra or Cloudflare Access needs env vars and a public HTTPS URL.

Open source, check the repository's LICENSE file for exact terms.

In plain English

This project solves a specific security problem for a newer kind of tool called an MCP server. MCP servers let AI assistants like Claude call out to remote services, and those services need a way to check who is asking. The common shortcut is a static API key pasted straight into a config file, which never expires and cannot be revoked without changing the shared secret for everyone. That is the kind of secret that ends up leaked in a careless commit or a support screenshot. The proper fix is OAuth, the login flow used by most modern apps, but it depends on a feature called Dynamic Client Registration that lets a client register itself automatically with an identity provider. Big enterprise identity systems such as Microsoft Entra ID and Cloudflare Access do not support that feature, so teams using them are stuck either wiring OAuth together by hand for each deployment or falling back to manual setup that breaks the simple paste a URL and connect experience. mcp-sso sits in between. It speaks the OAuth style flow that MCP clients expect, while your real identity provider stays in charge of confirming who a user actually is. Instead of passing the identity provider's own tokens through to the client, mcp-sso issues its own short lived tokens that are only valid for your specific server, so a stolen token cannot be reused elsewhere. It works with Cloudflare Access, Microsoft Entra ID, Google and generic OIDC providers, plus a no setup console pairing mode for trying it out with no identity provider at all. It supports common web frameworks including fastify, express and hono, and can store its data in SQLite, MySQL or memory. Beyond regular user logins, it also supports machine to machine authentication for automated jobs like CI pipelines, and can act as a gateway that adds proper login in front of an existing backend that only understands a plain API key. The only runtime dependency is a small library called jose, keeping the footprint intentionally minimal. Security choices favor failing loudly over silently allowing something ambiguous through.

Copy-paste prompts

Prompt 1
Walk me through setting up mcp-sso in front of my MCP server using Cloudflare Access as the identity provider.
Prompt 2
Explain how mcp-sso's console pairing mode works for local testing without a real identity provider.
Prompt 3
Show me how to provision a machine to machine client with mcp-sso for a nightly CI job.
Prompt 4
Help me use mcp-sso as an API key gateway in front of my existing MCP backend.
Prompt 5
What does mcp-sso do differently from handling OAuth myself for an MCP server?

Frequently asked questions

What is mcp-sso?

A bridge that adds proper login (OAuth) to MCP servers, so AI tools don't need shared API keys pasted into configs.

What language is mcp-sso written in?

Mainly TypeScript. The stack also includes TypeScript, Node.js, OAuth 2.1.

What license does mcp-sso use?

Open source, check the repository's LICENSE file for exact terms.

How hard is mcp-sso to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is mcp-sso for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.