Skip to main content
Glama
Clerk MCP Server
by correaito

šŸ” Clerk MCP Server

Servidor MCP (Model Context Protocol) para gerenciamento completo de usuÔrios do Clerk. Este projeto permite que você integre facilmente as funcionalidades do Clerk com qualquer cliente MCP compatível, incluindo Cursor AI, Claude Desktop e VS Code.

✨ Funcionalidades

Este servidor MCP expƵe 4 ferramentas essenciais para gerenciar usuƔrios do Clerk:

šŸ› ļø Ferramentas DisponĆ­veis

Ferramenta

Descrição

Parâmetros

list-users

Lista usuÔrios com paginação

limit (1-100), offset, orderBy

delete-user

Deleta permanentemente um usuƔrio

userId (obrigatório)

lock-user

Bloqueia um usuƔrio (impede login)

userId (obrigatório)

unlock-user

Desbloqueia um usuƔrio (permite login)

userId (obrigatório)

āš ļø ATENƇƃO: A operação delete-user Ć© irreversĆ­vel! Use com muito cuidado.

Related MCP server: WorkOS MCP Server

šŸš€ Instalação RĆ”pida

1. Clone o Repositório

git clone https://github.com/correaito/mcp_clerk.git
cd mcp_clerk

2. Instale as DependĆŖncias

npm install

3. Configure as VariƔveis de Ambiente

Opção A: Copie o arquivo de exemplo

cp env.example .env.local

Opção B: Crie manualmente o arquivo .env.local

# Clerk API Keys
CLERK_SECRET_KEY=your_secret_key_here
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_publishable_key_here

# Server Configuration
PORT=5000

4. Obtenha suas Chaves do Clerk

  1. Acesse Clerk Dashboard

  2. Selecione seu projeto

  3. VĆ” em API Keys

  4. Copie:

    • Secret Key (comeƧa com sk_live_ ou sk_test_)

    • Publishable Key (comeƧa com pk_live_ ou pk_test_)

5. Compile o Projeto

npm run build

āš™ļø Configuração por Cliente MCP

šŸŽÆ Cursor AI (Recomendado)

  1. Abra as configuraƧƵes do Cursor (Ctrl/Cmd + ,)

  2. Procure por "MCP" na barra de pesquisa

  3. Adicione a configuração:

{
  "mcpServers": {
    "Clerk": {
      "command": "node",
      "args": ["caminho/para/mcp_clerk/dist/server-stdio.js"],
      "env": {
        "CLERK_SECRET_KEY": "your_secret_key_here",
        "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY": "your_publishable_key_here"
      }
    }
  }
}

Exemplo com caminho completo:

{
  "mcpServers": {
    "Clerk": {
      "command": "node",
      "args": ["C:\\projetos\\mcp_clerk\\dist\\server-stdio.js"],
      "env": {
        "CLERK_SECRET_KEY": "your_secret_key_here",
        "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY": "your_publishable_key_here"
      }
    }
  }
}
  1. Reinicie o Cursor

  2. Teste: Digite @Clerk no chat para ver as ferramentas disponĆ­veis

šŸ¤– Claude Desktop

  1. Abra o arquivo de configuração:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  2. Adicione a configuração:

{
  "mcpServers": {
    "Clerk": {
      "command": "node",
      "args": ["caminho/para/mcp_clerk/dist/server-stdio.js"],
      "env": {
        "CLERK_SECRET_KEY": "your_secret_key_here",
        "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY": "your_publishable_key_here"
      }
    }
  }
}
  1. Reinicie o Claude Desktop

šŸ’» VS Code

  1. Instale a extensão MCP (se disponível)

  2. Configure via settings.json:

{
  "mcp.servers": {
    "Clerk": {
      "command": "node",
      "args": ["caminho/para/mcp_clerk/dist/server-stdio.js"],
      "env": {
        "CLERK_SECRET_KEY": "your_secret_key_here",
        "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY": "your_publishable_key_here"
      }
    }
  }
}

🌐 Modo HTTP (Para Desenvolvimento)

Se preferir usar o servidor HTTP para testes:

1. Inicie o Servidor HTTP

npm start

2. Teste com MCP Inspector

npx @modelcontextprotocol/inspector
  • Conecte em: http://localhost:5000/mcp

3. Teste com cURL

Health Check:

curl http://localhost:5000

Listar UsuƔrios:

curl -X POST http://localhost:5000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "list-users",
      "arguments": {
        "limit": 10,
        "offset": 0
      }
    },
    "id": 1
  }'

Bloquear UsuƔrio:

curl -X POST http://localhost:5000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "lock-user",
      "arguments": {
        "userId": "user_xxxxxxxxxxxxx"
      }
    },
    "id": 2
  }'

šŸ“š Exemplos de Uso

No Cursor AI

@Clerk list-users limit=5
@Clerk lock-user userId=user_2abc123def456
@Clerk unlock-user userId=user_2abc123def456

No Claude Desktop

