Clerk MCP Server
Enables complete user management for Clerk authentication service through MCP. Supports listing, deleting, locking, and unlocking users with secure API integration.
README
🔐 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.
🚀 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
- Acesse Clerk Dashboard
- Selecione seu projeto
- Vá em API Keys
- Copie:
- Secret Key (começa com
sk_live_ousk_test_) - Publishable Key (começa com
pk_live_oupk_test_)
- Secret Key (começa com
5. Compile o Projeto
npm run build
⚙️ Configuração por Cliente MCP
🎯 Cursor AI (Recomendado)
- Abra as configurações do Cursor (
Ctrl/Cmd + ,) - Procure por "MCP" na barra de pesquisa
- 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"
}
}
}
}
- Reinicie o Cursor
- Teste: Digite
@Clerkno chat para ver as ferramentas disponíveis
🤖 Claude Desktop
-
Abra o arquivo de configuração:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
-
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"
}
}
}
}
- Reinicie o Claude Desktop
💻 VS Code
- Instale a extensão MCP (se disponível)
- 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.localprotegido 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:
- Verifique o caminho no arquivo de configuração
- Reinicie o Cursor completamente
- 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
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📄 Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
🙏 Agradecimentos
- Clerk - Autenticação e gerenciamento de usuários
- Model Context Protocol - Protocolo para integração com IAs
- Cursor AI - Editor de código com IA integrada
Feito com ❤️ para a comunidade de desenvolvedores
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。