trackmcp
Back to directory
yilmazali325

getmcpauth

View on GitHub

Drop-in OAuth 2.1 + Dynamic Client Registration for MCP servers, backed by mcpauth (https://getmcpauth.dev)

0 stars TypeScriptOthers Updated Jul 1, 2026
authenticationdynamic-client-registrationmcpmcp-servermodel-context-protocoloauthoauth2

Documentation

mcpauth

npm version
npm downloads
license

Drop-in OAuth 2.1 + Dynamic Client Registration (RFC 7591) for MCP servers, backed by mcpauth.

Wraps the official `@modelcontextprotocol/sdk`'s `requireBearerAuth` middleware so unauthenticated or invalid requests get rejected with a spec-correct `401` before they ever reach your MCP server's handlers.

Install

code
npm install getmcpauth

Usage

ts
import express from "express";
import { mcpAuth } from "getmcpauth";

const app = express();

app.use(
  "/mcp",
  mcpAuth({ registrationSecret: process.env.MCPAUTH_SECRET })
);

// Unauthenticated or invalid requests never reach this handler.
app.post("/mcp", handleMcpRequest);

Get a `registrationSecret` by creating a project at getmcpauth.dev/dashboard — it's your MCP server's credential for both Dynamic Client Registration and token verification.

MCP clients (Claude, ChatGPT, custom agent frameworks) then discover your auth setup automatically via `/.well-known/oauth-authorization-server` — no manual client configuration needed.

Next.js (or any Fetch-API framework)

ts
// app/api/mcp/route.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { createMcpAuthHandler } from "getmcpauth";

const handler = createMcpAuthHandler({
  registrationSecret: process.env.MCPAUTH_SECRET!,
  buildServer: () => {
    const server = new McpServer({ name: "my-server", version: "1.0.0" });
    server.registerTool(/* ... */);
    return server;
  },
});

export { handler as GET, handler as POST, handler as DELETE };

API

  • `mcpAuth(options)` — Express middleware. Successful token verifications are cached in-process (default 30s) so a chatty agent conversation doesn't trigger a network round trip on every tool call.
  • `createMcpAuthHandler(options)` — the Next.js/Fetch-API equivalent above, returning a `(request: Request) => Promise` handler. Same caching behavior as `mcpAuth()`.
  • `McpAuthTokenVerifier` — implements the official SDK's `OAuthTokenVerifier` interface directly, for lower-level use.
  • `mintToken(options)` — for MCP servers embedded in a product that already has its own users: your backend, which already knows who its logged-in user is, mints a token server-to-server without routing that user through mcpauth's own login.
  • `protectedResourceMetadata(options)` / `mcpAuthResourceMetadataHandler(options)` — RFC 9728 resource-metadata helpers.

Full docs: getmcpauth.dev/docs

License

MIT

Frequently asked questions

What is getmcpauth?

getmcpauth is Drop-in OAuth 2.1 + Dynamic Client Registration for MCP servers, backed by mcpauth (https://getmcpauth.dev)

How do I install getmcpauth?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is getmcpauth open source?

Yes — it is hosted on GitHub at https://github.com/yilmazali325/getmcpauth.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP