Error del generador de clave API de usuario de Discourse MCP Nodejs 20

Los issues no están habilitados en el repositorio de GitHub, ¡pero por favor, avísame si debo publicar esto en otro lugar!

Cuando ejecuto el generador de claves API de usuario, obtengo el siguiente error:

Decrypting payload…
[2025-12-01T16:38:59.409Z] ERROR Failed to decrypt payload: RSA_PKCS1_PADDING is no longer supported for private decryption.

Parece que esto no es compatible por defecto desde nodejs 20.

Aunque esa publicación menciona una solución alternativa para reactivar la opción de padding, parece que esa opción ha sido deshabilitada desde entonces.

$ NODE_OPTIONS='--security-revert=CVE-2023-46809' npx @discourse/mcp@latest generate-user-api-key --site https://example.com --save-to discourse-mcp.json  --scopes "read"
node: --security-revert= is not allowed in NODE_OPTIONS

Estoy un poco confundido, porque el código para esto se agregó recientemente en discourse-mcp/src/user-api-key-generator.ts at 51f144fff8847647d1ba7354d5bc1fe661110a43 · discourse/discourse-mcp · GitHub hace unos meses. ¿Quizás todos están usando claves generadas por el administrador?

Una publicación fue dividida a un nuevo tema: La alucinación del parámetro de consulta predeterminado de MCP

¿Qué versiones de OS, NodeJS y OpenSSL estás ejecutando?

A mí me funciona bien en

Linux
Node 24.5
OpenSSL 3.6.0


◄ 0s ◎ npx @discourse/mcp@latest generate-user-api-key \
             --site https://meta.discourse.org \
             --save-to profile.json

🔑 Generador de Claves API de Usuario de Discourse

Sitio: https://meta.discourse.org
Alcances: read,write

Generando par de claves RSA...
✓ Par de claves generado
Por favor, visita esta URL para autorizar la aplicación:

https://meta.discourse.org/user-api-key/new?application_name=Discourse+MCP&client_id=discourse-mcp&scopes=read%2Cwrite&public_key=-----BEGIN+PUBLIC+KEY-----blablabla----END+PUBLIC+KEY-----%0A&nonce=1764619683010

Después de autorizar, serás redirigido a una URL como:
  discourse://auth_redirect?payload=<encrypted_payload>

O puedes ver la carga útil cifrada mostrada en la página.

Pega la carga útil cifrada aquí:  longkey

Descifrando carga útil...
✓ Clave API de usuario recuperada con éxito

✓ Guardado en el perfil: profile.json

{
  "success": true,
  "profile": "profile.json"
}

◄ 16s ◎ node --version
v24.5.0

◄ 0s ◎ openssl --version
OpenSSL 3.6.0 1 Oct 2025 (Library: OpenSSL 3.6.0 1 Oct 2025)
2 Me gusta
$ node --version
v22.15.0
$ openssl -v
OpenSSL 3.6.0 1 Oct 2025 (Library: OpenSSL 3.6.0 1 Oct 2025)

¡Acabo de cambiar a node 24 a través de nvm y funcionó! Eso me llevó a encontrar Unable to use RSA_PKCS1_PADDING with v22+ - `--security-revert` suggests CVE-2024-PEND · Issue #55628 · nodejs/node · GitHub que termina diciendo que esto nunca funcionará en node < 24.

Supongo que discourse-mcp/package.json at 858e5bd5092c7d31693554046db34f98671a8cb9 · discourse/discourse-mcp · GitHub debería actualizarse a >=24.

¡Gracias!

2 Me gusta

Buena idea

2 Me gusta