VibeLogin MCP

Añade autenticación a tu aplicación: sin código, sin configuración, sin salir de tu IDE.

Documentación

@vibelogin/mcp

Añade autenticación a tu aplicación sin salir de tu IDE. Servidor MCP para Cursor, Claude Code, Windsurf y Cline.

Solo di "añade autenticación a mi aplicación" — el agente crea tu proyecto, configura los métodos de autenticación, conecta Google OAuth y genera un flujo de inicio de sesión funcional en tu código. Todo desde el chat de tu editor.


Instalación

No se necesita instalación global. Conéctalo una vez en la configuración de tu cliente MCP y se ejecutará bajo demanda mediante bunx.


Configuración del cliente

Un solo fragmento funciona en todos los clientes. Pégalo en tu configuración de MCP y listo.

{
  "mcpServers": {
    "vibelogin": {
      "command": "bunx",
      "args": ["@vibelogin/mcp"]
    }
  }
}

La primera llamada a una herramienta abre un navegador para el consentimiento con un clic. Después, los tokens se guardan en caché en ~/.vibelogin/credentials.json — no se te pedirá iniciar sesión de nuevo durante 30 días.

Claude Desktop / Claude Code

~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "vibelogin": {
      "command": "bunx",
      "args": ["@vibelogin/mcp"]
    }
  }
}

Cursor

~/.cursor/mcp.json (o por proyecto .cursor/mcp.json):

{
  "mcpServers": {
    "vibelogin": {
      "command": "bunx",
      "args": ["@vibelogin/mcp"]
    }
  }
}

Windsurf / Cline / Zed

Misma estructura — todos los clientes MCP aceptan un bloque command + args. El fragmento de una línea anterior funciona en todos ellos.

Eso es todo — no se necesitan variables de entorno. Los valores predeterminados apuntan a producción automáticamente.


Autenticación

En el primer uso, se abre una ventana del navegador para el consentimiento con un clic. Después, estarás autenticado durante 30 días — sin más avisos.


Herramientas

El agente elige automáticamente las herramientas adecuadas según tu conversación. Solo di lo que necesitas.

create_project

Crea un nuevo proyecto VibeLogin en tu organización. Devuelve el id del proyecto, slug, oauthSlug, entorno, clave publicable y clave secreta (mostrada una sola vez).

ParámetroTipoObligatorioDescripción
namestringsíNombre legible del proyecto.
slugstringnoSlug seguro para URL; se genera automáticamente desde name si se omite.
environmentenumnoproduction | development | staging (por defecto production).

list_projects

Lista todos los proyectos de tu organización. Úsalo cuando el agente necesite descubrir qué existe antes de crear algo nuevo.

Sin parámetros.

get_project

Busca un único proyecto por id, slug u oauthSlug.

ParámetroTipoObligatorioDescripción
idOrSlugstringsíId del proyecto, slug u oauthSlug.

configure_auth

Activa o desactiva métodos de autenticación, configura URLs de redirección y/o conecta Google OAuth. Actualizaciones a nivel de campo — cualquier cosa que no establezcas se deja intacta.

ParámetroTipoObligatorioDescripción
projectIdstringsíEl id del proyecto.
methods.emailPasswordbooleannoActiva el inicio de sesión con correo y contraseña.
methods.magicLinkbooleannoActiva los correos de enlace mágico.
methods.emailOtpbooleannoActiva los códigos OTP de 6 dígitos por correo.
methods.passwordResetbooleannoActiva los correos de restablecimiento de contraseña.
methods.emailVerificationbooleannoExige verificación de correo al registrarse.
google.clientIdstringcon googleID de cliente de Google OAuth (desde Google Cloud Console).
google.clientSecretstringcon googleSecreto de cliente de Google OAuth.
google.enabledbooleannoPor defecto true.
redirectUrlsstring[]noSobrescribe la lista de URLs de redirección permitidas del proyecto.

Si llamas a esto sin google, la respuesta incluye la URL exacta de Google Cloud Console y la URI de redirección que necesitas para configurar las credenciales.

add_auth_to_project

Genera un flujo de inicio de sesión funcional en tu código. Detecta el framework desde package.json y escribe archivos no destructivos (los archivos existentes se omiten, nunca se sobrescriben).

Frameworks compatibles hoy: Next.js (App Router), Vite + React. Rechazado con orientación: Remix, Astro, Express, desconocido.

ParámetroTipoObligatorioDescripción
projectDirstringsíRuta absoluta a la raíz del proyecto.
slugstringsíEl oauthSlug del proyecto (de create_project).
publishableKeystringsíLa clave publicable del proyecto.
appUrlstringsíEl origen de tu aplicación (p. ej. https://myapp.com).

Archivos escritos 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 pasos impresos por la herramienta:

  1. pnpm add @vibelogin/nextjs
  2. Copia .env.local.example → .env.local, completa VIBELOGIN_SECRET_KEY
  3. pnpm dev → abre /login

Archivos escritos 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 pasos impresos por la herramienta:

  1. pnpm add @vibelogin/react react-router-dom
  2. Envuelve <App/> en <VibeLoginProvider/>
  3. Añade las rutas /login y /auth/callback
  4. Copia .env.example → .env.local
  5. pnpm dev → abre /login

Ejemplos de conversaciones

Tú: "Añade VibeLogin a esta aplicación Next.js. Inicio de sesión con correo y contraseña y con Google."

Agente: (llama a create_project { name: "myapp", environment: "production" }) Creado myapp (pk_live_…). (llama a configure_auth { projectId, methods: { emailPassword: true } }) Correo y contraseña activados. Para activar Google, necesito un ID de cliente y un secreto de Google Cloud Console — aquí está la URI de redirección para autorizar: https://api.vibelogin.com/oauth/myapp-xyz/google/callback. (después de pegar las credenciales:) (llama a configure_auth { google: { clientId, clientSecret } }) (llama a add_auth_to_project { projectDir: ".", slug: "myapp-xyz", publishableKey: "pk_live_…", appUrl: "https://myapp.com" }) Generación completada (next). Se escribieron middleware.ts, app/auth/callback/route.ts, app/login/page.tsx, .env.local.example. Ejecuta pnpm add @vibelogin/nextjs && pnpm dev y abre /login.

Tú: "¿Qué proyectos tengo ya?"

Agente: (llama a list_projects) Tienes 3: myapp (producción), myapp-staging (staging), internal-tools (desarrollo).


Seguridad

  • Sin secretos en el agente — la autenticación usa OAuth de bucle local + PKCE (RFC 8252)
  • Códigos de autorización de un solo uso con TTL de 2 minutos
  • Tokens de refresco rotados — cada refresco invalida el anterior
  • Credenciales almacenadas de forma segura — chmod 600 en ~/.vibelogin/credentials.json

Frameworks compatibles

FrameworkEstado
Next.js (App Router)Totalmente compatible
Vite + ReactTotalmente compatible
Remix, Astro, ExpressPróximamente

Licencia

Apache-2.0