VibeLogin MCP
Adicione autenticação ao seu aplicativo - sem código, sem configuração, nunca saia da sua IDE
Documentação
@vibelogin/mcp
Adicione autenticação ao seu aplicativo sem sair da sua IDE. Servidor MCP para Cursor, Claude Code, Windsurf e Cline.
Basta dizer "adicione autenticação ao meu aplicativo" — o agente cria seu projeto, configura métodos de autenticação, integra o Google OAuth e prepara um fluxo de login funcional no seu código. Tudo a partir do chat do seu editor.
Instalação
Não é necessária instalação global. Configure-o uma vez no seu cliente MCP e ele será executado sob demanda via bunx.
Configuração do cliente
Um trecho funciona em todos os clientes. Cole isto nas suas configurações MCP e pronto.
{
"mcpServers": {
"vibelogin": {
"command": "bunx",
"args": ["@vibelogin/mcp"]
}
}
}
A primeira chamada de ferramenta abre um navegador para consentimento com um clique. Depois disso, os tokens são armazenados em cache em ~/.vibelogin/credentials.json — você não precisará fazer login novamente por 30 dias.
Claude Desktop / Claude Code
~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"vibelogin": {
"command": "bunx",
"args": ["@vibelogin/mcp"]
}
}
}
Cursor
~/.cursor/mcp.json (ou por projeto .cursor/mcp.json):
{
"mcpServers": {
"vibelogin": {
"command": "bunx",
"args": ["@vibelogin/mcp"]
}
}
}
Windsurf / Cline / Zed
Mesma estrutura — todo cliente MCP aceita um bloco command + args. O comando de uma linha acima funciona em todos eles.
É isso — nenhuma variável de ambiente é necessária. Os padrões apontam automaticamente para produção.
Autenticação
No primeiro uso, uma janela do navegador abre para consentimento com um clique. Depois disso, você fica autenticado por 30 dias — sem novas solicitações.
Ferramentas
O agente escolhe automaticamente as ferramentas certas com base na sua conversa. Basta dizer o que você precisa.
create_project
Cria um novo projeto VibeLogin na sua organização. Retorna o id do projeto, slug, oauthSlug, ambiente, chave publicável e chave secreta (exibida uma única vez).
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | sim | Nome legível do projeto. |
slug | string | não | Slug seguro para URL; gerado automaticamente a partir de name se omitido. |
environment | enum | não | production | development | staging (padrão production). |
list_projects
Lista todos os projetos da sua organização. Use isto quando o agente precisar descobrir o que já existe antes de criar algo novo.
Sem parâmetros.
get_project
Consulta um único projeto por id, slug ou oauthSlug.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
idOrSlug | string | sim | Id do projeto, slug ou oauthSlug. |
configure_auth
Alterna métodos de autenticação, define URLs de redirecionamento e/ou integra o Google OAuth. Atualizações em nível de campo — qualquer coisa que você não definir permanece intacta.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
projectId | string | sim | O id do projeto. |
methods.emailPassword | boolean | não | Habilita login com e-mail + senha. |
methods.magicLink | boolean | não | Habilita e-mails de link mágico. |
methods.emailOtp | boolean | não | Habilita códigos OTP de 6 dígitos por e-mail. |
methods.passwordReset | boolean | não | Habilita e-mails de redefinição de senha. |
methods.emailVerification | boolean | não | Exige verificação de e-mail no cadastro. |
google.clientId | string | com google | ID do cliente Google OAuth (do Google Cloud Console). |
google.clientSecret | string | com google | Segredo do cliente Google OAuth. |
google.enabled | boolean | não | Padrão true. |
redirectUrls | string[] | não | Substitui a lista de URLs de redirecionamento permitidas do projeto. |
Se você chamar isto sem google, a resposta inclui a URL exata do Google Cloud Console + URI de redirecionamento necessárias para configurar as credenciais.
add_auth_to_project
Prepara um fluxo de login funcional no seu código. Detecta o framework a partir de package.json e grava arquivos não destrutivos (arquivos existentes são ignorados, nunca sobrescritos).
Frameworks suportados atualmente: Next.js (App Router), Vite + React. Recusado com orientação: Remix, Astro, Express, desconhecido.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
projectDir | string | sim | Caminho absoluto para a raiz do projeto. |
slug | string | sim | O oauthSlug do projeto (de create_project). |
publishableKey | string | sim | A chave publicável do projeto. |
appUrl | string | sim | A origem do seu aplicativo (ex.: https://myapp.com). |
Arquivos gravados para Next.js
middleware.ts # hostedAuthMiddleware
app/auth/callback/route.ts # createCallbackHandler
app/login/page.tsx # <VibeLogin />
.env.local.example # publishable key + secret placeholder
Próximos passos exibidos pela ferramenta:
pnpm add @vibelogin/nextjs- Copie
.env.local.example→.env.local, preenchaVIBELOGIN_SECRET_KEY pnpm dev→ abra/login
Arquivos gravados para Vite + React
src/auth/VibeLoginProvider.tsx # context + useVibeLogin() hook
src/auth/Login.tsx # /login redirect to hosted UI
src/auth/Callback.tsx # /auth/callback handler
.env.example # VITE_-prefixed publishable key
Próximos passos exibidos pela ferramenta:
pnpm add @vibelogin/react react-router-dom- Envolva
<App/>em<VibeLoginProvider/> - Adicione rotas
/logine/auth/callback - Copie
.env.example→.env.local pnpm dev→ abra/login
Exemplos de conversas
Você: "Adicione VibeLogin a este aplicativo Next.js. Login com e-mail + senha e Google."
Agente: (chama
create_project { name: "myapp", environment: "production" }) Criadomyapp(pk_live_…). (chamaconfigure_auth { projectId, methods: { emailPassword: true } }) E-mail + senha habilitados. Para ativar o Google, preciso de um Client ID e Secret do Google Cloud Console — aqui está a URI de redirecionamento para autorizar:https://api.vibelogin.com/oauth/myapp-xyz/google/callback. (após você colar as credenciais:) (chamaconfigure_auth { google: { clientId, clientSecret } }) (chamaadd_auth_to_project { projectDir: ".", slug: "myapp-xyz", publishableKey: "pk_live_…", appUrl: "https://myapp.com" }) Preparação concluída (next). Gravoumiddleware.ts,app/auth/callback/route.ts,app/login/page.tsx,.env.local.example. Executepnpm add @vibelogin/nextjs && pnpm deve abra/login.
Você: "Quais projetos eu já tenho?"
Agente: (chama
list_projects) Você tem 3:myapp(produção),myapp-staging(staging),internal-tools(desenvolvimento).
Segurança
- Sem segredos no agente — autenticação usa OAuth de loopback + PKCE (RFC 8252)
- Códigos de autorização de uso único com TTL de 2 minutos
- Tokens de atualização rotacionados — cada atualização invalida o anterior
- Credenciais armazenadas com segurança —
chmod 600em~/.vibelogin/credentials.json
Frameworks suportados
| Framework | Status |
|---|---|
| Next.js (App Router) | Totalmente suportado |
| Vite + React | Totalmente suportado |
| Remix, Astro, Express | Em breve |
Licença
Apache-2.0