Discourse MCP 在 OpenCode CLI 中的设置

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

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

先决条件

  • 已安装 Node.js(推荐 24 LTS 版本)
  • 已安装 OpenCode CLI
  • 可以访问目标 Discourse 论坛,且身份为普通用户(无需是管理员!)

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

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

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

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


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 时,MCP 服务器将按需使用 npx 启动。它被配置为使用 =PROFILE-PATH= 处的配置文件,并且默认情况下是只读的。

3. 重新启动 OpenCode CLI

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

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

4. 启用写入功能(可选)

默认情况下,Discourse MCP 服务器以只读模式运行。要启用写入操作(创建帖子、主题、用户等),您需要在配置文件 JSON 文件中添加两个标志。

编辑 =PROFILE-PATH=/=NAME=.json,并在 auth_pairs 数组的同级位置添加 "read_only": false"allow_writes": true

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

示例:

{
  "read_only": false,
  "allow_writes": true,
  "auth_pairs": [
    {
      "site": "https://meta.discourse.org",
      "user_api_key": "abc123def456ghi789jkl012mno345pqr",
      "user_api_client_id": "discourse-mcp"
    }
  ]
}

添加这些标志后,请重新启动 OpenCode CLI 以使更改生效。MCP 服务器现在将允许写入操作,例如:

  • 创建和更新主题
  • 创建帖子和回复
  • 管理草稿
  • 上传文件
  • 创建类别(如果您有权限)
  • 管理用户(如果您有管理员权限)

警告:写入操作将使用您用户帐户的权限。创建的任何内容都将显示为您手动创建的。请负责任地使用写入功能。

管理多个 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 服务器的配置文件,其中包含 API 密钥和其他连接到 Discourse 的设置。

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 Documentation

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. 如果您在版本控制中跟踪点文件,请将此目录添加到 .gitignore
  3. 为配置文件使用描述性名称(例如 meta.jsonmycommunity.json
  4. 保持 API 密钥私密——它们的访问级别与您的用户帐户相同

故障排除

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