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 客户端,请在回复中告诉我,我会尽力提供帮助。

先决条件:

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

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

  1. Discourse MCP 服务器,这是一个开源的本地运行工具,它连接到 Discourse 并为 Codex 提供一个 API 以与 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 启动时,它将通过 npx 按需启动。

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

3. 重新启动 Codex CLI

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

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

在 Codex CLI 中,你可以要求 Codex 引用此 Discourse 以获取信息——特别是你拥有访问权限但未公开的信息——这将验证它是否正在以你的身份连接。

编辑设置

在某些时候,你可能希望编辑设置,以便添加写入到 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 设置文档 Model Context Protocol

Discourse MCP 设置

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

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

Discourse MCP 设置文档参考 GitHub - discourse/discourse-mcp: MCP client for Discourse sites · GitHub

2 个赞