Discourse MCP 在 OpenAI Codex CLI 中的设置

我一直在试验 Discourse MCP,但发现 Meta 中关于使用它的现有文档中没有包含 Codex CLI 的内容,因此弄清楚哪些文档适用有点令人困惑:

  • 是使用 npx 还是 npm install
  • 哪些是 Codex 的设置,哪些是 Discourse MCP 的设置?
  • 我应该把 read_only: false 这样的设置放在哪里?

因此,经过一番摸索,我这里有一份经过测试的指南,介绍如何将 Discourse MCP 安装到 Codex CLI 中,我将在接下来的几天内跟进提供 Claude Code CLI 和 opencode 的指南。如果你想使用其他 MCP 客户端,请在回复中告诉我,我会尽力提供帮助。

编辑:2026.03.13 - 我已经为 opencode 编写了一份指南(https://meta.discourse.org/t/discourse-mcp-setup-in-opencode-cli/398378),该指南中 MCP 的配置文件格式略有不同,这可能会让人感到困惑。

先决条件:

重要的是要认识到这里有三个独立的部分:

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

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

  1. Codex CLI,它是连接到 MCP 服务器的 MCP 客户端,提供了一个通过 MCP API 与 Discourse 交互的接口。


1. 生成用户 API 密钥

这将向 Discourse 进行身份验证,也是你获取 API 密钥的方式。npx 将下载并运行代码,不需要以传统方式安装任何东西。

在终端中,运行:

npx @discourse/mcp@latest generate-user-api-key \
  --site =DISCOURSE-FORUM= \
  --save-to =MCP-CONFIG=

批准浏览器同意,然后复制加密数据,这证明了你登录的能力,并生成一个 API 密钥,该密钥将保存到 =MCP-CONFIG= 中供 MCP 服务器使用。

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

2. 将 MCP 服务器添加到 Codex CLI:

在终端中运行此命令(不要在 Codex CLI 内部运行)

codex mcp add discourse \
  -- npx -y @discourse/mcp@latest \
  --profile =MCP-CONFIG=

它被安装为一个 STDIO 服务器,因此当您启动 Codex CLI 时,它将由 Codex CLI 按需使用 npx 启动。

它被配置为使用 =MCP-CONFIG= 处的配置文件,并且默认情况下它是只读的。

3. 重新启动 Codex CLI

完全重新启动 Codex,以便它重新加载 config.toml 和配置文件。

如果它在没有错误的情况下启动,则配置没有问题,当你在 Codex CLI 中运行 /mcp 斜杠命令时,你应该会看到 MCP 服务器已列出。

在 Codex CLI 中,你可以让 Codex 引用这个 Discourse 以获取信息——特别是你可以访问但不是公开的信息——这将验证它是否正以你的身份连接。

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

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

编辑位于 =MCP-CONFIG= 的 Discourse 配置文件,并在 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写入内容,你可以在 Discourse 设置中进行此操作。

令人困惑的是,设置存储在两个地方,在 Codex 文档和 Discourse 文档之间,这真的很令人困惑,尤其是在弄清楚哪些部分属于 Codex CLI,哪些部分属于 MCP STDIO 服务器本身时。

有两个主要文件:

  1. =CODEX-CONFIG= - 这是 Codex CLI 配置文件,其中包含 MCP 服务器设置。

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

Codex CLI 设置

连接到 MCP 的设置位于 =CODEX-CONFIG= 中,看起来应该类似这样。如果你想向 MCP 服务器添加选项,请将它们添加到此处。

# =CODEX-CONFIG=
[mcp_servers.discourse]
command = "npx"
args = ["-y", "@discourse/mcp@latest", "--profile", "=MCP-CONFIG="]

Codex MCP 设置文档 https://developers.openai.com/codex/mcp

Discourse MCP 设置

Discourse MCP 服务器本身的设置位于 =CODEX-CONFIG=

# =MCP-CONFIG=
{
  "profiles": [
    {
      "site": "=DISCOURSE-FORUM=",
      "user_api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "user_api_client_id": "discourse-mcp"
    }
  ]
}

Discourse MCP 设置文档参考 https://github.com/discourse/discourse-mcp?tab=readme-ov-file#configuration

3 个赞