UNPKG

@clerk/clerk-mcp

Version:

An MCP server for Clerk generated by @buildwithalyer

39 lines (33 loc) 1.17 kB
#!/usr/bin/env node import addAPITools from "@buildwithlayer/openapi-to-tools/mcp.js"; import type { APITool } from "@buildwithlayer/openapi-to-tools/types.js"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { Config } from "./config.js"; import { registerPromptsAsTools } from "./prompts.js"; import { tools } from "./tools.js"; const server = new McpServer( { name: "clerk-mcp", version: "1.0.0", }, { capabilities: { tools: {}, }, }, ); // Filters all clerk MCP tools to selected few most likely for MCP use let workingTools: APITool[] = tools as APITool[]; if (!(process.env.ALL_TOOLS === 'true')) { workingTools = workingTools.filter((tool) => Config.defaultTools.includes(tool.name)); } addAPITools(server, workingTools as APITool[], { bearerAuth: process.env.CLERK_API_KEY, }); // A temporary workaround while most clients do not support prompts if (!(process.env.PROMPTS_DISABLED === 'true')) { registerPromptsAsTools(server); } const transport = new StdioServerTransport(); await server.connect(transport);