Clerk Tools MCP Server
Clerk authentication patterns for MCP clients and servers in TypeScript.
Data last scanned last week · Reviewed last month
Overview
Clerk Tools provides a specialized library for developers looking to integrate authentication workflows into Model Context Protocol (MCP) clients and servers. It simplifies the implementation process for projects utilizing the MCP TypeScript SDK, offering dedicated guides for framework-specific setups including Express.js, Hono, and Next.js. The library abstracts common authentication patterns to help developers build secure conduits between AI models and private user data. By providing structured tools for both client-side requests and server-side resource management, it assists in the creation of interoperable AI applications that respect user-granted permissions.
Our verdict
With a security score of 40/100, this project is classified as high-risk. This score reflects that the server is community-maintained rather than official vendor software and has not yet undergone an editorial or comprehensive security review of its authentication and read-only implementation. Developers should exercise caution and perform their own audit of the authentication handling before deploying this in environments managing sensitive or private data.
- Dedicated integrations for Express.js, Hono, and Next.js frameworks
- Uses only one direct dependency to reduce supply-chain surface
- Active repository with consistent maintenance updates
- Not an official product maintained by the Clerk vendor
- Authentication and read-only mode logic lack editorial review
Setup
{
"mcpServers": {
"mcp-tools": {
"args": [
"-y",
"@clerk/mcp-tools"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
- No read-only mode — running this grants full read/write access.
- No built-in authentication — anyone with access to this config can invoke every tool it exposes.
Tools
| Tool | Description | Risk |
|---|---|---|
| generateProtectedResourceMetadata | Generates a metadata file for protected resource discovery. | low |
| generateClerkProtectedResourceMetadata | Generates a Clerk-specific metadata file for protected resource discovery. | low |
| fetchClerkAuthorizationServerMetadata | Fetches metadata from a Clerk Frontend API for an authorization server. | low |
| createDynamicallyRegisteredMcpClient | Creates an MCP client with dynamic registration. | medium |
| completeAuthWithCode | Completes the OAuth flow by processing an authorization code and state. | medium |
| getClientBySessionId | Retrieves an existing MCP client using a session ID from the store. | low |
| createKnownCredentialsMcpClient | Creates an MCP client using manually provided OAuth client credentials. | medium |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| ChatGPT | ||||
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf |
Frequently asked questions
›What frameworks are supported for building MCP servers?
This library provides specific integration guides and examples for Express.js, Hono, and Next.js.
›What is the requirement for protected resource metadata?
Servers must expose a static metadata file at the path .well-known/oauth-protected-resource to support the current MCP authorization flow.
›Can I use this library with Clerk authentication?
Yes, the library includes helpers such as generateClerkProtectedResourceMetadata to simplify exposing metadata when using Clerk for authentication.
›Do I still need to implement an authorization server metadata endpoint?
Most modern deployments do not require this, but it may be needed for older MCP clients or custom embedded authorization servers.
Alternatives
Changelog
- Improvedv0.5.0
2026-04-22
- Breakingv0.3.0
2025-07-25
- New@clerk/mcp-tools 0.0.4
2025-06-18
Badge
Maintain this server? Add the live badge to your README.