
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
invokard-mcp
Advanced tools
Servidor MCP local (stdio) que sirve las cartas de Invokard a la cuenta que las tiene desbloqueadas. Quien decide el acceso es Firestore, no el cliente.
Servidor MCP local que sirve las cartas de Invokard a tu cliente de IA: Claude Desktop, Claude Code, Cursor o cualquier otro que hable Model Context Protocol.
Invokard es una baraja de 55 cartas. Cada carta es un prompt de especialista —Bug Hunter, Copywriter, SEO Strategist, Analista de Datos…— escrito para que la IA lo adopte entero y trabaje como ese especialista.
Tres herramientas, ni una más:
| Herramienta | Para qué |
|---|---|
invokard_cards | Lista las 55 cartas con título, mazo y descripción, y marca cuáles están desbloqueadas para tu cuenta. Acepta filtro por mazo o por texto. |
invokard_card | Abre una carta por su slug y devuelve su prompt completo. Idiomas: es, en, fr, de, it. |
invokard_login | Entra con email y contraseña y deja la sesión guardada. |
Esto es lo importante y conviene decirlo sin adornos: este paquete no guarda ninguna carta de pago ni comprueba nada por su cuenta. Solo el catálogo público (títulos y descripciones) viaja dentro del paquete.
El texto de cada carta vive en Firestore, y las reglas del proyecto solo lo
sirven si la petición viene autenticada y esa cuenta tiene la carta comprada o
el Pase activo. Cuando pides una carta que no tienes, Firestore responde
PERMISSION_DENIED y el servidor te lo explica. No hay nada que descomentar,
parchear ni saltarse aquí dentro: la decisión se toma al otro lado.
La clave web de Firebase que verás en src/config.js es pública por diseño
—va en cualquier web con Firebase— y no abre nada por sí sola.
Requiere Node 18 o superior.
// claude_desktop_config.json (o el equivalente de tu cliente)
{
"mcpServers": {
"invokard": {
"command": "npx",
"args": ["-y", "invokard-mcp"],
"env": {
"INVOKARD_EMAIL": "tu@email.com",
"INVOKARD_PASSWORD": "tu-contraseña"
}
}
}
}
El servidor busca credenciales en este orden:
INVOKARD_EMAIL e INVOKARD_PASSWORD. Es la vía
recomendada: la contraseña no pasa por la conversación.~/.invokard/session.json, el refreshToken de un login anterior.invokard_login existe para cuando tu cliente no te deja configurar variables
de entorno, pero ten presente que ahí la contraseña se escribe en el chat y
queda en su historial.
Solo esto, en ~/.invokard/session.json con permisos 0600:
{ "refreshToken": "...", "uid": "...", "email": "...", "savedAt": "..." }
La contraseña no se escribe nunca, ni en disco ni en los logs. El idToken
vive solo en memoria, con su caducidad, y se refresca solo. Para cerrar sesión,
borra ese fichero.
En Windows los permisos POSIX son informativos: NTFS ignora el 0600 y el
fichero hereda los permisos de tu carpeta de usuario, que ya es privada por
defecto. En Linux y macOS el 0600 sí manda.
Los logs van siempre a stderr, porque stdout es el canal de MCP. Con
INVOKARD_DEBUG=1 cuenta un poco más, y sigue sin escribir tokens.
Los metadatos de las 55 cartas van empaquetados en data/catalog.json, así que
el servidor funciona sin red para listar. Si https://invokard.web.app/data/catalog.json
responde con un catálogo válido, se prefiere esa copia por ser más fresca; si no
—hoy esa ruta no está publicada—, se usa la empaquetada sin quejarse.
INVOKARD_NO_REMOTE_CATALOG=1 desactiva el intento remoto.
Nueve cartas van incluidas con cualquier cuenta. El Pase de Invokard, 7 € al mes, abre las 55. Todo se gestiona en https://invokard.web.app — este paquete no cobra ni vende nada.
MIT. El código es MIT; el contenido de las cartas no, y se sirve solo a las cuentas que lo tienen.
FAQs
Servidor MCP local (stdio) que sirve las cartas de Invokard a la cuenta que las tiene desbloqueadas. Quien decide el acceso es Firestore, no el cliente.
We found that invokard-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.