Discourse MCP 用户 API 密钥生成器 Nodejs 20 错误

GitHub 仓库中未启用问题(Issues),但如果我应该在其他地方发布此信息,请告诉我!

当我运行用户 API 密钥生成器时,我收到以下错误:

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

看起来自 nodejs 20 以来,这默认就不再受支持了。

虽然该帖子提到了重新启用填充选项的解决方法,但该方法似乎已被禁用。

$ 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

我有点困惑,因为这段代码是几个月前在 discourse-mcp/src/user-api-key-generator.ts at 51f144fff8847647d1ba7354d5bc1fe661110a43 · discourse/discourse-mcp · GitHub 中添加的。也许大家只是在使用管理员生成的密钥?

一篇帖子已被拆分到新主题:MCP 的默认查询参数幻觉

您运行的是什么操作系统、NodeJS 和 OpenSSL 版本?

我在以下环境中运行正常:

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

🔑 Discourse 用户 API 密钥生成器

站点: https://meta.discourse.org
范围: read,write

正在生成 RSA 密钥对...
✓ 密钥对已生成
请访问此 URL 以授权应用程序:

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

授权后,您将被重定向到一个类似以下的 URL:
  discourse://auth_redirect?payload=<encrypted_payload>

或者您可能会在页面上看到加密的 payload。

在此处粘贴加密的 payload:  longkey

正在解密 payload...
✓ 用户 API 密钥已成功检索

✓ 保存到配置文件: 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 个赞
$ node --version
v22.15.0
$ openssl -v
OpenSSL 3.6.0 1 Oct 2025 (Library: OpenSSL 3.6.0 1 Oct 2025)

我刚刚通过 nvm 切换到 node 24,它奏效了!这引导我找到了 https://github.com/nodejs/node/issues/55628,该问题以“这在 node < 24 上_永远_不会工作”的说法结束。

我猜 discourse-mcp/package.json at 858e5bd5092c7d31693554046db34f98671a8cb9 · discourse/discourse-mcp · GitHub 应该更新为 >=24

谢谢!

2 个赞

好主意

2 个赞