Erro no Gerador de Chave de API de Usuário Discourse MCP Nodejs 20

Os issues não estão habilitados no repositório do GitHub, mas por favor me avisem se devo postar isso em outro lugar!

Quando executo o gerador de Chave de API de Usuário, recebo o seguinte erro:

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 isso não é mais suportado por padrão desde o nodejs 20.

Embora essa postagem mencione uma solução alternativa para reabilitar a opção de preenchimento (padding), essa opção parece ter sido desabilitada desde então.

$ 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

Estou um pouco confuso, porque o código para isso foi adicionado recentemente em discourse-mcp/src/user-api-key-generator.ts at 51f144fff8847647d1ba7354d5bc1fe661110a43 · discourse/discourse-mcp · GitHub há alguns meses. Talvez todos estejam apenas usando chaves geradas por administradores?

Uma postagem foi dividida em um novo tópico: MCP’s default query parameter hallucination

Qual versão do SO, NodeJS e OpenSSL você está executando?

Funciona bem para mim em

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

🔑 Gerador de Chave de API de Usuário do Discourse

Site: https://meta.discourse.org
Escopos: read,write

Gerando par de chaves RSA...
✓ Par de chaves gerado
Por favor, visite este URL para autorizar o aplicativo:

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

Após autorizar, você será redirecionado para um URL como:
  discourse://auth_redirect?payload=<encrypted_payload>

Ou você pode ver o payload criptografado exibido na página.

Cole o payload criptografado aqui:  longkey

Descriptografando payload...
✓ Chave de API de Usuário recuperada com sucesso

✓ Salvo em 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 curtidas
$ node --version
v22.15.0
$ openssl -v
OpenSSL 3.6.0 1 Oct 2025 (Library: OpenSSL 3.6.0 1 Oct 2025)

Acabei de mudar para o node 24 via nvm e funcionou! Isso me levou a encontrar Unable to use RSA_PKCS1_PADDING with v22+ - `--security-revert` suggests CVE-2024-PEND · Issue #55628 · nodejs/node · GitHub que termina dizendo que isso nunca funcionará no node < 24.

Eu suponho que discourse-mcp/package.json at 858e5bd5092c7d31693554046db34f98671a8cb9 · discourse/discourse-mcp · GitHub deva ser atualizado para >=24.

Obrigado!

2 curtidas

Boa ideia

2 curtidas