我一直在试验 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 的配置文件格式略有不同,这可能会让人感到困惑。
先决条件:
- 已安装 Node.js(推荐 24 LTS)
- 已安装 Codex CLI
- 可以作为普通用户访问 https://discourse.example.com
重要的是要认识到这里有三个独立的部分:
- 远程 Discourse 论坛,它是数据源和操作目标。
- Discourse MCP 服务器,这是一个本地运行的开源工具,它连接到 Discourse 并提供一个 API 供 Codex 与 Discourse 交互。它被安装为一个 STDIO 服务器,并在 Codex CLI 启动时按需启动。
- 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 服务器本身时。
有两个主要文件:
-
=CODEX-CONFIG=- 这是 Codex CLI 配置文件,其中包含 MCP 服务器设置。 -
=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