OpenCode CLIでのDiscourse MCP設定

このガイドでは、OpenCode CLIにDiscourse MCPをインストールするためのテスト済みの手順を説明します。別のMCPクライアントを使用している場合は、Codex CLI用のガイドも作成しました。

LLMを使いましょう! LLMは指示に従うのが非常に得意なので、セットアップを代行させることができます。LLMにこのガイドのURLを指示し、セットアップを行うように依頼してください。理解できない手順があれば、説明を求めることもできます。

前提条件:

  • Node.jsがインストールされていること(24 LTS推奨)
  • OpenCode CLIがインストールされていること
  • 対象のDiscourseフォーラムへのアクセス権(一般ユーザーとして。管理者である必要はありません!)

ここで3つの別個のコンポーネントがあることを認識しておくことが重要です。

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

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

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


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

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

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

2. OpenCode CLIにMCPサーバーを追加する

~/.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": {},
},

MCPサーバーは、OpenCodeを起動するときに、OpenCode CLIによってnpxでオンデマンドで起動されます。これは=PROFILE-PATH=にあるプロファイルを使用するように設定されており、デフォルトでは読み取り専用です。

3. OpenCode CLIを再起動する

OpenCodeを完全に再起動して、設定をリロードし、MCPサーバーに接続させます。

エラーなしで起動した場合、Discourse MCPサーバーは動作しています。OpenCodeにDiscourseフォーラムを参照するように依頼して、特にアクセス権を持っているが公開されていない情報について、ご自身として接続していることを確認できます。

複数の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": {},
},

設定ファイル

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

  1. =OPENCODE-CONFIG= - MCPサーバー設定を含むOpenCode CLI設定ファイル(通常は~/.config/opencode/opencode.jsonc)。

  2. =PROFILE-PATH= - Discourseへの接続のためのAPIキーやその他の設定を含む、Discourse MCPサーバーのプロファイル。

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ドキュメント

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. ドットファイル(dotfiles)をバージョン管理している場合は、このディレクトリを.gitignoreに追加する
  3. プロファイルファイルにはわかりやすい名前を使用する(例: meta.jsonmycommunity.json
  4. APIキーは非公開にする - これらはユーザーアカウントと同じアクセスレベルを持ちます

トラブルシューティング

  • 接続の問題: opencode.jsonc内のプロファイルパスが正しいこと、およびファイルが存在することを確認してください。
  • 認証エラー: APIキーがDiscourseのユーザー設定で取り消されていないことを確認してください。
  • 権限エラー: Discourseインスタンスに対して必要な権限があることを確認してください。
  • 再起動が必要: opencode.jsoncの変更を反映するには、OpenCode CLIを再起動する必要があります。
「いいね!」 2