Discourse MCP 在 OpenCode CLI 中的设置

本指南提供了将 Discourse MCP 安装到 OpenCode CLI 中的经过测试的说明。如果您使用的是其他 MCP 客户端,我也为 Codex CLI 编写了指南。

使用您的 LLM! 大型语言模型(LLM)非常擅长遵循指令,可以为您完成设置。将 LLM 指向此指南的 URL,并要求它进行设置。您也可以要求它解释任何不明白的步骤。

先决条件:

  • 安装了 Node.js(推荐 24 LTS)
  • 安装了 OpenCode CLI
  • 可以作为普通用户访问目标 Discourse 论坛(无需管理员权限!)

需要明白的是,这里有三个独立的部分:

  1. 远程 Discourse 论坛,它是数据源和操作目标。

  1. Discourse MCP 服务器,这是一个本地运行的开源工具,它连接到 Discourse 并为 OpenCode 提供一个 API 以与 Discourse 交互。它作为 NPX 包安装,并在 OpenCode CLI 需要时按需启动。

  1. OpenCode CLI,它是 MCP 客户端,连接到 MCP 服务器并提供与 Discourse 交互的接口,该交互是通过 MCP API 进行的。


1. 生成 用户 API 密钥

这将使您通过 Discourse 进行身份验证,也是您获取 API 密钥的方式。npx 将下载并运行代码,从传统意义上讲,无需安装任何东西。

在终端中运行:

npx @discourse/mcp@latest generate-user-api-key \
  --site =DISCOURSE-FORUM= \
  --save-to =PROFILE-PATH/=NAME=.json

示例:

npx @discourse/mcp@latest generate-user-api-key \
  --site https://meta.discourse.org \
  --save-to ~/.config/opencode/discourse-profiles/meta.json

批准浏览器同意并复制回加密数据,这证明了您有能力登录并生成一个 API 密钥,该密钥将保存到 =PROFILE-PATH= 以供 MCP 服务器使用。

API 密钥将拥有与您作为用户在论坛上相同的访问级别。

2. 将 MCP 服务器添加到 OpenCode CLI

编辑位于 ~/.config/opencode/opencode.jsonc 的 OpenCode 配置文件,并将以下条目添加到 mcp 部分:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    // ... 其他 MCP 服务器 ...
    "discourse-=NAME=-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@discourse/mcp@latest",
        "--profile",
        "=PROFILE-PATH/=NAME=.json",
      ],
      "enabled": true,
      "environment": {},
    },
  },
}

示例:

"discourse-meta-mcp": {
  "type": "local",
  "command": [
    "npx",
    "-y",
    "@discourse/mcp@latest",
    "--profile",
    "/home/marcus/.config/opencode/discourse-profiles/meta.json"
  ],
  "enabled": true,
  "environment": {},
},

当您启动 OpenCode 时,OpenCode CLI 将按需使用 npx 启动 MCP 服务器。它被配置为使用位于 =PROFILE-PATH= 的配置文件,并且默认情况下是只读的。

3. 重新启动 OpenCode CLI

完全重启 OpenCode,以便它重新加载配置并连接到 MCP 服务器。

如果它在没有错误的情况下启动,则表示 Discourse MCP 服务器正在工作。您可以要求 OpenCode 引用您的 Discourse 论坛以获取信息——特别是您有权访问但并非公开的信息——这将验证它是否正在以您的身份连接。

管理多个 Discourse 实例

您可以通过对不同的配置文件和 MCP 服务器名称重复此过程来添加多个 Discourse 论坛:

"discourse-meta-mcp": {
  "type": "local",
  "command": [
    "npx", "-y", "@discourse/mcp@latest",
    "--profile", "/home/username/.config/opencode/discourse-profiles/meta.json"
  ],
  "enabled": true,
  "environment": {},
},
"discourse-mycommunity-mcp": {
  "type": "local",
  "command": [
    "npx", "-y", "@discourse/mcp@latest",
    "--profile", "/home/username/.config/opencode/discourse-profiles/mycommunity.json"
  ],
  "enabled": true,
  "environment": {},
},

配置文件

有两个主要文件:

  1. =OPENCODE-CONFIG= - 位于 ~/.config/opencode/opencode.jsonc 的 OpenCode CLI 配置文件,其中包含 MCP 服务器设置。

  2. =PROFILE-PATH= - Discourse MCP 服务器的配置文件,其中包含用于连接到 Discourse 的 API 密钥和其他设置。

OpenCode 设置

用于连接到 MCP 服务器的设置位于 =OPENCODE-CONFIG=(通常是 ~/.config/opencode/opencode.jsonc):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "discourse-=NAME=-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@discourse/mcp@latest",
        "--profile",
        "=PROFILE-PATH/=NAME=.json",
      ],
      "enabled": true,
      "environment": {},
    },
  },
}

OpenCode MCP 设置文档:OpenCode 文档

Discourse MCP 设置

Discourse MCP 服务器本身的设置位于 =PROFILE-PATH/=NAME=.json=

{
  "auth_pairs": [
    {
      "site": "=DISCOURSE-FORUM=",
      "user_api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "user_api_client_id": "discourse-mcp"
    }
  ]
}

Discourse MCP 设置文档:GitHub - discourse/discourse-mcp

安全最佳实践

建议:

  1. 将配置文件存储在专用目录中(例如 ~/.config/opencode/discourse-profiles/
  2. 如果您在版本控制中跟踪您的 dotfiles,请将此目录添加到 .gitignore
  3. 为配置文件使用描述性名称(例如 meta.jsonmycommunity.json
  4. 保护 API 密钥的私密性——它们具有与您的用户帐户相同的访问级别

故障排除

  • 连接问题:验证 opencode.jsonc 中的配置文件路径是否正确且文件是否存在
  • 授权错误:检查 API 密钥是否未在您的 Discourse 用户偏好设置中被撤销
  • 权限错误:确保您在 Discourse 实例上具有所需的权限
  • 需要重启:对 opencode.jsonc 的更改需要重新启动 OpenCode
2 个赞