OpenAI Codex CLIでのDiscourse MCPセットアップ

Discourse MCPを試していましたが、Codex CLIを使用するための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でのopencodeのガイドを執筆しました。これはMCPのコンフィグファイル形式が若干異なるため、混乱を招く可能性があります。

前提条件:

ここでは3つの独立したコンポーネントがあることを理解することが重要です。

  1. リモートのDiscourseフォーラム。データのソースであり、アクションのターゲットとなります。

  1. Discourse MCPサーバー。これは、Discourseに接続し、CodexがDiscourseと対話するためのAPIを提供する、ローカルで実行されるオープンソースのツールです。これはSTDIOサーバーとしてインストールされ、Codex CLIによってオンデマンドで起動されます。

  1. Codex CLI。MCPサーバーに接続し、MCP APIを介してDiscourseと対話するためのインターフェースを提供するMCPクライアントです。


1. ユーザーAPIキーの生成

これにより、Discourseへの認証が行われ、APIキーを取得する方法となります。npxはコードをダウンロードして実行するため、従来の意味でインストールする必要があるものはありません。

ターミナルで、以下を実行します。

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

ブラウザでの同意を承認し、暗号化されたデータをコピーして戻します。これにより、ログイン能力が証明され、MCPサーバーで使用するために=MCP-CONFIG=に保存されるAPIキーが生成されます。

APIキーは、ユーザーとしてフォーラムに持つアクセスレベルと同じレベルのアクセス権を持ちます。

2. Codex CLIへのMCPサーバーの追加:

以下のコマンドをターミナルで実行します(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を参照して情報(特にアクセス権はあるが公開されていない情報)を取得するように依頼することで、あなたとして接続していることを確認できます。

4. 書き込み機能の有効化 (オプション)

デフォルトでは、Discourse MCPサーバーは読み取り専用モードで実行されます。書き込み操作(投稿、トピック、ユーザーの作成など)を有効にするには、プロファイルJSONファイルに2つのフラグを追加する必要があります。

Discourseプロファイル(=MCP-CONFIG=)を編集し、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の設定で行います。

紛らわしいことに、設定が保存される2つの場所があり、CodexのドキュメントとDiscourseのドキュメントの間で、Codex CLIに属する部分とMCP STDIOサーバー自体に属する部分を把握するのが非常に困難です。

2つの主要なファイルがあります。

  1. =CODEX-CONFIG= - これはCodex CLIの設定ファイルで、MCPサーバーの設定が含まれます。

  2. =MCP-CONFIG= - これはDiscourse MCPサーバーのプロファイルで、Discourseへの接続に関するAPIキーやその他の設定が含まれます。

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

「いいね!」 3