Use a ferramenta Clerk para listar os últimos 10 usuÔrios cadastrados
Bloqueie o usuƔrio com ID user_2abc123def456

šŸ”§ Scripts DisponĆ­veis

# Desenvolvimento
npm run dev          # Servidor HTTP em modo dev
npm run dev:stdio    # Servidor STDIO em modo dev

# Produção
npm run build        # Compila o projeto
npm start           # Servidor HTTP (porta 5000)
npm run start:stdio  # Servidor STDIO

šŸ“ Estrutura do Projeto

mcp_clerk/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ server.ts           # Servidor HTTP (porta 5000)
│   ā”œā”€ā”€ server-stdio.ts     # Servidor STDIO (para Cursor/VS Code)
│   └── clerk-tools.ts      # Implementação das ferramentas
ā”œā”€ā”€ dist/                   # Arquivos compilados
ā”œā”€ā”€ env.example            # Exemplo de configuração
ā”œā”€ā”€ .env.local             # Suas credenciais (NƃO commitado)
ā”œā”€ā”€ .gitignore             # Arquivos ignorados pelo Git
ā”œā”€ā”€ package.json           # DependĆŖncias e scripts
ā”œā”€ā”€ tsconfig.json          # Configuração TypeScript
└── README.md             # Este arquivo

šŸ›”ļø SeguranƧa

  • āœ… Nenhuma chave hardcoded no código

  • āœ… Arquivo .env.local protegido pelo .gitignore

  • āœ… VariĆ”veis de ambiente carregadas via dotenv

  • āš ļø Nunca compartilhe suas credenciais do Clerk

  • āš ļø Operação delete-user Ć© irreversĆ­vel - use com cuidado!

šŸ› Troubleshooting

Problema: "CLERK_SECRET_KEY não encontrada"

Solução: Verifique se o arquivo .env.local existe e contém a chave correta.

Problema: "Erro ao conectar com Clerk"

Solução: Verifique se suas chaves do Clerk estão corretas e ativas.

Problema: "Ferramentas não aparecem no Cursor"

Solução:

  1. Verifique o caminho no arquivo de configuração

  2. Reinicie o Cursor completamente

  3. Verifique se o projeto foi compilado (npm run build)

Problema: "Porta 5000 jĆ” estĆ” em uso"

Solução: Altere a porta no arquivo .env.local:

PORT=3001

šŸ¤ Contribuindo

  1. Fork o projeto

  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)

  3. Commit suas mudanƧas (git commit -m 'Add some AmazingFeature')

  4. Push para a branch (git push origin feature/AmazingFeature)

  5. Abra um Pull Request

šŸ“„ LicenƧa

Este projeto estƔ sob a licenƧa MIT. Veja o arquivo LICENSE para mais detalhes.

šŸ™ Agradecimentos


Feito com ā¤ļø para a comunidade de desenvolvedores

Available Tools

4 tools
delete-userDeletar UsuƔrioA

Deleta permanentemente um usuÔrio do Clerk pelo ID. Esta ação é irreversível!

Inputs: userId (required). Returns: error, message, success

list-usersListar UsuƔriosB

Lista todos os usuÔrios cadastrados no Clerk com paginação

Inputs: limit, offset, orderBy. Returns: data, error, success

lock-userBloquear UsuƔrioA

Bloqueia um usuƔrio do Clerk, impedindo que ele faƧa login

Inputs: userId (required). Returns: error, message, success

unlock-userDesbloquear UsuƔrioB

Desbloqueia um usuƔrio do Clerk, permitindo que ele faƧa login novamente

Inputs: userId (required). Returns: error, message, success

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: delete-user removes users permanently, list-users retrieves user data, lock-user blocks login access, and unlock-user restores it. There is no overlap in functionality, making tool selection straightforward for an agent.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (delete-user, list-users, lock-user, unlock-user), using hyphen separation and clear action verbs. This uniformity enhances readability and predictability.

    Tool Count3/5

    With 4 tools, the count is reasonable for user management, but it feels slightly thin as it lacks create-user and get-user operations. This may limit full CRUD coverage, though the existing tools are well-scoped.

    Completeness3/5

    The tool set covers deletion, listing, locking, and unlocking users, which handles lifecycle management well. However, there are notable gaps: no create-user or get-user tools, which are essential for a complete user management surface, potentially causing agent workarounds.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables secure MCP server functionality with Clerk authentication and user-specific API key management. Provides Next.js documentation tools through protected endpoints with multiple authentication methods including OAuth 2.1 with PKCE.
      1
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for WorkOS User Management API. Enables Claude to manage users, organizations, memberships, invitations, and sessions in WorkOS.
      17 npm
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      An MCP server for managing Okta users (CRUD operations) with full OAuth 2.1 compliance, enabling secure integration with Claude Desktop and other MCP clients.
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables user creation and retrieval through MCP tools, resources, and prompts, with Google Gemini integration for natural language interaction.
      2,128 npm
      MIT